zoukankan      html  css  js  c++  java
  • 霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    那些所谓的架构师、设计师、项目经理、分析师们,已经有多长时间没有写过代码了?代码是一- 切的基石,我不太信任连“Hello World”都没有写过的架构师。看看我们软件界的先辈们吧,Dennis M. Ritchie决定创造-门“看上去很好”的语言时,如果只是站在高处呐喊,这门语言是划时代的,它有多么优秀,但不去实现,又有何用呢?没有DennisM.Ritchie的亲自编码实现,C语言不可能诞生,UNIX 操作系统也不可能诞生。Linux 在聚拢成千_上万的开源狂热者对它进行开发和扩展之前,如果没有Linus的编码实现,仅凭他高声呐喊“我要创造一个划时代的操作系统”,有用吗?一切的一切都是以编码实现为前提的,代码是我们前进的基石。

    这是一个英雄辈出的年代,我们每个人都希望自己被顶礼膜拜,可是这需要资本和实力,而我们的实力体现了我们处理技术问题的能力:

    • 你能写出简单、清晰、高效的代码?一Show it!
    • 你能架构-一个稳定、健壮、快捷的系统?一 _Do it!
    • 你能回答-一个困扰N多人的问题?一 Answer it!
    • 你能修复-一个系统Bug ?一 Fix it!
    • 你非常熟悉某个开源产品?一 Broadcast it!
    • 你能提升系统性能?一 Tune it!

    但是,“工欲善其事,必先利其器”,在“善其事”之前,先看看我们的“器”是否已经磨得足够锋利了,是否能够在我们前进的路.上披荆斩棘。无论您将来的职业发展方向是架构师、设计师、分析师、管理者,还是其他职位,只要您还与软件打交道,您就有必要打好技术基础。本书对核心的Java编程技术进行了凝练,如果能全部理解并付诸实践,您的基础--定会更加牢固。

    这本书能连续霸榜GitHub必读书籍榜单第一,并被很多业界大牛肯定和推荐,一定有它独特的魅力。小编也是花了一大段时间来看了这本书,觉得这本书应该给大家分享出来!需要获取这本书的小伙伴可以直接扫码免费获取!废话不多说 给大家把部分内容展示出来!

    第1章Java开发中通用的方法和准则/1

    • 建议1:不要在常量和变量中出现易混淆的字母/2
    • 建议2:莫让常量蜕变成变量/2
    • 建议3:三元操作符的类型务必一致/3
    • 建议4:避免带有变长参数的方法重载/4
    • 建议5:别让null值和空值威胁到变长方法/6.
    • 建议6:覆写变长方法也循规蹈矩/7
    • 建议7:警惕自增的陷阱/8
    • 建议8:不要让旧语法困扰你/10
    • 建议9:少用静态导入/11
    • 建议10:不要在本类中覆盖静态导入的变量和方法/13
    • 建议11:养成良好习惯,显式声明UID/14
    • 建议12:避免用序列化类在构造函数中为不变量赋值/17
    • 建议13:避免为final变量复杂赋值/19
    • 建议14:使用序列化类的私有方法巧妙解决部分属性持久化问题/20
    • 建议15: break 万万不可忘/23
    • 建议16:易变业务使用脚本语言编写/25
    • 建议17:慎用动态编译/27
    • 建议18:避免instanceof非预期结果/29
    • 建议19:断言绝对不是鸡肋/31
    • 建议20:不要只替换-一个类/33
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    第2章基本类型 /35

    • 建议21:用偶判断,不用奇判断/36
    • 建议22:用整数类型处理货币/37
    • 建议23:不要让类型默默转换/38
    • 建议24:边界,边界,还是边界/39
    • 建议25:不要让四舍五人亏了一方/41
    • 建议26:提防包装类型的null值/43
    • 建议27:谨慎包装类型的大小比较/45
    • 建议28:优先使用整型池/46
    • 建议29:优先选择基本类型/48
    • 建议30:不要随便设置随机种子/49
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    因本书文章内容太多,没有办法给大家全部展示出来了,需要获取这份资料的小伙伴可以直接在上方直接扫码)免费获取

    第3章类、 对象及方法/52

    • 建议31:在接口中不要存在实现代码/53
    • 建议32:静态变量- -定要先声明后赋值/54
    • 建议33:不要覆写静态方法/55
    • 建议34:构造函数尽量简化/57
    • 建议35:避免在构造函数中初始化其他类/58
    • 建议36:使用构造代码块精炼程序/60
    • 建议37:构造代码块会想你所想/61
    • 建议38:使用静态内部类提高封装性1/63
    • 建议39:使用匿名类的构造函数/65
    • 建议40:匿名类的构造函数很特殊/66
    • 建议41:让多重继承成为现实/68
    • 建议42:让工具类不可实例化/70
    • 建议43:避免对象的浅拷贝/71
    • 建议44:推荐使用序列化实现对象的拷贝/73
    • 建议45:覆写equals方法时不要识别不出自己/74
    • 建议46: equals 应该考虑null值情景/76
    • 建议47:在equals中使用getClass进行类型判断/77
    • 建议48:覆写equals方法必须覆写hashCode方法/78
    • 建议49:推荐覆写toString方法/80
    • 建议50:使用package-info类为包服务/81
    • 建议51:不要主动进行垃圾回收/82
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    第4章字符串/83

    • 建议52:推荐使用String直接量赋值/84
    • 建议53:注意方法中传递的参数要求/85
    • 建议54:正确使用String、StringBuffer、 StringBuilder/86
    • 建议55:注意字符串的位置/87.
    • 建议56:自由选择字符串拼接方法/88
    • 建议57:推荐在复杂字符串操作中使用正则表达式/90
    • 建议58:强烈建议使用UTF编码/92
    • 建议59:对字符串排序持一种宽容的心态/94
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    第5章数组和集合/97

    • 建议60:性能考虑,数组是首选/98
    • 建议61:若有必要,使用变长数组/99
    • 建议62:警惕数组的浅拷贝/100
    • 建议63:在明确的场景下,为集合指定初始容量/101
    • 建议64:多种最值算法,适时选择/104.
    • 建议65:避开基本类型数组转换列表陷阱/105
    • 建议66: asList 方法产生的List对象不可更改/107
    • 建议67:不同的列表选择不同的遍历方法/108
    • 建议68:频繁插入和删除时使用LinkedList/112
    • 建议69:列表相等只需关心元素数据/115
    • 建议70:子列表只是原列表的-一个视图/117
    • 建议71:推荐使用subList处理局部列表/119
    • 建议72:生成子列表后不要再操作原列表/120
    • 建议73:使用Comparator进行排序/122
    • 建议74:不推荐使用binarySearch对列表进行检索/125
    • 建议75:集合中的元素必须做到compareTo和equals同步/127
    • 建议76:集合运算时使用更优雅的方式/129
    • 建议77:使用shuffle打乱列表/131
    • 建议78:减少HashMap中元素的数量/132
    • 建议79:集合中的哈希码不要重复/135
    • 建议80:多线程使用Vector或HashTable/139
    • 建议81:非稳定排序推荐使用List/141
    • 建议82:由点及面,一叶知秋-集合大家族/143
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    因本书文章内容太多,没有办法给大家全部展示出来了,需要获取这份资料的小伙伴可以直接在上方扫码免费获取

    第6章枚举和注解/145

    • 建议83:推荐使用枚举定义常量/146
    • 建议84:使用构造函数协助描述枚举项/149
    • 建议85:小心switch带来的空值异常/150
    • 建议86:在switch的default代码块中增加AssertionError错误/152
    • 建议87:使用valueOf前必须进行校验/152
    • 建议88:用枚举实现工厂方法模式更简洁/155
    • 建议89:枚举项的数量限制在64个以内/157
    • 建议90:小心注解继承/160
    • 建议91:枚举和注解结合使用威力更大/162
    • 建议92:注意@Override不同版本的区别/164.
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    第7章.泛型和反射/166

    • 建议93:Java的泛型是类型擦除的/167
    • 建议94:不能初始化泛型参数和数组/169
    • 建议95:强制声明泛型的实际类型/170
    • 建议96:不同的场景使用不同的泛型通配符/172
    • 建议97:警惕泛型是不能协变和逆变的/174
    • 建议98:建议采用的顺序是List<T>、List<?>、List<Object>/176
    • 建议99:严格限定泛型类型采用多重界限/177
    • 建议100:数组的真实类型必须是泛型类型的子类型/179
    • 建议101:注意Class类的特殊性/181.
    • 建议102:适时选择getDeclaredXXx和getxXx/181
    • 建议103:反射访问属性或方法时将Accessible设置为true /182
    • 建议104:使用forName动态加载类文件/184
    • 建议105:动态加载不适合数组/186
    • 建议106:动态代理可以使代理模式更加灵活/188
    • 建议107:使用反射增加装饰模式的普适性/190
    • 建议108:反射让模板方法模式更强大/192
    • 建议109: 不需要太多关注反射效率/194
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    第8章异常/197

    • 建议110:提倡异常封装/198
    • 建议111:采用异常链传递异常/200
    • 建议112:受检异常尽可能转化为非受检异常/202
    • 建议113:不要在finally块中处理返回值/204
    • 建议114:不要在构造函数中抛出异常/207
    • 建议115: 使用Throwable获得栈信息/210
    • 建议116:异常只为异常服务/212
    • 建议117:多使用异常,把性能问题放一边/213

    第9章多线程和并发/215 .

    • 建议118:不推荐覆写start 方法/216
    • 建议119:启动线程前stop方法是不可靠的/218
    • 建议120:不使用stop方法停止线程/220
    • 建议121:线程优先级只使用三个等级/224
    • 建议122:使用线程异常处理器提升系统可靠性/226
    • 建议123: volatile不能保证数据同步/228
    • 建议124:异步运算考虑使用Callable接口/232
    • 建议125:优先选择线程池/233
    • 建议126:适时选择不同的线程池来实现/237
    • 建议127: Lock与synchronized是不一样的/240
    • 建议128:预防线程死锁/245
    • 建议129:适当设置阻塞队列长度/250
    • 建议130:使用CountDownLatch协调子线程/252
    • 建议131: CyclicBarrier让多线程齐步走/254
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    因本书文章内容太多,没有办法给大家全部展示出来了,需要获取这份资料的小伙伴可以直接在上方扫码免费获取

    第10章性能和效率/256

    • 建议132:提升Java性能的基本方法/257
    • 建议133:若非必要,不要克隆对象/259
    • 建议134:推荐使用“望闻问切”的方式诊断性能/261
    • 建议135:必须定义性能衡量标准/263
    • 建议136:枪打出头鸟一解决首要系统性能问题/264
    • 建议137:调整JVM参数以提升性能/266
    • 建议138:性能是个大"咕咚”/268
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    第11章开源世界/271

    • 建议139:大胆采用开源工具/272
    • 建议140:推荐使用Guava扩展工具包/273
    • 建议141: Apache扩展包/276
    • 建议142:推荐使用Joda日期时间扩展包/280
    • 建议143:可以选择多种Collections扩展/282
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    第12章思想为源/285

    • 建议144: 提倡良好的代码风格/286
    • 建议145:不要完全依靠单元测试来发现问题/287
    • 建议146:让注释正确、清晰、简洁/290
    • 建议147:让接口的职责保持单- - /294
    • 建议148:增强类的可替换性/295
    • 建议149:依赖抽象而不是实现/298.
    • 建议150:抛弃7条不良的编码习惯/299
    • 建议151: 以技术员自律而不是工人/301
    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

    因本书文章内容太多,没有办法给大家全部展示出来了,需要获取这份资料的小伙伴可以直接在上方扫码免费获取

    霸榜GitHub必读书籍:编写高质量代码改善Java程序员的151个建议

     

  • 相关阅读:
    Linux 网络流量实时监控工具之ntopng详解
    linux wget 命令用法详解(附实例说明)
    Linux curl使用简单介绍
    数据库中随机查询数据
    【算法】验证码识别基础方法及源码(转)
    CentOS 7静默(无图形化界面)安装Oracle 11g
    史上最详细最全的Linux上安装Oracle的教程-centos7
    如何实现Docker镜像和容器实例的备份迁移
    oozie timezone时区配置
    通过hue提交oozie定时任务
  • 原文地址:https://www.cnblogs.com/1030x/p/13266925.html
Copyright © 2011-2022 走看看