
Java
文章平均质量分 50
深度Java
这个作者很懒,什么都没留下…
展开
-
代码规范碎碎念
代码规范碎碎念list条件多于2不要写命名上controller (model-DTO)service (model)repository层 语义化构造(entity->model)String转map 语义化数据结构String转model 从数据库层增强语义 组装模型DAO ( entity)mapperVO(admin) DTO(client)---------facade层 必须接外部接口 必须用 integration包一层接口降级不...原创 2021-02-02 14:58:54 · 684 阅读 · 0 评论 -
微服务重构心得
1.领域划分通用划分模式,一定的内聚,这并不难,难的还是领域直接的耦合怎么尽可能的解耦干净2.领域解耦错综复杂的调用关系分层,从顶到底,不允许底层调上层。底层需要的数据尽量上层提供,而不是底层继续调接口:性能问题,循环调用,等。3.代码翻译与义译基本是直接翻译,但是需要做一定的去重,原先代码因为是单体工程,所以会不断的查库,分层之后,需要的数据都已经上层给你提供,那么没必要做太多的if else这需要消除。例如:某方法 原先是 需要根据商品id区分是自己从购物...原创 2020-09-22 19:40:18 · 1994 阅读 · 1 评论 -
从一个需求看问题的无限复杂化和简单化
一个需求 如果你一开始的出发点就错了,那么后续的设计只会非常复杂,而且还会有漏洞,也很难发现,发现了也很难解决。先看数据结构:A表 主键id 其他各种字段不重要 ,重要的就一个字段sort字段aid1 sort=1aid2 sort=1---------------------B表 A的关联表 存A的id 还有就是C表的idaid1 cid1aid2 cid2-------------------C表 某种数据cid1cid2...原创 2021-02-03 22:46:39 · 757 阅读 · 3 评论 -
IDEA2021.3.2拉取maven报错maven-default-http-blocker解决方法
因为IDEA2021.3.2 的Maven是3.8.1后,mvn编译的时候总是提示拉不到依赖,报错如下:Could not validate integrity of download from http://0.0.0.0/...因为使用HTTP协议下载依赖,可能会导致中间人攻击。所以Maven 3.8.1就禁止了所有HTTP协议的Maven仓库,而IDEA2021.3.2使用了Maven 3.8.1很多公司内部的maven仓库一般都是http协议,而Maven 3.8.1禁止了http协原创 2022-03-11 10:29:03 · 21563 阅读 · 1 评论 -
不写容易出错的代码
下面2段代码都是完成商品名称的更新,只是第一种情况数据源是list第二种是map第一代代码是从List里获取第0个entity.setProduct_name(productList.get(0).getName());第二段代码从map里获取键值entity.setProduct_name(productMap.get(pid).getName()));如果哪一天第一段代码修改了 然后忘记改第二段代码这是一种容易犯错的情况。更多的是改了第一段代码直接复制到第二段,也可以..原创 2021-03-18 18:38:05 · 3401 阅读 · 4 评论 -
编程容易犯的错
1.数字比如分页默认从第0页开始,你不了解,写个1,这样数据也出来,但是就是少了第一条,这种错误比较难发现。写代码对于数字需要敏感,不懂一定要搞懂。2.参数多参数做缓存拼凑一个key,之前的代码是对的,后来需要写类似的代码,就遗漏了其他参数,只用一个id对于个数需要敏感。3.临时代码忘记复原临时修改代码为了验证某个问题,后来改了B,忘记A该回去。...原创 2021-03-04 18:10:02 · 1118 阅读 · 3 评论 -
说透泛型类和泛型方法以及Class<T>和Class<?>的差异
泛型类和泛型方法看起来似乎可以实现类似的功能,但是很多人并未真正掌握泛型方法,网上很多文章说了很多还是似是而非,特别是初学者还是搞不明白。1.泛型方法可以独立于泛型类2.泛型方法等效于泛型类里泛型参数方法代码一 泛型类Generic:泛型类有一个带泛型参数的方法listAdd,有2个入参一个泛型数组,一个泛型List。功能很简单就是把数组元素添加到List里,返回泛型List。public class Generic<T>{ //泛型类中的..原创 2020-11-24 23:30:20 · 3364 阅读 · 3 评论 -
切换阿里云maven源解决maven中央仓库下载太慢卡顿的问题
maven默认官方的中央仓库有时候很慢下载jar甚至会卡住,那么你可以切换到阿里云的maven源在本地的maven文件夹新建settings.xml<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http:...原创 2020-04-13 20:06:12 · 1765 阅读 · 0 评论 -
Java得到调用当前方法的方法名
Thread.currentThread().getStackTrace()[1]当前方法执行堆栈 Thread.currentThread().getStackTrace()[2]上一级的方法堆栈Thread.currentThread().getStackTrace()[3]上上一级的方法堆栈StackTraceElement[] temp=Thread.currentThread()...原创 2020-04-11 11:25:55 · 5211 阅读 · 1 评论 -
Java的List和Json转换以及StringRedisTemplate往redis存泛型对象
List转JsonList<User> user= new ArrayList();String str = JSON.toJSONString(user);Json 转List方法一List<User> user= JSON.parseArray(json,User.class); 如果是泛型方法需要使用TypeReferenceJson ...原创 2020-04-10 10:47:12 · 4713 阅读 · 1 评论 -
Java程序员必读和推荐读的Java好书推荐【Java四库全书】
Java程序员推荐书单作者:无界编程原创 2020-04-22 00:02:15 · 4721 阅读 · 5 评论 -
Java反射以及应用
需求:需要通过反射动态获取类的字段类型,然后做特殊处理Java反射getDeclaredField和getField的区别getDeclaredFiled 只能获取类本身的属性成员(包括私有、共有、保护)getField 仅能获取类(及其父类可以自己测试) public属性成员反射获取所有的字段Class clazz = 类.class;Field[] fie...原创 2020-03-28 10:36:57 · 1056 阅读 · 1 评论 -
互联网大厂技术面试内幕@霞落满天
很多求职者往往并非因为技术不好,而是没有掌握面试的技巧导致不能把握机会,本课程的目的就是本课程先通过比较真实的好简历和不好的简历让大家明白自己的简历有哪些问题,事实上简历是大厂的敲门砖,非常重要,很多人得不到大厂青睐就是问题出在简历上。面试会遇到内推,猎头推荐,那么这里面又会有什么不同和需要注意的地方呢?面试之前肯定要准备准备,怎么样才可以比较好的准备,甚至押宝押准呢?面试都需要做自我介绍,你做的...原创 2020-03-03 21:43:25 · 3248 阅读 · 0 评论 -
JDK源码分析 NIO实现
调用本地native方法package sun.nio.ch;public class IOUtil {...public static native void configureBlocking(FileDescriptor var0, boolean var1) throws IOException;对应jdk文件位置:https://blog.csdn.ne...原创 2020-03-03 23:35:13 · 1759 阅读 · 1 评论 -
线上java JVM问题排查
作者:霞落满天第一部分 是我以前公司的一则正式案例:第二部分 是我另一个博客上写的主要是最近发现大家问的比较多就写了此文第一部分 线上真实故障案例下面是一个老系统,代码写的有点问题导致出现这样一个JVM占比过高的问题,正常情况下也就是CPU负载不高的时候21:00左右的,也有30万,但是再多一点30几万就是阈值,就会出现堆积。这个队列一直是增长的快。这个是...原创 2020-01-10 10:42:35 · 10251 阅读 · 1 评论 -
你真的掌握了并发编程volatile synchronized么?
先看代码:import java.util.concurrent.atomic.AtomicInteger;/** * * @author xialuomantian */public class NewTest { static volatile int a = 1; static volatile int b = 1; //static int ...原创 2020-01-05 22:09:16 · 1453 阅读 · 0 评论 -
Java线上程序频繁JVM FGC问题排障与启示
线上Java程序的JVM频繁FGC,现象如图所示:一直持续FGC 5次左右,每次耗时1秒多不等。FGC的原因实际上是内存不够用,但是运维反映堆内存是2G,从运维提供的参数看也是。内存实际上一直只用到1G以内。这时候可以自己写一段代码输出堆内存数据,这是最准的:public class JVMTest { public static void main(Str...原创 2019-10-16 17:30:51 · 3784 阅读 · 1 评论 -
Java开发环境的搭建以及使用eclipse从头一步步创建java项目
原文:出自本人的Linux博客http://blog.youkuaiyun.com/unix21/article/details/18813173一、Java 开发环境的搭建这里主要说windows环境下怎么配置Java环境。如果是Linux环境参考本博客另一篇文章即可:Linux环境安装卸载JDK1.首先安装JDKjava的SDK简称JDK。去官网下载最新的JDK即可:http://www.oracle.c原创 2014-01-27 16:06:02 · 97067 阅读 · 13 评论 -
使用Netbeans创建java Web项目
使用Netbeans创建java Web项目需要先搭建JDK参考:Java开发环境的搭建以及使用eclipse创建项目Linux环境安装卸载JDK1.安装Tomcat去官网下载最新的Tomcat:http://tomcat.apache.org/目前最新的windows环境的Tomcat是http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.原创 2014-02-11 08:59:27 · 40191 阅读 · 3 评论 -
MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet
史上最强大的Myeclipse入门教程原创 2014-03-23 12:42:51 · 55321 阅读 · 23 评论 -
Java中 -1l<<<1是多少?
这原创 2014-10-21 20:48:00 · 15076 阅读 · 0 评论 -
Solr安装与配置
需要Java Runtime Environment(JRE) 1.7或更高版本,先验证。# java -version如果没有安装好Java环境,需要参考:http://blog.youkuaiyun.com/unix21/article/details/18774417无需安装tomcat,新版solr已经集成jettySolr最新版下载地址 http://mirror.bit.edu.cn/apache原创 2016-01-20 10:41:00 · 3714 阅读 · 1 评论 -
常见maven引用
json-lib是需要区分jdk版本的,pom.xml中的配置应加上标签,如用jdk15: net.sf.json-lib json-lib 2.4 jdk15 总之,以上标签是必须的,如果还是Missing,可能是因为网络原因导致下载失败。官方maven库http://mvnrepository.com/artifact/net.sf.jso原创 2016-01-06 13:51:47 · 3243 阅读 · 0 评论 -
Flex报错Error #2048: 安全沙箱冲突
Flex+JPA架构,JPA程序迁移,从A服务器到B。其他一切没变,唯一变的就是IP。前端Flex也就是swf报错Error #2048: 安全沙箱冲突:http://xxx.swf 不能从 xxx 加载数据如下:其实原因就是需要在www网站的根目录放一个crossdomain.xml就可以了原创 2016-01-11 15:41:46 · 6710 阅读 · 1 评论 -
MyBatis点滴积累
MyBatis在使用中不知不觉积累了很多经验 1.#和$MyBatis/Ibatis中#和$的区别1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中。原创 2016-01-19 18:16:36 · 2224 阅读 · 0 评论 -
Java判断文本文件编码格式以及读取
如果不是约定好的,要想解析txt文件就需要知道文件编码类型,由于文件编码类型众多,例如UTF-8,GBK,UTF-16,GB2312等等。 其实有简单的办法,只需要这样就可以了 String fileEncode=EncodingDetect.getJavaEncode(filePath); String fileContent=FileUtils.r原创 2016-01-30 23:28:43 · 29158 阅读 · 4 评论 -
《Java: The Complete Reference》等书读书笔记
春节期间读了下《Java: The Complete Reference》发现这本书写的深入浅出,我想一个问题,书中很多内容我们也知道,但是为什么我们就写不出这样一本书,这么全面,这么系统,这么简单易懂。不得不佩服Herbert Schildt的编程功底,需要提到的是Herbert Schildt写了很多Java和C、C++的书,他是C、C++、Java和C#编程语言的权威,是ANSI/ISO组织原创 2016-02-14 21:20:43 · 5195 阅读 · 1 评论 -
调试JDK源码-ConcurrentHashMap实现原理
调试JDK源码-一步一步看HashMap怎么Hash和扩容调试JDK源码-ConcurrentHashMap实现原理调试JDK源码-HashSet实现原理调试JDK源码-调试JDK源码-Hashtable实现原理以及线程安全的原因 ConcurrentHashMap线程安全的总结是我从源码分析出来的:ConcurrentHashMap所谓线程安全是哈希冲突的时候新增的节点是线程安全的,而 Conc原创 2016-03-18 12:13:49 · 3917 阅读 · 2 评论 -
Spring AOP与IOC
Spring AOP实现日志服务pom.xml需要的jar org.apache.commons commons-lang3 3.4 org.springframework spring-context 4.2.4.RELEASE org.springframework spring-core 4.2.4.RELEASE org.springfra原创 2016-02-24 19:08:07 · 4107 阅读 · 0 评论 -
最新版IntelliJ IDEA 15开发Java Maven项目
IntelliJ IDEA是最好的java开发IDE之一下载地址:http://www.jetbrains.com/idea/download/1.安装好之后开始创建项目2.选择Maven类型项目,选择JDK3.设置Maven坐标4.需要给新项目Add Framework support5.选择Java EE项目模板6.初始的网站7.配置Tomcat8.需要注意的就是热部署问题。需要选择On fr原创 2016-02-29 22:26:54 · 11469 阅读 · 3 评论 -
多线程Atomic和ThreadLocal
public interface CounterI { void addOne(); int getCount();}public class Counter implements CounterI { private static int count = 0; @Override public void addOne() {...原创 2016-04-27 11:43:37 · 5304 阅读 · 0 评论 -
Solr占用CPU持续过高原因查询
线上java进程占用CPU忽高忽低,就是说一下子40%左右,一下子减下去。这台服务器只有Solr,所以估计是Solr在GC。# jstat -gcutil 2072 2sJVM名词解释参考java内存泄漏的定位与分析一些术语的中文解释: S0C:年轻代中第一个survivor(幸存区)的容量 (字节) S1C:年轻代中第二个survivor(幸存区)的容量 (字节)原创 2016-05-11 17:28:01 · 10708 阅读 · 1 评论 -
Spring4实战学习笔记
《Spring4实战 第4版》2016年4月新出版的,之前的第三版看起来还是不错的,所以看到新版就直接买下来。英文版源码地址:Spring in Action, Fourth Edition Covers Spring 41.IOC装配Bean参考【Spring实战42.2】,作者提倡无XML配置化。1.1接口只有一个现实类可以自动装配public in...原创 2016-05-12 18:42:40 · 15920 阅读 · 2 评论 -
Java json转Map,转bean,转List<bean>
引用jackson/*** json转Map,转bean,转List by http://blog.youkuaiyun.com/21aspnet/* 需要jackjson jar包*/public class JsonUtil { /** * Object转Json */ public static String ObjectToJson(Object va原创 2016-08-19 16:02:00 · 3971 阅读 · 0 评论 -
Java生成html为pdf
使用这个:http://wkhtmltopdf.org/下载:http://download.gna.org/wkhtmltopdf/0.12/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz解压到/usr目录调用这个bin /usr/wkhtmltox/bin/wkhtmltopdf 需要注意如果中文不显示,显示为框框,需要安装# yum g原创 2016-08-30 18:43:04 · 3198 阅读 · 1 评论 -
SpringBoot使用笔记
其实也是参考官方的:http://spring.io/guides/gs/rest-service/,在官方代码基础上加入了很多实用的东西,比如运行环境启动命令等等。官方文档:http://docs.spring.io/spring-boot/docs/current/reference/html/SpringBoot并不神秘,其最大的好处是可以帮你省略引用一堆jar包,需要神秘j...原创 2017-01-01 14:13:47 · 5606 阅读 · 4 评论 -
mybatis结合log4j打印SQL日志
mybatis结合log4j打印SQL日志 默认的mybatis不能打印出SQL日志,不便于查看调试,需要结合log4jdbc-log4j2就可以完整的输入SQL的调试信息。pom.xml 配置maven,注意以下3个都需要 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1原创 2016-01-22 11:56:56 · 58719 阅读 · 12 评论 -
Java的SPI机制
Dubbo等框架使用到必须掌握。java.sql.Driver 是 Spi,com.mysql.jdbc.Driver 是 Spi 实现,其它的都是 Api。package org.hadoop.java;public interface IService { public String sayHello(); public String getScheme();原创 2017-03-27 21:04:54 · 3082 阅读 · 0 评论 -
JavaAgent 实现字节码注入
新建MyAgent项目pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc...原创 2018-07-27 18:55:57 · 5479 阅读 · 0 评论 -
Javassist 使用指南
说明:翻译的太好,怕原文丢失就转载了。1. 读写字节码我们知道 Java 字节码以二进制的形式存储在 class 文件中,每一个 class 文件包含一个 Java 类或接口。Javaassist 就是一个用来处理 Java 字节码的类库。在 Javassist 中,类 Javaassit.CtClass 表示 class 文件。一个 GtClass (编译时类)对象可以处理一个 cl...转载 2018-08-14 18:06:37 · 9400 阅读 · 0 评论