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的主要内容,如果未能解决你的问题,请参考以下文章

Java面试宝典每日3题:day22

Java面试宝典每日3题:day31

Java面试宝典每日3题:day18

Java面试宝典每日3题:day24

Java面试宝典每日3题:day21

Java面试宝典每日3题:day37