重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天就跟大家聊聊有关Java常用类String类是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联专注于网站建设|成都网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都广告制作等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身定制品质网站。
常用类 String
String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
String源码
public final class String implements java.io.Serializable, Comparable, CharSequence { }
String的成员变量
//String的属性值 private final char value[]; //数组被使用的开始位置 private final int offset; //String中元素的个数 private final int count; //String类型的hash值 private int hash; // Default to 0 private static final long serialVersionUID = -6849794470754667710L; private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0];
从源码看出String底层使用一个字符数组来维护的。
成员变量可以知道String类的值是final类型的,不能被改变的,所以只要一个值改变就会生成一个新的String类型对象,存储String数据也不一定从数组的第0个元素开始的,而是从offset所指的元素开始。
(视频教程推荐:java视频教程)
创建字符串对象的方式
String s1 = "hello" ; String s2 = "world" ; String s3 = "hello" ; System. out. println(s1 == s3) ; //true
S1和S3的“hello”和s2的"world"存在的是方法区的常量池。
如图:
所以s1==s3
s1 = new String ("hel1o") ; s2 = new String ("hel1o") ; System.out.println(s1 == s2) ; //false System.out.println (s1.equals (s2) ) ; // true
s1和s2是通过new得到两个String对象,存在堆中,地址是不一样的。s1和s2是两个引用,所以比较的是地址,s1 != s2。
String的equals是重写了Object的equals,不是和Object一样比较地址,而是比较值,所以s1.equals (s2) 是true。
3.char c[]= { 's', 'u' , 'n',',', 'j', 'a', 'v' ,'a'} ; String s4 = new String(c) ; String s5 = new String(c,4,4) ; System.out.println(s4) ; //sun java System.out.println(s5) ; //java
看完上述内容,你们对Java常用类String类是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。