java中string和String,java中string是干什么
Java String类使用非常频繁,我们来看看它是什么。
如何解决写爬虫IP受阻的问题?立即使用。
String是不可变对象
java.lang.String类用final修饰,不能被继承。Java程序中的所有文字值,即双引号中的字符串,如“abc”,都是作为String类的实例实现的。
String是一个常量,其对象一旦构造就不能更改。换句话说,字符串对象是不可变的,每一个看似修改字符串值的方法实际上都创建了一个全新的字符串对象来包含修改后的字符串内容。而原始字符串对象根本没有移动。对象是只读的,对它的任何引用都不能改变它的值,所以不会影响其他引用。但是字符串引用可以被重新分配。
Java字符串在内存中采用unicode编码,任意字符对应两个字节的定长编码,即任意字符(无论中文还是英文)都算作一个字符长度,占用两个字节。
例子:
公共类不可变{
公共静态字符串大写(字符串){
返回s . toupper case();
}
公共静态void main(String[ ] args) {
String str1= Hello World
system . out . println(str 1);//你好世界
string str 2=up case(str 1);
system . out . println(str 2);//你好世界
system . out . println(str 1);//你好世界
}
}当str1传递给upcase()方法时,实际传递的是引用的副本。实际上,每当String对象作为方法的参数时,都会复制一个引用,引用所引用的对象实际上停留在单个物理位置,从不移动。
String常量池
常量池指的是在编译时确定并保存在编译后的。类文件。它包括类、方法、接口等中的常量。以及字符串常量。为了提高Java的性能,在常量池中创建静态字符串(literal/constant/constant连接的结果),尽可能使用同一个对象来重用静态字符串。对于重复的字符串文字,JVM将首先在常量池中寻找它们,如果它们存在于常量池中,它将返回对象。
示例2:
公共类test1 {
公共静态void main(String[] args){
String str1= Hello
//不创建新的字符串对象,而是使用常量池中现有的“Hello ”,
String str2= Hello
system . out . println(str 1==str 2);//真
//使用new关键字将创建一个新的字符串对象
String str3=新字符串( Hello );
system . out . println(str 1==str 3);//假
}
}以上是java中什么是string类的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。