Java面试宝典每日3题:day17
Posted 闲言_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试宝典每日3题:day17相关的知识,希望对你有一定的参考价值。
1.什么是常量池
字符串常量池位于 堆内存, 专门用来 存储字符串常量,可以提高内存的使用率,避免开辟空间存储相同的字符串,在创建字符串时 JVM首先检查字符串常量池,如果该字符串已 存在池中,则 返回它的引用,如果 不存在 则 实例化一个字符串放到池中,并 返回其引用。
2.String有哪些特性
1. 不变性:
String是 只读字符串,对它进行任何操作,其实 都是创建一个新的对象,再把引用指向该对象。不变模式的主要作用在于 当一个对象被多线程共享并频繁访问时,可以保证数据的一致性。
2. 常量池优化:
String对象创建之后,会 在字符串常量池进行缓存,如下次 创建同样的对象时,会直接返回缓存的引用。
3. final:
使用final定义String类,表示 String不能被继承,提高了系统的安全性。
3.String str="i"与 String str=new String(“i”)一样吗?
不一样。
因为 分配内存的方式不一样,String str ="i" java虚拟机会将其分配到 常量池中,而String str = new String("i") 则会被分配到 堆内存。
以上是关于Java面试宝典每日3题:day17的主要内容,如果未能解决你的问题,请参考以下文章