随笔分类 -  java性能,可读性,扩展性的选择

摘要:1. 字符串生成过程 我们都知道String s = "hello java";会将“hello java”放入字符串常量池,但是从jvm的角度来看字符串和三个常量池有关,class常量池,运行时常量池,全局字符串常量池(也就是常说的字符串常量池) 第一个是class的常量池,看一下下面这个代码 如 阅读全文
posted @ 2019-01-24 16:45 刘皓lh 阅读(875) 评论(0) 推荐(0)
摘要:首先从一张图开始,图中对字符串相加和StringBuild.append()做了性能对比。 有人说字符串每次相加都新建了一个对象所以慢,事情真的是这样吗? 先要了解真相最好的方法当然是反编译了,使用 javap -c 反编译的结果 这个时候你可能有疑问,这个循环执行了50000次,创建了50000个 阅读全文
posted @ 2018-12-22 18:02 刘皓lh 阅读(2795) 评论(0) 推荐(1)
摘要:简单介绍一下这两个设计模式。 策略模式的思想就是,当你要根据特定场景使用特定算法时,可以把用一个接口提供这个算法,不同的场景对他进行不同的实现。主流程通过不同的实现类 来完成这个功能。 简单工厂就是根据一个type返回对应的对象。 简单工厂+策略模式就可以实现根据调用方传过来的type通过简单工厂获 阅读全文
posted @ 2018-12-20 20:09 刘皓lh 阅读(348) 评论(0) 推荐(0)
摘要:个人认为在自己写接口时,需要返回集合时返回一个空集合,比如mybatis查询如果返回一个集合,结果为空时也会返回一个空集合而不是null。 那么这样有什么好处呢?最大的好处就是调用方不用在判断是否为null,可以直接用,因为不用抛空指针。 当然这也有缺点,如果返回Lists.newArrayList 阅读全文
posted @ 2018-12-19 22:56 刘皓lh 阅读(8518) 评论(0) 推荐(2)