Java中的String详解
String:字符串常量池
面试问题(在看看b站视频)
2、为什么会有这两种方式?因为他们的存储区域的不同
3、String底层是char类型的数组
一、String的三大特性
1.1、不变性
1.1.1、String是一个immutable模式的对象,不变模式的主要作用就是当一个对象需要被多线程共享并频繁访问时,可以保证数据的一致性。
1.2、常量池优化
1.2.1、String对象创建之后,会在字符串常量池中进行缓存,下次创建同样的对象时,会直接返回缓存的引用。
1.3、final
1.3.1、String类不可被继承,提高了系统的安全性。
二、String的实例化有三种方式():
2.1、直接赋值
2.2、通过构造函数,可以直接将字符串的值传入,也可以传入一个char数组。
2.3、通过构造函数,可以直接传入char类型的数组
两者的区别(存储的区域):直接赋值是存储在字符串常量池中,而通过构造实例,是存储在堆中的。
三、面试考点总结
3.1、String不是基本数据类型
String底层其实是一个char类型的数组
3.2、String的实例化
3.3、equals方法
public boolean equals(Object anObject) {
if (this == anObject) {
return true