diff --git a/day08/src/com/inmind/string01/StringDemo02.java b/day08/src/com/inmind/string01/StringDemo02.java new file mode 100644 index 0000000..8d26f84 --- /dev/null +++ b/day08/src/com/inmind/string01/StringDemo02.java @@ -0,0 +1,44 @@ +package com.inmind.string01; +/* +String类的构造方法:创建String类的对象 + +String(String original) 初始化新创建的String对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本 +public String(char[] value) :通过当前参数中的字符数组来构造新的String。 +public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String。 + */ +public class StringDemo02 { + public static void main(String[] args) { + //public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String。 + //定义一个字节数组 + byte[] bytes = {97, 98, 99};// 97 -- 'a' + //创建String对象 + //将字节数组的内容拼接成新的字符串(根据编码方式,将对应的十进制的值编码成字符串内容) + //使用场景:javase,io流知识点中的字节流中来使用 + String s = new String(bytes); + System.out.println(s);//abc + } + + public static void method2() { + //public String(char[] value) :通过当前参数中的字符数组来构造新的String。 + //定义一个字符数组 + char[] chars = {'a', 'b', 'c'};//静态初始化简写形式 + //创建String对象 +// String s = new String(chars); + String s = new String(chars,1,2); + System.out.println(s);//abc + + } + public static void metdhod1() { + /* + String(String original) 初始化新创建的String对象,使其表示与参数相同的字符序列; + 换句话说,新创建的字符串是参数字符串的副本 + */ + String s1 = "abc"; + //通过构造方法创建对象 + String s2 = new String(s1); + System.out.println(s1); + System.out.println(s2); + System.out.println(s1 == s2);//false,因为s2使用了new在堆中开辟了新空间,虽然指向同一个内容,但是s1和s2的引用地址不同 + //总结:字符串String 如果要比较内容的话,一定不能使用 == 号,因为它比较的是地址 + } +}