• 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类型的

  • 相关阅读:
    【C++】内联函数 ③ ( C++ 编译器 不一定允许内联函数的内联请求 | 内联函数的优缺点 | 内联函数 与 宏代码片段对比 )
    Linux 根据 PID 查看进程名称
    Docker-系统环境
    Jenkins 中配置 LDAP
    Vue双向绑定的原理
    浏览器解码过程分析
    adb驱动和adb工具官方下载链接
    get和post的区别
    推荐系统笔记(十六):推荐系统图协同过滤的深入理解/
    SpringMVC基础篇(二)
  • 原文地址:https://blog.csdn.net/Cai_Xu_Kun/article/details/126369667