06-Lambda和Stream(42-48) 42. Lambda 优先于匿名类 尽可能不要序列化一个 Lambda或匿名类实例。 千万不要给函数对象使用匿名类,除非必须创建非函数接口的类型的实例。 43. 方法引用优先于 LambdaJava提供了生成比 Lambda 更简介函数对象的方法:方法引用。 格式:类名::方法名 eg: 只要方法引用更加简介、更加清晰,就使用方法引用;反之则使用 Lambda。 44. 坚持使用标准的函数接口 2020-09-16 02_编程语言 > 01_Java > 04_EffectiveJava #Stream #EffectiveJava #Lambda
09-异常(69-77) 69. 只针对异常的情况才使用异常如题。 70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常如题。 71. 避免不必要的使用受检异常如题。 72. 优先使用标准异常最常见的可重用异常: 73. 抛出与抽象对应的异常更高层的实现应该捕获低层的异常,同时抛出可以按照高层抽象进行解释的异常。这种做法称为异常转译(exception translation)。 74. 每个方法抛出的所有异常 2020-09-16 02_编程语言 > 01_Java > 04_EffectiveJava #异常 #EffectiveJava
08-通用编程(57-68) 57.将局部变量的作用域最小化要使局部变量的作用域最小化,最有力的方法就是在第一次要使用它的地方进行声明。 几乎每一个局部变量的声明都应该包含一个初始化表达式。 最后一种“将局部变量的作用域最小化”的方法是使方法小而集中。 58. for-each 循环优先于传统的 for 循环推荐增强 for 循环,或者 迭代器: 59. 使用类库从Java 7开始,就不应该再使用Random了。现在选择随 2020-09-16 02_编程语言 > 01_Java > 04_EffectiveJava #反射 #EffectiveJava
10-并发(78-84) 78. 同步访问共享的可变数据synchronized 可以保证同一时刻,只有一个线程可以执行某一个方法或者代码块。 更灵活的用法可以使用 Lock 接口的实现类 ReentrantLock。 79. 避免过度同步通常,在同步的区域内做尽可能少的工作。 80. executor、task 和 stream 优先于线程如题。 81. 并发工具优先于 wait 和 notify比如 使用 Concur 2020-09-16 02_编程语言 > 01_Java > 04_EffectiveJava #EffectiveJava #并发
08-责任链模式 参考资料1:http://c.biancheng.net/design_pattern/ 参考资料2:https://refactoringguru.cn/design-patterns/catalog 1. 介绍1.1 简介责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型 2020-09-12 10_设计模式 #设计模式
07-适配器模式 参考资料1:http://c.biancheng.net/design_pattern/ 参考资料2:https://refactoringguru.cn/design-patterns/catalog 1. 介绍1.1 简介适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。 属于结构型模式,它结合了两个独立接口的功能。 适配器模式通过定义一个新的接口(对要实现的功能 2020-09-12 10_设计模式 #设计模式
14-IdGenerator IdGenerator123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 2020-09-10 21_代码片段 > 01_工具类 #工具类
11-SqlBuildUtil SQL语句构建1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586import java.lang.reflect.Field 2020-09-04 21_代码片段 > 01_工具类 #工具类
10-ExcelUtil Excel快速导出12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910 2020-09-03 21_代码片段 > 01_工具类 #工具类
01-ELK日志分析系统搭建 ELK是一套针对日志数据做解决方案的框架,分别代表了三款产品: E: ElasticSearch(ES),负责日志的存储和检索; L:Logstash,负责日志的收集,过滤和格式化; K:Kibana,负责日志的展示统计和数据可视化。 一、ELK 是什么?ELK 是三个开源框架的简写,分别是:Elasticsearch、Logstash、Kibana 。 二、安装部署 Elasti 2020-08-20 15_分布式 > 07_分布式日志 #架构 #分布式 #ELK