目
录
1.String中常见的构造方法:![](https://i-blog.csdnimg.cn/blog_migrate/60759739e0ba537fec91ff1d1a6aac3b.gif)
- public String():空参构造(String() 初始化一个新创建的 String 对象,使其表示一个空字符序列)
- public String(String original):把字符串常量值转成字符串
- public String(byte[] bytes):把字节数组转成字符串
- public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度)
- public String(char[] value):把字符数组转成字符串
- public String(char[] value,int index,int count):把字符数组的一部分转成字符串
public class Test {
//空参构造
public StringTest() {
}
//StringTest(StringTest original)
public StringTest(java.lang.String s) {
}
//StringTest(byte[] bytes)
public StringTest(byte[] bytes) {
}
//StringTest(byte[] bytes,int index,int length)
public StringTest(byte[] bytes1, int i, int i1) {
}
//StringTest(char[] value)
public StringTest(char[] chars) {
}
//StringTest(char[] value,int index,int count)
public StringTest(char[] chars, int i, int i1) {
}
public static void main(String[] args) {
//空参构造
StringTest s = new StringTest();
System.out.println(s);
// StringTest(StringTest original)
StringTest s1 = new StringTest("abc");
System.out.println(s1);
// StringTest(byte[] bytes)把字节数组转换成字符串
byte[] bytes = {97, 98, 99, 100};
StringTest s2 = new StringTest(bytes);
System.out.println(s2);
//StringTest(byte[] bytes,int index,int length)
//把字节数组的一部分,转换成字串 从 0 索引处开始转换3个字节
byte[] bytes1 = {-26, -120, -111, -25, -120, -79, -28, -67, -96};
StringTest s3 = new StringTest(bytes1, 0, 3);
System.out.println(s3);
//StringTest(char[] value):把字符数组转成字符串
char[] chars = {'爱', '生', '活', '爱', 'J', 'a', 'v', 'a'};
StringTest s4 = new StringTest(chars);
System.out.println(s4);
//StringTest(char[] value,int index,int count):把字符数组的一部分转成字符串
StringTest s5 = new StringTest(chars, 0, 3);
System.out.println(s5);
}
}
2.String类代表字符串![](https://i-blog.csdnimg.cn/blog_migrate/60759739e0ba537fec91ff1d1a6aac3b.gif)
什么是字符串?
字符串是由一个或多个字符组成的一串数据(字符序列), JDK1.8 字符串,底层用的是字符数组存储的,所以字符串可以看成是字符数组.组成字符串的每个字符是编有索引的,从0开始.获取字符串的长度用length()方法.
注意: String 类型,虽说是引用数据类型,但是他作为参数传递,传递的是字符的值。
字符串的特性:
a:字符串字面值"abc"也可以看成是一个字符串对象。
public class Test {
public static void main(String[] args) {
// 1.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现.
int length = "abc".length();
System.out.println(length);
//abc就是一个对象!
//定义字符串的方式
String s = "Hello";
int length1 = s.length();
System.out.println(length1);
//new的方式
String s1 = new String("我爱你");
//字符串字面值的方式,一般都喜欢用这种方式。
String s3 = "你好";
}
}
b:字符串是常量,一旦被创建,就不能被改变。值不能被改变,你能改变的是引用或者说指向。
public class Test2 {
public static void main(String[] args) {
// 2. 字符串是常量;它们的值在创建之后不能更改。
String s = "hello";
s += "world";
System.out.println(s);
//输出结果是helloworld
}
}
输出结果是hellowold,为什么又说字符串是常量,值不能更改呢? 值确实不能被改变,改变的是引用或者说指向。查看一下内存图:
字面量创建字符串会先在字符串池中找,看是否有相等的对象,没有的话就在堆中创建,把地
址驻留在字符串池;有的话则直接用池中的引用,避免重复创建对象。
(小编也在努力学习更多哟!以后会多多分享哒!)
希望对友友们有所帮助!!!!