很多时候,大家为了方便完成某些功能,都会使用一些小技巧,让我们的代码更加直白美观。下面是Java中的一些技巧。Usestreamtoconvertlisttomap普通:对于listtomap,很多时候大家都是用遍历,然后把值取出来放到result里面,如下:用stream来实现,有很多很直观和简单易用的方法通过Collectors.groupingBystream,例如sum、count、distinct等减少非空判断,优雅地使用Objects工具。正常运行时使用!=null进行判断,不够优雅。jdk1.7提供了Objects工具,使用起来直观方便,在很多方法上帮助我们做了非空判断,减少了!=null的代码随机数,可以使用seeds来保证随机规律。有时为了保存一个固定值,往往需要保存一个数据库或文件,非常麻烦。我们可以使用一个特定的值来传递一个随机数种子来计算出一个特定的值。比如第二次打印时5个循环的值必须相等。你只需要保证seed的值是固定的,随机数计算出来的值一定是固定的。双花括号的语法往往需要初始化一些列表数据。如果按照下面的方式操作,会比较麻烦和神奇:使用{{}}语法,如下注意:很多同学提到这里有问题,不建议在大量程序中使用,因为该方法是匿名内部类初始化方法,会生成很多xxx$1.class,xxx$2.class...类,会存在内存泄漏问题。特殊场景下使用的goto,在没有goto语法的Java中大家都知道,但是它提供了一个类似goto语法效果的方法,如下:try-with-resource自动关闭资源JVM不能自动回收外部资源的引用,比如如数据库连接、网络连接、输入输出IO流等,这些连接需要手动关闭,否则会造成外部资源泄露、连接池溢出、文件占用异常。因此,在IO操作中,我们往往需要编写如下代码来手动释放资源。jdk1.7为我们提供了try-with-resource语法,这样我们就不用再调用finally中的close方法了,jvm会自动调用。如果需要构建Map,使用MultiValueMap构建Map
