0
点赞
收藏
分享

微信扫一扫

java基础知识点API之String详解--String基础看它就够了

一:概述

java中的String在java.lang包下,使用时可以直接使用不需要进行导包。字符串在日常使用中非常多,例如之前的变量定义。

二:详细说明

<1>JDK-帮助文档中对Strng类的介绍

                   java基础知识点API之String详解--String基础看它就够了_字符串

                   java基础知识点API之String详解--String基础看它就够了_System_02

<2>字符串常量的创建,字符串常量在创建之后,它们的值不能被更改,但是可以被共享。

public static void main(String[] args) {
        String s1 = "abc12345324356";
        int length = s1.length();
        System.out.println(length);

        s1 = "abc";  // 这一步是让s1这个字符串类型的变量,记录了一个新的对象
        System.out.println(s1);
    }

<3>String类的构造方法

  • String类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例

构造方法:

  • String():初始化新创建的 String对象,使其表示空字符序列
  • String(String original):初始化新创建的String对象,使其表示与参数相同的字符序列

(1)创建空的字符串

 String s = new String();

(2)根据字符数组的内容,来创建字符串对象

 char[] chs = {'a','b','c','d','f'};
 String s2 = new String(chs);

(3)根据传入的字符串内容,来创建字符串对象

 String s3 = new String("abc");

                   java基础知识点API之String详解--String基础看它就够了_System_03

注意:java中,String类比较特殊,在打印的时候,打印的不是内存地址而是里面真实记录的内容。

<4>通过双引号创建字符串对象和构造方法创建字符串对象的区别

 String s1 = "abcdef";
         String s2 = "abcdef";
         System.out.println(s1 == s2); //true

         char[] chs = {'a', 'b', 'c'};
         String s3 = new String(chs);
         String s4 = new String(chs);

         System.out.println(s3 == s4); // false

通过双引号创建字符串对象,它的存储地方是字符串常量池。构造方法创建的字符串对象它的存储地方是在堆内存中存储。

<5>字符串的比较与拼接

String s1 = "acded";
        String s2 = "acded";
        System.out.println(s1 == s2);   // true

        System.out.println("===================");

        String s3 = "abc";
        String s4 = new String("abc");  // 实际上创建了两个对象
        System.out.println(s3 == s4);    // false


        System.out.println("=======================");
        String s5 = "abc";
        String s6 = "ab";
        String s7 = s6 + "c";

        System.out.println(s5 == s7); // false

        System.out.println("====================");

        String s8 = "qwef";
        String s9 = "q" + "w" + "e" + "f";
        System.out.println(s8 == s9); // true
        // java在常量优化机制,在编译的时候,就会将“q”+"w"+"e"+"f"拼接为“qwef”

    }

}

                   java基础知识点API之String详解--String基础看它就够了_System_04

字符串常量池,当使用双引号创建字符串的时候,系统会先检查该字符串是否在字符串常量池中,如果有就复用,如果没有,就会去创建。






举报

相关推荐

0 条评论