赞
踩
ctrl+alt+方向键
跳转时,或者追踪代码时,经常遇到的情况是层级太多,找不到代码的初始位置,入口。ctrl+shift+数字
标记为书签。
ctrl+F11
ctrl+数字
跳转到书签位置。alt+2
显示所有书签JavaDoc
注解。GenerateAllSetter
即时修改调试数据(选中变量按F2)
this.getClass()
等于指定Class 【子类不行】maven无法获取远程仓库的最新代码
maven设置中勾选始终更新快照
项目编译代码慢或报错内部错误或者报错OOM。
修改编译时的堆内存大小
ctrl+[或者]
按层级跳转代码块
在类中搜索方法 ctrl+F12
ctrl+alt+[或者]
在多个项目中快捷切换
list和map指定初始容量,避免扩容。
list是不够用时再去扩容,所以初始容量设置为原始list的大小即可。即不需要额外容量。
一般使用HshMap,扩容因子0.75,数据达到75%就会开始扩容。所以map的初始容量就是【原始容器大小/ 0.75 + 1】,就能保证在不扩容的情况下的使用最小空间,达到最高利用率。
例:我有一个list有16个元素,现在要转为map。【16/0.75+1 = 22】,即初始容量设置为22就不会扩容,且容量最小。22*0.75 = 16.5,只有当存入第17个元素时才需要扩容。
即使在指定容量时,hashMap的容量和阈值也不是指定值,因为在设置容量时,是hashMap内部是计算出当前值的最小2次幂。这样得出的容量,以及阈值。上面得出的结论不变,HashMap的构造函数容量公式依旧为【存储元素个数/0.75+1】;依旧是在使用最小空间下,不扩容的方案
。
如何验证正确性:google
的guava
中com.google.common.collect.Maps#newHashMapWithExpectedSize
就是如此计算。
常用容器 【不可修改】
Collections.emptyList()
空listCollections.emptyMap()
空mapCollections.singletonList(new Object())
单值listList.contains()
仅contains场景,可以转换为set进行contains操作。效率比list高。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。