自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 线程池不允许使用Executors去创建

情景重现:IDEA+阿里编码规约+Executors.newFixedThreadPool(5)提示手动创建线程池,效果会更好哦。原因:1.FixedThreadPool和SingleThreadPool里面的阻塞队列的最大长度为Integer.MAX_VALUE也就是2147483647(21亿),极有可能会发生OOM异常。2.CachedThreadPool和ScheduledThreadPool允许创建的最大线程数量为Integer.MAX_VALUE也就是2147483647..

2022-04-01 17:34:27 101 1

原创 阿里Java开发手册-编程规范

一、编程规范1).命名规范:1.【强制】代码中的命名均不可以以下划线或者美元符号($)开始和结束反例:name 、 name 、name、namename 、 namename、name2.【强制】代码中禁止使用中文,且禁止使用拼音与英文混合的方式说明:正确的英语拼写和语法可以让阅读者更便于理解,避免歧义,纯拼音的命名方式也是需要避免使用的反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3正确示例:alib

2021-10-25 14:41:32 674

原创 线程池面试问答

核心概念最大线程数maximumPoolSize核心线程数corePoolSize活跃时间keepAliveTime阻塞队列workQueue拒绝策略RejectedExecutionHandler流程当提交一个新任务到线程池时,具体的执行流程如下:当我们提交任务,线程池会根据corePoolSize大小创建若干任务数量线程执行任务当任务的数量超过corePoolSize数量,后续的任务将会进入阻塞队列阻塞排队当阻塞队列也满了之后,那么将会继续创建(maximu

2021-09-16 15:03:35 99

原创 springboot集成jacoco统计单元测试的覆盖率

一、Jacoco基本概念:Jacoco是开源的java代码单元测试覆盖率统计工具,具体概念请自行百度。二、springboot集成[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wwJyYXMj-1631759588252)(C:\Users\86153\AppData\Roaming\Typora\typora-user-images\image-20210916102715707.png)]在pom.xml的中增加<dependency> &l

2021-09-16 10:34:53 4685

原创 第10条 始终要覆盖toString

第10条 始终要覆盖toString不覆盖的缺点默认的toSring返回类名@散列码,如PhoneNumber@163b91默认实现产生的消息难以理解提供好的toString不仅有益于该类实例,也有益于包含这些实例的引用对象,特别是集合对象实践toString被返回的字符串应该简洁,信息丰富,易于阅读toString方法应该返回对象中包含的所有值的关注的信息请在文档明确注明你的意图。如果指定返回格式,请严格执行为toString返回值中包含的所有信息供编程式的访问途径...

2021-08-26 16:52:19 41

原创 第9条 覆盖equals时总要覆盖hashCode

第9条 覆盖equals时总要覆盖hashCode定义:在每个覆盖了equals方法的类中,也必须覆盖hashCode方法JavaSE6的约定1.程序的一次执行中,equals比较用到的信息没被修改,hashCode必须返回同一整数。2.同一程序多次执行过程中,每次执行返回的整数可以不一致。3.两个对象的equals方法比较是相等的,两个对象中的任意一个hashCode必须产生相同整数。4.两个对象的equals方法不相等,hashCode不一定不相等。如果不覆盖hashCode的结果

2021-08-26 16:51:22 81

原创 第8条 覆盖equals时请遵守通用约定

