• JAVA常用类


    String类

    1简介

    1、String表示字符串类型,属于引用数据类型,不属于基本数据类型
    2、在java中随便使用 双引号括起来 的都是String对象。
    3、java中规定,双引号括起来的字符串,是 不可变 的,也就是说"abc"自出生到最终死亡,不可变,不能变成"abcd",也不能变成"ab"
    4、在JDK当中双引号括起来的字符串,例如:“abc” "def"都是直接存储在“方法区”的“字符串常量池”当中的。
    5、为什么把字符串存储在一个“字符串常量池”当中呢?

    因为字符串在实际的开发中使用太频繁。为了执行效率,所以把字符串放到了方法区的字符串常量池当中。
    字符串常量池:在JVM中,为了减少字符串对象的重复创建,维护了一块特殊的内存空间,这块内存空间就被称为字符串常量池。

    2.构造方法

    在这里插入图片描述

    // 这两行代码表示底层创建了3个字符串对象,都在字符串常量池当中。
    String s1 = "abc"
    
    • 1
    • 2
    String s2 = "abc"
            // 分析:这是使用new的方式创建的字符串对象。这个代码中的"xy"是从哪里来的?
            // 凡是双引号括起来的都在字符串常量池中有一份。
            // new对象的时候一定在堆内存当中开辟空间。
    String s3 = new String("xy");
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注:
    字符串对象之间的比较不能使用“== ”进行比较,"=="是比较的地址。应该调用String类的equals方法,比较字符串的内容。

    三、方法

    在这里插入图片描述

    相关问题:

    1.为什么 System.out.println(引用) 会自动调用toString()方法?
    因为println()会调用String.valueOf()方法而String.valueOf()会调用toString()方法
    2.String byte数组 理解
    byte[] b = new byte[1000000000];//有1000000000都是byte类型的

  • 相关阅读:
    【算法】国庆加班,火锅与Linq.AddRange的奇妙螺旋
    计算分组后组内最大值
    跑分平台的运作模式、业务流程及风险防控
    我把MySQL运行在Docker上,差点完了……
    【表达式求值问题】算符优先算法解决表达式求值问题
    基于java实现责任链进行参数校验
    图神经网络实战——图论
    IDEA安装配置SceneBuilder
    MATLAB----矩阵处理
    天书夜读笔记——内存分页机制
  • 原文地址:https://blog.csdn.net/Cai_Xu_Kun/article/details/126369667