首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
EffectiveJava
订阅
今阳
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 1订阅
EffectiveJava-8-异常
1. 异常机制的设计初衷适用于不正常的情形,so,很少有JVM对其进行优化; 2. 把代码放在try-cache中阻止了现代JVM实现本来可能要执行的某些特定优化; 3. for遍历并不会导致冗余的检查,有些现代的JVM会将它们优化掉; 1. 使api更加易于学习和使用(通用,…
EffectiveJava-1-创建和销毁对象
一. 使用静态工厂方法代替构造器 1. 一个类对外提供获取自身实例对象的方法: 2. 静态工厂方法的优势 : a. 可以随意组合要初始化的属性,通过不同的命名,不仅可以避免构造器的限制(一个类只能有一个带有指定签名的构造器),而且可以做到顾名思义; b. 可以不用在每次调用时都…
EffectiveJava-5-枚举和注解
1. int枚举: 引入枚举前,一般是声明一组具名的int常量,每个常量代表一个类型成员,这种方法叫做int枚举模式。 int枚举模式是类型不安全的,例如下面两组常量:性别和动物种类,二者不存在任何关系,然而却可以将ANIMAL_DOG传入一个需要性别参数的方法中,编译器不会出…
EffectiveJava-4-泛型
1. 数组是协变的, 如果Sub是Super的子类,那么数组Sub[]也是Super[]的子类; 2. 数组是具体化的,在运行时才知道并检查它们的元素类型约束;
EffectiveJava-3-类和接口
1. 不提供任何修改对象状态的方法 2. 保证类不会被扩展:用final修饰或将所有构造方法私有化并提供公有的静态工厂方法 3. 使所有域都是final的(实际上只要没有方法能够对域产生外部可见的改变即可,如延迟初始化,懒汉单例等,都不能让该域是final的) 4. 使所有域都…
EffectiveJava-2-对于所有对象都通用的方法
1. equals通用约定: 2. 不需要覆盖equals对情况: 3. 需要覆盖equals的情况: 4. 注意equals方法的写法: 1. hashCode通用约定: 2. 为不相等的对象产生不相等的散列码(hashCode方法的返回值):
EffectiveJava-10-序列化
1. 使这个类的到处API永远的束缚在该类的内部表示法上; 2. 消耗过多的空间;(如上链表项只是实现细节,不值得记录在序列化形式中,会消耗过多空间) 3. 消耗过多时间;(序列化逻辑并不了解对象图的拓扑关系,所有它必须经过一个昂贵的图遍历,但上面例子中沿着next引用遍历是非…
EffectiveJava-9-并发
1. 将它保存在静态域中,作为类初始化的一部分; 2. 将它保存在volatile域,final域或者通过正常锁定访问的域中; 3. 将它放到并发的集合中; 1. 重用线程池中的线程,避免线程的创建和销毁所带来的性能开销; 2. 能有效控制线程池中的最大并发数,避免大量线程之间…
EffectiveJava-7-通用程序设计
性能优势,对于数组索引的边界值只计算一次。 1. 过滤:如果需要遍历集合,并删除选定的元素,就要使用显示的迭代器,以便调用其remove方法 ; 2. 转换:如果需要修改集合或数组的值,就需要集合的迭代器或数组索引了; 3. 平行迭代:如果需要并行的遍历多个集合或数组,就需要用…
EffectiveJava-6-方法
1. 可能在处理过程中失败,并产生令人费解的异常 2. 更糟糕的情况是正常返回,但计算出错误的结果 3. 最糟糕的是正常返回,但使得某个对象处于被破坏但状态,在将来某个不确定的时候,某个不想干的点上引发错误 对于某些参数,方法本身没有用到,却被保存起来供以后使用,检验这类参数的…