考点介绍:
string作为一个特殊类,正常情况下,是遵循对象的值和引用的使用。有一定的考察频度,但有的时候==也能代表相等,与常量区的插入有关。
java语言考点之关键字string-相关题目及解析内容可点击文章末尾链接查看!
一、考点试题
1、关于String,StringBuilder以及StringBuffer,描述错误的是()
A.对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象
B.StringBuffer是线程安全
C.StringBuilder是线程安全
D.可以修改StringBuilder和StringBuffer的内容
解答:正确答案是 C
A,java中的字符串存储在字符串常量区,不会改变,发生改变是会新创建一个对象
B,StringBuffer是线程安全的StringBuilder
C,StringBuilder跟StringBuffer功能相同,区别是StringBuilder不是线程安全的
D,StringBuilder和StringBuffer底层都是以字符数组存放的,可以修改内容
2、String, StringBuffer和StringBuilder区别
解答:String和StringBuffer主要区别是性能:String是不可变对象,每次对String类型进行操作都等同于产生了一个新的String对象,然后指向新的String对象。所以尽量不在对String进行大量的拼接操作,否则会产生很多临时对象,导致GC......
3、String a = "a" + new String("b") 创建了几个对象?
解答:常量和常量拼接仍是常量,结果在常量池,只要有变量参与拼接结果就是变量,存在堆。使用字面量时只创建一个常量池中的常量,使用 new 时如果常量池中没有该值就会在常量池中新创建,再在堆中创建一个对象引用......
4、为什么 String 对象是不可变的?
解答:字符串池之所以可能,就是因为字符串在 Java 中是不可变的。由此 Java 运行时环境节省了大量堆空间,因为不同的 String 变量可以引用池中的同一 String 变量。如果 String 不是不可变的, 则字符串驻留(String interning)将是不可能的,因为一旦任一变量更改所引用的String对象的值,它也会反映在其他变量中......
二、考点文章
1、java String类(超详细!)
String表示字符串类型,属于引用数据类型,不属于基本数据类型。在java中随便使用双引号括起来 的都是String......
2、java的String类
字符串是常量,创建之后不可改变。字符串字面值存储在字符串池中,可以共享。String s = "hello"; 产生一个对象,存储在字符串池中......
三、考点视频
1、String、StringBuilder的区别
本题是面试常考题之一,但是很多同学没有真实理解或使用过相应的类,只靠记忆。在面试的时候,容易被问住......
2、java语言之String equals的坑
String作为一个特殊类,正常情况下,是遵循对象的值和引用的使用。但是有时候==也能代表相等,与常量区的插入有关。有一定的考察频度
java语言考点之关键字string-相关题目及解析内容可点击下方链接查看:
java语言考点之关键字string-PC端链接
java语言考点之关键字string-移动端链接