java面试经常遗忘的知识点

过去的,未来的
2020-07-24 / 0 评论 / 0 点赞 / 775 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2020-07-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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的值不一样。

0

评论区