java编写的151个注意(3)

49 篇文章 0 订阅

七::泛型和反射

93,java的泛型是类型擦除的

94,不能初始化泛型参数和数组

95,强制声明泛型的实际类型

96,不同场景使用不同的泛型通配符

97,警惕泛型是不能协变和逆变的

98,建议采用的顺序是List<T>,List<?>,List<Object>

99,严格限定泛型类型采用多重界限

100,数组的真实类型必须是泛型类型的子类型

101,注意Class类的特殊性

102,适时选择getDeclaredXXX和getXXX

103,反射访问属性或方法时将Accessible设置为true

104,使用forName动态加载类文件

105,动态加载不适合数组

106,动态代理可以使代理模式更加灵活

107,使用反射增加装饰模式的普适性

108,反射让模版方法模式更强大

109,不需要太多关注反射效率


八::异常



110,提倡异常封装

111,采用异常莲传递异常

112,受检异常尽可能转化为非受检异常

113,不要在finally块中处理返回值

114,不要在构造函数中抛出异常

115,使用Throwable获得栈信息

116,异常只为异常服务

117,多使用异常,把性能问题放一边



九,多线程和并发


118,不推荐覆写start方法

119,启动线程前stop方法是不可靠的

120,不使用stop方法停止线程

121,线程优先级只使用三个等级

122,使用线程异常处理器提升系统可靠性

123,volatile不能保证数据同步

124,异步运算考虑使用Callable接口

125,优先选择线程池

126,适时选择不同的线程池来实现

127,Lock与synchronized是不一样的

128,预防线程死锁

129,适当设置阻塞队列长度

130,使用CountDownLatch协调子线程

131,CyclicBarrier让多线程齐步走



十::性能和效率

132,提升Java性能的基本方法

133,若非必要,不要克隆对象

134,推荐使用望闻问切的方式诊断性能

135,必须定义性能衡量标准

136,枪打出头鸟——解决首要系统性能问题

137,调整Jvm参数以提升性能

138,性能是个大咕咚


十一,开源世界


139,大胆采用开源工具

140,推荐使用Guava扩展工具包

141,Apache扩展包

142,推荐使用Joda日期时间扩展包

143,可以选择多种Collections扩展


十二::思想为源


144,提倡良好的代码风格

145,不要完全依靠单元测试来发现问题

146,让注释正确,清晰,简洁

147,让接口的职责保持单一

148,增强类的可替换性

149,依赖抽象而不是实现

150,抛弃7条不良的编码习惯

151,以技术员自律而不是工人














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值