String类创建对象的两种方式和区别

举报
周小末天天开心 发表于 2022/12/31 17:01:05 2022/12/31
【摘要】 String类String类的理解和创建对象(1)String对象用于保存字符串,也就是一组字符序列(2)字符串常量对象是用双引号括起的字符序列。例如:"你好","123","abc"等(3)字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节(4)String类较常用构造器:1)String s1 = new String();2)String s2 = new...

String类

String类的理解和创建对象

(1)String对象用于保存字符串,也就是一组字符序列

(2)字符串常量对象是用双引号括起的字符序列。例如:"你好","123","abc"等

(3)字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节

(4)String类较常用构造器:

1)String s1 = new String();

2)String s2 = new String(String original);

3)String s3 = new String(char[] a);

4)String s4 = new String(charp[] a , int startIndex , int count);

代码演示

public class String01 {
    public static void main(String[] args) {
        //1.String 对象用于保存字符串,也就是一组字符序列
        //2. "jack" 字符串常量, 双引号括起的字符序列
        //3. 字符串的字符使用 Unicode 字符编码,一个字符(不区分字母还是汉字)占两个字节
        //4. String 类有很多构造器,构造器的重载
        // 常用的有 String s1 = new String(); //
        //String s2 = new String(String original);
        //String s3 = new String(char[] a);
        //String s4 = new String(char[] a,int startIndex,int count)
        //String s5 = new String(byte[] b)
        //5. String 类实现了接口 Serializable【String 可以串行化:可以在网络传输】
        // 接口 Comparable [String 对象可以比较大小]
        //6. String 是 final 类,不能被其他的类继承
        //7. String 有属性 private final char value[]; 用于存放字符串内容
        //8. 一定要注意:value 是一个 final 类型, 不可以修改(需要功力):即 value 不能指向
        // 新的地址,但是单个字符内容是可以变化
        
        String name = "jack";
        name = "tom";
        final char[] value = {'a','b','c'};
        char[] v2 = {'t','o','m'};
        value[0] = 'H';
        //value = v2; 不可以修改 value 地址
                                        }
}

创建String对象的两种方式

(1)方式一:直接赋值String s = "zhouxiaomo";

(2)方式二:调用构造器String s= new String("zhouxiaomo");

两种创建 String 对象的区别

(1)方式一:先从常量池查看是否有"zhouxiaomo"数据空间,如果有,直接指向;如果没有则重新创

建,然后指向。s的最终指向的是常量池的空间地址。

(2)方式二:先从堆中创建空间,里面维护了value属性,指向常量池的zhouxiaomo空间。如果常量池

中没有"zhouxiaomo",重新创建,如果有,直接通过value指向。最终指向的就是堆中的空间地址。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。