一、Strng类的概念

  String类在我们开发中经常使用,在jdk1.8版本之前(包括1.8),String类的底层是一个char类型的数组,1.8版本之后是byte类型的数组,正是因为String类型的底层实现是数组,所以String类型的值是不可改变的,平常肉眼可见的可以改变String变量的值,其实本质上是将该变量的引用指向了一个其他的堆空间。

二、String类的使用

  String类的声明赋值方式有两种:一是直接赋值:即String str = "abc";而是通过创建对象的方式赋值:即String str = new String("str");

  首先说一下第一种赋值方式:这种赋值方式是在开发过程中使用最多的,也是最简便的,虽然在赋值过程中没有new 关键字,但是其实在内存中开辟了空间,由于这种方式比较特殊,所以是在堆的静态区开辟了空间用于存储该值,需要注意的是这个静态区跟堆不在一个地方。这边举个例子验证一下:

public static void main(String[] args) {
        //第一种方式赋值
        String str1 = "abc";
        //第二种方式赋值
        String str2 = new String("abc");
        System.out.println(str1 == str2);
    }

  该代码的运行结果为false,虽然两个变量的值一样,但是它们各自指向的地址不一样,所以结果为false

  第二种赋值方式比较少见,这种方式与我们平常创建类的对象的过程一样,即在堆空间中开辟内存。

三、String类中的方法的使用

  String类中的方法在开发中比较常用,我就一一不列举了,这边提供一下关于String类中的方法的 jdk文档

  

01-03 05:09