首页 / JAVA / Java中String的用法
Java中String的用法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java中String的用法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2397字,纯文字阅读大概需要4分钟。
内容图文
![Java中String的用法](/upload/InfoBanner/zyjiaocheng/621/7470149c2fd744faa99657a969736fc6.jpg)
文章目录
字符串常量池
常量池是在Java方法区中的一片空间,在常量池中不会存储相同内容的字符串。我们可以通过 == 来验证这个结果。
package other;
public class CodeSource {
public static void main(String[] args) {
/**
* 通过字面量的方式(区别于new方式)给一个字符串赋值,此时的字符串值声明在字符串常量池中
* 字符串常量池中是不会存储相同内容的字符串的。
*/
String s1 = "abc";
String s2 = "abc";
s1 = "hello";// 由于String的不可变性,所以这个是重新申请一个空间,不可以在原有的地址上重新赋值
System.out.println(s2); // abc 由于s2的值没有改变,间接验证了String的不可变性。
System.out.println(s1 == s2); // true
String s3 = "abc";
s3 += "def"; // 不是原有的基础上改的, 新造的abcdef
System.out.println(s3);
String s4 = "abc";
String s5 = s4.replace('a','m'); // 也是重新造一个
System.out.println(s4 == s5);// false
}
}
String的初始化方式
虽然new String()在堆空间里申请空间,但其实质还是在常量池中开辟一个字符常量,然后让堆空间的地址再指向这个常量池中的地址。
package other;
public class CodeSource {
public static void main(String[] args) {
// String 初始化的方式
String s1 = "javaEE";
String s2 = "javaEE"; // 字面量方式 在方法区的常量池中
String s3 = new String("javaEE");
String s4 = new String("javaEE");// 在堆空间开辟空间,空间地址中的内容也是指向常量池
System.out.println(s1 == s2);// true
System.out.println(s1 == s3); // false
System.out.println(s1 == s4);// false
System.out.println(s3 == s4); // false
System.out.println(s1.equals(s2));
/**
* 面试题:String s = new String("abc") 方式创建了两个对象,一个在常量池中,一个在堆空间中。
*/
}
}
关于String的不可变性的一个题目
public class Test {
public static void change(People p){
p.age = 21;
}
public static void main(String[] args) {
People people = new People(12);
change(people);
System.out.println(people.age); // 21
}
}
public class Test {
public static void change(People p){ // 对于对象传进去的是引用。
p.age = 21;
}
public static void main(String[] args) {
People people = new People(12);
change(people);
System.out.println(people.age); // 21
}
}
但是对于String的不可变性,地址不会改变,所以有了下面的结果。
package other;
public class StringTest {
String str = new String("good");
char[] ch = {'t','e','s','t'};
public void change(String str,char ch[]){
str = "test ok";
ch[0] = 'b';
}
public static void main(String[] args) {
StringTest ex = new StringTest();
ex.change(ex.str,ex.ch);
System.out.println(ex.str);// good
System.out.println(ex.ch);// best
}
}
内容总结
以上是互联网集市为您收集整理的Java中String的用法全部内容,希望文章能够帮你解决Java中String的用法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。