首页 > 其他分享 >23-String类

23-String类

时间:2023-12-26 13:11:07浏览次数:32  
标签:String 23 对象 s2 s1 字符串 public

String 类的特点

1. Java程序中,所有双引号字符串,都是String这个类的对象

2. 字符串一旦被创建,就不可更改(如果想更改,只能使用新的对象做替换)

3. 字符串常量池,让我们使用双引号创建字符串对象时,会先去常量池中查找有没有相同内容的字符串对象,如果有,则直接使用该对象,如果没有,则在常量池中创建一个字符串对象,然后再使用该对象

public class StringDemo1 {
    public static void main(String[] args){
        // 1.Java程序中,所有双引号字符串,都是String这个类的对象
        String s = "abc";
        System.out.println(s); // abc

        // 字符串一旦被创建,就不可更改(如果想更改,只能使用新的对象做替换)
        s = "def";
        System.out.println(s); // def,字符串一旦被创建,就应该不可更改,这里为什么改变了,这是因为s指向了新的字符串对象"def"

        // 等价于上面的,s指向了新的字符串对象"def"
        Student stu = new Student("张三", 20);
        stu = new Student("李四", 21);
        System.out.println(stu.getName() + "\t" + stu.getAge()); // 李四    21

        // 2.字符串常量池,让我们使用双引号创建字符串对象时,会先去常量池中查找有没有相同内容的字符串对象,如果有,则直接使用该对象,如果没有,则在常量池中创建一个字符串对象,然后再使用该对象
        String s1 = "abc";
        String s2 = "abc";

        // == 比较的是两个对象的地址值是否相同
        System.out.println(s1 == s2); // true,因为s1和s2都指向了常量池中的同一个字符串对象"abc"
        // equals 比较的是两个对象的内容是否相同
        System.out.println(s1.equals(s2)); // true,因为s1和s2指向的字符串对象内容相同

    }
}

这里注意:不同的JDK版本,字符串常量池的位置是不一样的

JDK7版本之前,StringTable是在方法区中

JDK7版本开始之后,StringTable被挪到了堆内存中

 

String类常见的构造方法

1. public String(): 创建一个空白字符串,里面不包含任何内容

2. public String(char[] chs): 根据传入的字符串数组,创建字符串对象

3. public String(String original): 根据传入的字符串,来创建字符串对象

public class StringDemo2 {
    public static void main(String[] args){
        // public String():创建一个空白字符串对象,不含有任何内容
        String s1 = new String();
        System.out.println("s1:" + s1);

        // public String(char[] chs):根据传入的字符数组,来创建字符串对象
        char[] chs = {'a', 'b', 'c'};
        String s2 = new String(chs);
        System.out.println("s2:" + s2);

        // public String(String original):根据传入的字符串,来创建字符串对象
        String s3 = new String("abc");
        System.out.println("s3:" + s3);
    }
}

 

字符串对象,两种创建方式的区别

String s1 = "abc";

String s2 = new String("abc");

 

String类的常见面试题

 上面是字符串变量进行拼接,其结果是false,那要是字符串常量进行拼接呢,如下所示:

相当于从字符串池进行对比,其结果应该是true

 

标签:String,23,对象,s2,s1,字符串,public
From: https://www.cnblogs.com/REN-Murphy/p/17927622.html

相关文章

  • 2023最新高级难度Objective-C面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级难度Objective-C面试题合集问:请解释一下Objective-C中的“MethodSwizzling”(方法混淆)是什么?它的原理和使用场景是什么?MethodSwizzling是Objective-C中的一个特性,它允许你在一个运行时环境中交换两个方法的实现。这意味着你可以替......
  • 2023最新初级难度R语言面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-初级难度R语言面试题合集问:请解释一下R语言是什么?它的主要特点和用途是什么?R语言是一种用于统计分析、绘图和数据挖掘的编程语言和环境。它是开源的,可以免费下载和使用,并且具有强大的社区支持。R语言由新西兰奥克兰大学的RossIhaka和R......
  • 2023年度低代码平台企业TOP50榜单公布—以开源起家的JeecgBoot格外亮眼
    近日,中国科学院主管、科学出版社主办的国家级核心期刊《互联网周刊》联合eNet研究院、德本咨询评选的《2023低代码企业50强》榜单正式公布。这一榜单的公布引起了业内外的广泛关注,因为其中涵盖了低代码开发领域的众多杰出企业,展现了低代码产业的发展趋势和行业格局。在这份备......
  • 2023年最实用的Android Framework学习路线,让你轻松通过面试和适应实际工作
    许多Android开发者和应聘者都曾反映,在面试或考核过程中,经常遇到与AndroidFramework相关的问题。这些问题常常让他们感到困惑和不安,因为这些问题的确需要深入的理解和扎实的基础。Framework层的原理和机制对于Android开发来说至关重要。从应用启动到用户使用,整个过程中都离不开Fram......
  • NX2306 运动仿真-基本认知【机电设计概念】
    【写在每个笔记前面:个人学习记录,如有错误,烦请指正,不胜感激。】 思路:1、基本认知---对基础功能键的了解。(本篇内容) 基本对象:a、刚体:b、碰撞体:  2、真正设置一个运动之前,先理清楚运动流程、联动状态,固定块等?(没啥好讲的,反正就是每次操作之前自己理吧。) ......
  • 2023年终总结
    引子2023年的方方面面根据模板,主要从以下几个方面回顾过去一年。健康/锻炼、工作/职业、友情/社交、个人生活/家庭、学习/知识管理、旅游/文化、兴趣/创造、情绪/精神状况、财务状况。健康/锻炼工作/职业友情/社交个人生活/家庭学习/知识管理旅游/文化、兴趣/创造、情绪......
  • 音视频技术开发周刊 | 323
    每周一期,纵览音视频技术领域的干货。Meta牵头组建开源「AI复仇者联盟」,AMD等盟友800亿美元力战OpenAI英伟达超过50家科技大厂名校和机构,共同成立了全新的人工智能联盟。以开源为旗号,誓于OpenAI和英伟达一决高下。 深度学习大牛权威预测2024年AI行业热点,盘点开源AI趋势!AI社区大佬Se......
  • 2023年12月广州/西安/深圳DAMA-CDGA/CDGP认证报名到这口碑好
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......
  • 2023年12月东莞/惠州/深圳PMP®项目管理认证到这口碑好
    PMP®认证是ProjectManagementInstitute在全球范围内推出的针对评价个人项目管理知识能力的资格认证体系。国内众多企业已把PMP®认证定为项目经理人必须取得的重要资质。 【PMP®认证收益】1、能力的提升(领导力,执行力,创新能力,竞争力)。2、社会认可度高。3、工作效率提升。4、缩......
  • 2023年12月数据治理/项目管理/产品管理/领导力内训
    在节奏飞驰、风起云涌的企业世界中,为了企业的蓬勃发展,可以在内部或者外部挑选有经验的老师进行培训和学习。简而言之,任何一个企业想要发展,都少不了进行内训。企业内训的好处 提高员工的技能和知识水平通过不断地学习和培训,员工可以掌握新的工作技能,增强自己的专业素养,从而更好地适......