笔记:Effective Java

本文分享了Java编程中的最佳实践与技巧,包括静态工厂替代构造函数、使用Builder模式、避免创建不必要的对象、清除过期对象、覆盖equals注意事项、类和成员的可访问性、复合优于继承等17条建议,旨在帮助开发者编写更高效、更安全的Java代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、静态Factory替代Constructor函数

优势:有名称;不必每次都创建一个新对象,可实现享元;可返回子类型对象;参数化构造时候,代码简洁。


2、遇到多个Constructor 参数时候考虑使用Builder 模式


3、避免创建不必要的对象,尽量重用

如 String s = "aaaa" 远好于 String s= new String("aaaa");

Long s = Long.value(1)   远好于 Long  s = new Long(1);


4、清除过期对象

典型地,清除Collection 中过期的元素,防止内存泄露


5、覆盖equals注意

总要覆盖hashCode;注意方法是 equals(Object obj) 而不是 equals(MyObject  obj)


6、类和成员的可访问性最小化

7、复合优于继承


8、列表List 优于数组

现在不支持泛型数组,会抛ClassCastException


9、优先考虑泛型方法

public  <T>   T myMethod(List<T>  tList)  {}


10、必要时候进行保护性拷贝

比如返回一个数组,为了避免被,可返回其 clone对象。



11、需要精确的答案,不要使用float和double,而使用BigDecimal


13、基本类型优于装箱类型
比如 int 优于 Integer, boolean 优于 Boolean

14、同步访问共享的可变数据
i++,++操作不是线程安全的,可使用AtomicLong
使用Volitale关键字保证可见性

15、Executor 和 task 优于线程

16、并发工具优于wait、notify

17、慎用初始化
单例模式初始化:
public class Singleton{
        private Singleton() {}
        private static Singleton instance ;
        public  static  Singleton getInstance() { return  Holder.singleton  }
        private static class Holder 
        {
              static  Singleton singleton = new Singleton();
        }
}


其余没怎么用到





转载于:https://www.cnblogs.com/leeeee/p/7276198.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值