七、JVM面试小知识 1.JVM三大性能调优参数 -Xms -Xmx -Xss 的含义 2.java内存模型中堆和栈的区别 3.不同JDK版本中的intern()方法的区别 ...
分类:
其他好文 时间:
2019-02-12 21:50:17
阅读次数:
187
intern() intern方法的作用是:如果字符串常量池中已经包含一个字符串等于此String对象的字符串,则返回常量池中的这个String对应的对象, 否则将其添加到常量池并返回常量池中的引用。 在jdk1.7以后,就不会像之前那样把String对象复制到常量池,而仅仅复制堆中String对象 ...
分类:
其他好文 时间:
2018-09-22 12:44:23
阅读次数:
273
今天翻看书时遇到了这样一个问题,对于String.intern()方法又有了一些认识和看法。首先我们看它的api 大意就是intern()方法会在常量池中记录首次出现的实例引用,但是在jdk1.6中却不是这样。jdk1.6中会将首次遇到的字符串实例 复制一份放在持久代里,返回的则是永久代中对于这个字 ...
分类:
编程语言 时间:
2018-09-07 22:52:24
阅读次数:
233
When 什么时候需要了解String的intern方法: 面试的时候(蜜汁尴尬)!虽然不想承认,不过面试的时候经常碰到这种高逼格的问题来考察我们是否真正理解了String的不可变性、String常量池的设计以及String.intern方法所做的事情。但其实,我们在实际的编程中也可能碰到可以利用S ...
分类:
编程语言 时间:
2018-08-23 22:13:27
阅读次数:
181
.class文件常量池 常量池主要存放两类常量: 字面量 和 符号引用 。 字面量指文本字符串等。 符号引用指: 类和接口的全限定名 字段的名称和描述符 方法的名称和描述符 编译期结束,当类加载器加载类时,.class文件常量被加入运行常量池,如果常量已存在则不再加载。 .class文件常量对象(如 ...
分类:
其他好文 时间:
2018-08-16 21:37:59
阅读次数:
169
书中写道,如果JDK1.6会返回两个false,JDK1.7运行则会返回一个true一个false。 因为JDK1.6中,intern()方法会把首次遇到的字符串实例复制到永久代中,返回的也是永久代中这个字符串的实例的引用,而StringBulder创建的字符串实例在Java堆上,所以必然不是同一个 ...
分类:
编程语言 时间:
2018-08-02 20:35:23
阅读次数:
177
java中提供了String类支持字符串的功能,毕竟字符串本质就是一堆字符的组合,那么就来看看它有什么特点吧。 String的特点 String把字符串还是存放在一个char数组中的,数据的操作围绕它展开,但有点特别的地方,代码如下 可以发现这个char value[]是加了final的,也就是说一 ...
分类:
其他好文 时间:
2018-06-02 11:23:59
阅读次数:
145
字符串常量池:字符串常量池在方法区中 为了优化空间,为了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM会首先检查字符串常量池。如果字符串已经存在池中,就返回池中的实例引用。如果字符串不在池中,就会实例化一个字符串并放到池中。Java能够进行这样的优化是 ...
分类:
编程语言 时间:
2018-04-10 21:48:23
阅读次数:
247
CharacterEncodingFilter and ViewResolver ...
分类:
Web程序 时间:
2018-04-06 18:40:19
阅读次数:
214
引言 什么都先不说,先看下面这个引入的例子: 再将上面的例子加上一行代码: 是不是感觉莫名其妙,新定义的str2好像和str1没有半毛钱的关系,怎么会影响到有关str1的输出结果呢?其实这都是intern()方法搞的鬼!看完这篇文章,你就会明白。 这中间的原因和Hotspot是有很大关系的,在JVM ...
分类:
其他好文 时间:
2018-03-06 20:18:50
阅读次数:
212