标签:字符 常用 string 第一节 char str println String
文章目录
常用类
String类
特性
-
String 是一个final类,代表不可变的字符序列;final类是不可以被继承的
—String实现了Serializable接口,表示字符串是支持序列化的
—String实现了Comparable接口,表示String可以比较大小
-
字符串是常量,用双引号引起来表示,在创建之后不能更改
—String代表不可变的字符序列,简称不可变性
-
String对象的字符内容是存储在一个字符数组value[]中
—String内部定义了final char[] value用于存储字符串数据
String s = "abc";
这里采用字面量的定义方式;
通过字面量(不同于new)的方式给一个字符串赋值,此时的字符串值声明在字符串常量池中。
字符串常量池中是不会存储相同内容的字符串的。
String不变性的实例
public class HelloWorld {
String str = new String("good");
char[] ch = {'t', 'e', 's', 't'};
public static void main(String[] args) {
HelloWorld test = new HelloWorld();
test.change(test.str, test.ch);
System.out.println(test.str);
System.out.println(test.ch);
}
public void change(String str, char ch[]){
str = "test ok";
ch[0] = 'b';
}
}
可以先看下代码,思考下结果是什么。
结合一下string的不变性加深理解。
运行结果:
good
best
由于string的不变性,这里是先声明一个String类型的str,尽管主函数调用了change(),但由于string的不变性,因此str的内容并没有改变。而char[]数组并没有该特性,因此当调用了change后,就把ch[0]变成了’t’。
拼接
public class HelloWorld {
public static void main(String[] args) {
String s1 = "helloworld";
String s2 = "hello";
String s3 = s2 + "world";
System.out.println(s1 == s3);//false
final String s4 = "hello";//常量
String s5 = s4 + "world";
System.out.println(s5 == s1);//true
}
}
- 常量与常量的拼接结果(+)在常量池,且常量池中不会存在相同内容的常量。
- 只要其中有一个是变量,结果就在堆中。
- 如果拼接的结果调用intern()方法,返回值就在常量池中。
String的常用方法
string与基本数据类型,包装类之间的转换
string->基本数据类型/包装类
调用包装类的静态方法:parsexxx(str)
标签:字符,常用,string,第一节,char,str,println,String 来源: https://blog.csdn.net/qq_40703471/article/details/111715352
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。