发表于: 2017-12-04 18:57:24
1 682
今日完成:
早上看effective java,下午看spring源码深度解析。
明日计划:
复盘评审,准备小课堂。
成果:
effective java上写了78条建议来改善代码质量,今天看了六条,觉得有用,我就讲一下比较有帮助的三条。
1、考虑用静态工厂方法代替构造器。
其实就是使用工具类中的静态方法来取代直接实例化一个工具类来对数据操作,以前在做加密任务时用过这种方法,后来我自己写的工具类都使用静态方法取代一个实例类,当时听说了每实例化一个类都要占用内存,当然我用静态方法当然不是因为内存泄漏,只是单单觉得静态方法简单直观,然后今天看这本书给了我用静态方法的理由。首先,静态方法有名称,印证了我说的直观;第二,使用静态方法不需要每次调用都创建一个新对象,如果工作量大的话,内存就会不够从而出现问题;第三,静态方法可以返回原返回类型的任何子类型对象,这样在选择返回对象的类时就有了更大的灵活性;第四,在创建参数化类型实例的时候,它们是代码变得更加简洁,而构造器实例的话至少要出现两次。
2、遇到多个构造器参数时考虑用构建器
其实就是用少参构造代替多参构造,就是在类中创建静态Builder方法,Person per=new Person.Builder("老张","男").age(20).height(177).build();
类的代码太多了,我没有尝试,所以就没写出来了,这是一种思想。
3、避免创建不必要的对象
String s=new String("string");这是不好的习惯
String s="string";应该使用这种方式来定义常量
上面的语句每次执行都会创建一个新的String实例,String s;本身就是一个实例,这样就会产生两个实例,会造成内存泄漏(new构造每次都是一个新的实例,即使数据完全一样,虽然他的hashcode相同,但引用不同,就会产生一个新的对象)。
而下面的就只有一个实例,而且是同一个实例。
spring源码深度分析这本一下午看了20页,看不懂,讲得太底层了,看到如何加载xml文件,这本书先带回家去吃灰,层次没到。
进度:
明日复盘评审。
评论