将局部变量的作用域最小化
- Java允许你在任何可以出现语句的地方
- 要使局部变量的作用域最小化,最有力的方法就是在第一次要使用它的地方进行声明
- 如果你还没有足够的信息来对一个变量进行有意义的初始化,就应该延迟这个声明
- 如果在循环终止之后不再需要循环变量的内容,for循环就优先于while循环
for-each循环优先于传统的for循环
相比于传统的for循环,for-each循环在简洁性、灵活性和出错预防性方面都有绝对的优势,并且没有性能惩罚的问题
了解和实用类库
- 现在不再使用Random,而是选择ThreadLocalRandom
- 每个java的发行版本中都会添加新的特性,了解这个新特性是值得的
- 必须熟悉java.lang,java.util,java.io以及子包中的内容
- Collections Framework 和Stream 和java.util.concurrent
- 不要重复造轮子
如果需要精确的答案,请避免使用float和double,应该使用BigDecimal\int,或者long
如果数值范围没有操作9位十进制数字,可以使用int,如果不超过18位数字,就可以使用long,如果超过18位数字,就必须使用BigDecimal
基本类型优先于装箱基本类型
- 对装箱基本类型使用==操作符几乎总是错误
- 基本类型和装箱基本类型混合使用,装箱基本类型会自动拆箱
- 集合中的元素、键、值、不能使用基本类型,只能使用基本装箱类型
- 在参数化类型和方法中,必须使用装箱基本类型作为类型参数
如果其他类型更合适,则尽量避免使用字符串
连接字符串连接的性能
- 为连接n个字符串而使用字符串连接操作符(+),需要n的平方级的时间
- 为了获得可以接受的性能,使用StringBuilder代替String
- 不要用+,连接多个字符串
通过接口引用对象
如果和合适的接口类型存在,那么对于参数、返回值、变量和域,都应该使用接口来进行声明
Map<String, String> map = new HashMap<>();
使用接口作为类型会更加灵活
如果没有合适的接口,就用类层次结构中提供了必要功能的最小的具体类来引用对象
接口优先于反射机制
- 若编译期存在适当的接口或者超类,通过它们可以引用这个类,那么可以用反射创建实例,然后通过它们的接口或者超类,以正常的方式访问这些实例
谨慎地使用本地方法
- 使用本地方法来提高性能的做法是不值得提倡的
谨慎地进行优化
- 不要费力去编写快速的程序,应该努力编写好的程序
遵守普遍接受的命名惯例
包和模块的名称应该是层次状的,用句号分割每个部分,每个部分都包括小写字母
包名通常不超过8个字母,可以使用有意义的缩写
类、接口命名大驼峰写法
方法、域命名小驼峰写法
常量域是唯一推荐使用下划线的情形
可被实例化的类包括枚举类,通常用一个名词或者名词短语命名
不可实例化的工具类经常用复数名词命名
版权声明:本文为jsq916原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。