第8条 覆盖equals时请遵守通用约定不应该覆盖equals的情况类的每个实例本质上都是唯一的不关心类是否提供了逻辑相等的测试功能超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的类是私有的或者是包级私有的,可以确定它的equals方法永远不会被调用覆盖equals需遵循自反性 x.equals(x)必须返回true对称性 当x.equals(y)返回true时,y.equals(x)必须返回true传递性 如果x.equals(y)返回true且y.equals(

2021-08-17 09:52:04 62

原创 第7条 避免使用终结方法

第七条 避免使用终结方法定义:给类定义finalize()方法,就是我们所说的终结方法。使用该机制你可以定义一些特殊的操作,这些操作在一个对象将要被垃圾回收程序释放时执行,因为垃圾回收该对象前会调用其所属类的finalize()方法(如果有定义的话)。缺点1.不能保证会被及时地执行且有可能JVM根本不去执行,执行情况与JVM的垃圾回收算法有关。2.线程优先级低,它只有等所有线程都挂起等待该内存释放的时候才会开始释放该对象的内存,此时才会执行finalize()方法。3.严重的性能损

2021-08-13 16:36:37 45

原创 第6条 消除过期的对象引用

第6条 消除过期的对象引用自己管理内存的类举例:实现push和pop的Stack类,维护的内部元素列表在pop时未置空应对: 一旦数组元素不再有效,手工清空对象缓存对象放入缓存,被遗忘采用WeakHashMap代表缓存后台线程清理添加新条目的时候清理监听器和其他回调客户端在API注册回调却没显式取消注册只保存弱引用,如WeakHashMap...

2021-08-13 16:35:49 51

原创 第5条 避免创建不必要的对象

第5条 避免创建不必要的对象定义:充分利用可以重用的对象1.如果对象是不可变的,它始终可以被重用String s=new String(“Str”); 这种方法执行时每次都会创建一个新的String实例(一般也没人这么写)。改进为:String s=“Str”;因为在java中,String是被final修饰的(public final class String),这种方法只用了一个String实例,而不是每次执行的时候都创建一个新的实例,可以保证,对于所有在同一个虚拟机中运行的代码,只要他

2021-08-13 16:34:20 40

原创 第4条 通过私有构造器强化不可实例化的能力

第4条 通过私有构造器强化不可实例化的能力实例化无意义的工具类,让这个类包含私有构造器。缺点不能被子类化。所有的构造器都必须显示或者隐式的调用超类的构造器,这种情况下,子类就没有可访问的超类构造器可调用了。...

2021-08-13 16:33:28 57

原创 第3条 用私有构造器或者枚举类型强化Singleton属性

第3条 用私有构造器或者枚举类型强化Singleton属性(单例模式)定义:Singleton指仅仅被实例化一次的类。实现方法1:私有构造器,公有的静态final域,私有的构造器仅被调用一次,用来实例化公有的静态final域。注意:享有特权的客户端可以借助AccessibleObject.setAccessible方法,通过反射机制调用私有的构造器。解决方案:修改构造器,让它在被要求创建第二个实例的时候抛出异常。实现方法2:静态工厂方法,对于静态方法.getInstance的所有调用,都

2021-08-13 16:31:06 130

原创 第2条 遇到多个构造器参数时考虑用构建器(Build)

第2条 遇到多个构造器参数时考虑用构建器(Build)适用构造器/静态工厂具有很多个参数优势可以有多个可变参数灵活,可以单个builder构建多个对象设置了参数的builder生成了一个很好的抽象工厂缺点创建构造器有开销冗长替代方案重叠构造器多参数情形代码难编写,可读性差JavaBeans模式构造过程分离需额外考虑线程安全 手动freeze比较笨拙...

2021-08-12 19:10:32 60

原创 第1条 考虑用静态工厂方法代替构造器(静态工厂模式)

第1条 考虑用静态工厂方法代替构造器(静态工厂模式)定义:像Fragment fragment = MyFragment.newIntance();这样不通过new,而用一个静态方法对外提供自身实例的方法。优势:优势1:工厂方法有名称(使用工厂产生对象,比构造器更加自由,不用专门去找使用哪一个构造器,直接通过工厂名就可以产生想要的对象),构造方法就算参数不同,new对象的时候使用的也是对象名称。优势2:工厂产生的对象可以复用(相当于单例模式),如果是这样产生的对象,可以使用==代替equal

2021-08-12 19:06:00 71

转载 Layui form 表单验证lay-verify

layui 表单1.表单自带校验lay-verify:是表单验证的关键字有以下值供选择:required (必填项)phone(手机号)email(邮箱)url(网址)number(数字)date(日期)identity(身份证)自定义值同时支持多条规则的验证:格式:lay-verify=”验证A|验证B”如:lay-verify=”required|phone|number”...

2021-03-12 10:08:22 175

原创 “System.Data.SqlClient.SqlException”类型的未经处理的异常在 System.Data.dll 中发生

“System.Data.SqlClient.SqlException”类型的未经处理的异常在 System.Data.dll 中发生解决方法:发现插入的字段短了

2020-10-16 16:32:12 1099

原创 java测试方法的运行时间

long startTime=System.currentTimeMillis(); //获取开始时间 方法(); //测试的代码段 long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ms"); #1000ms=1s

2020-09-01 15:53:54 246

原创 FTPclient连接不需要密码的服务器

用户名输入:ftppassword:“”(空串)

2020-09-01 15:47:45 938

转载 Eclipse HTML Editor

文章转:https://www.cnblogs.com/zhangzt/p/3185517.html需插件:1、GEF 3.1 安装程序下载下载地址:http://download.eclipse.org/tools/gef/downloads/drops/R-3.1-200507071758/index.php这里我们下载GEF-ALL-3.1.zip。2、Eclipse HTML Editor 1.6.7 安装程序下载下载地址:https://sourceforge.jp/projects

2020-06-30 18:32:35 93

原创 mysql5.7压缩版安装步骤

1、下载MySQL免安装版2、解压到对应文件夹,关闭已有MySQL服务3、配置my.ini文件配置内容如下见文章最后对应内容根据需要修改4、安装对应服务mysqld install MySQL2 --defaults-file=“A:\Develop\mysql5.7\my.ini”mysqld install MySQL20200611 --defaults-file=“E:\MySQL\mysql-5.7.30\my.ini”修改对应文件夹5、生成对应data文件mysqld -

2020-06-12 13:58:39 3982

原创 java的Integer的小数常量池

Integer i=100;Integer j=100;syso(i==j);return trueInteger i=129;Integer j=129;syso(i==j);return false因为对于经常使用的小数-128~127jdk内部生成一个常量池定义这个区间内的数据时,直接去常量池中去取,不在区间的会生成对象,生成对象的hash地址不一样,所以返回false...

2020-06-09 15:47:35 718

原创 mybatis的xml中like拼接百分号

在使用mybatis开发时,有时需要使用like 查询操作数据库,mysql和sqlserver2012之后的数据库可以使用concat来实现拼接,sqlserver2012之前不可以使用,可以在service层对字符串拼接%str like concat(’%’,#{str},’%’)...

2020-06-02 14:03:08 3228

原创 解决java中package变成普通文件夹的问题

最近在svn导出项目时出现了配置文件读不到的问题,经过认真比对,发现是由于以前正常的java文件package变成可普通文件夹导致解决方法:eclispe 中选中项目右击->properties->Java build path-source将没有变成package的文件夹加入即可...

2020-05-27 17:48:08 1145

原创 eclipse设置jdk内存,解决堆内存溢出问题

选中要调整的jdk-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

2020-05-27 17:27:23 421

subclipse eclipse的svn插件

subclipse,用于eclipse的svn插件,离线版本

2020-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除