1、Java中的关键字static
方便在没有创建对象的情况下来进行调用。
2、java中的基础数据类型长度是否取决于操作系统?
JVMJ保证class文件在不同的操作系统上稳定;这也是java跨平台的一点。
3、Integer缓存:修改缓存大小
Integer默认的是[-128, 127]的缓存范围,之前我们查看源码的时候也发现了,其中的low的下限是最开始的时候就固定死了的 final int low = -128;而其中的high虽然是设置了final int的,但是最初的时候,是还没有赋值的;所以我们可以通过设置java 的时候的参数来配置运行时的参数:
java -D java.lang.Integer.IntegerCache.high=1000 TestAutoBoxCache
java -XX:AutoBoxCacheMax=1000 TestAutoBoxCache
4、Java中由substring方法引发的内存泄漏
jdk1.6
当str是一个非常大字符串的时候,这种浪费是非常明显的,甚至会带来性能问题。
string对象被当作一个char数组来存储,在String类中有3个域:char[] value、int offset、int count,分别用来存储真实的字符数组,数组的起始位置,String的字符数。由这3个变量就可以决定一个字符串。当substring方法被调用的时候,它会创建一个新的字符串,但是上述的char数组value仍然会使用原来父数组的那个value。父数组和子数组的唯一差别就是count和offset的值不一样。
评论区