zoukankan      html  css  js  c++  java
  • java常用类

    String

    String表示字符串,所谓字符串,就是一连串的字符;

    String是不可变类,一旦String对象被创建,包含在对象中的字符序列(内容)是不可变的,直到对象被销毁;

    常量池:JVM中一块独立的区域存放字符串常量和基本类型常量(public static final)。

    String使用private final char value[]来实现字符串的存储,也就是说String对象创建之后,就不能再修改此对象中存储的字符串内容,就是因为如此,才说String类型是不可变的.

    String对象比较:

    单独使用""引号创建的字符串都是常量,编译期就已经确定存储到常量池中;

    使用new String("")创建的对象会存储到堆内存中,是运行期新创建的;

    使用只包含常量的字符串连接符如"aa" + "bb"创建的也是常量,编译期就能确定,已经确定存储到常量池中;

    使用包含变量的字符串连接符如"aa" + s1创建的对象是运行期才创建的,存储在堆中;

    Eg:

    package string;

    public class StringDemo {

           public static void main(String[] args) {

                  /*

                   *  "" 其实表示的是  String的匿名对象

                   */

                  String s = "";

                  /**

                   * String()    初始化一个新创建的 String 对象,使其表示一个空字符序列。

                   *  "",不是表示 null

                   *  String(String original)

                   *  String s = new String("asd");// s 的值就是 asd

                   */

                  s = new String();//""

                  String s1  = new String("11");

                  String s2  = new String("11");

                  System.out.println(s1 == s2);//false

                  String s3 = "22";

                  String s4 = "22";

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

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

                  String  s5 = "2" + "2";//这句话其实在编译器编译后的class文件中 已经变成  "22"

                  //s5创建了几个对象?//回答:最多一个,如果常量池里面没有就是创建一个,如果常量池里本来就有就是创建零个!下面的str一样的道理。

                  String str = "A" +"B"+ "C" +"D" +"E";//String str = "ABCDE";

                  System.out.println(s3 == s5);//true

                  /**

                   * String特点:     不可变的,  一个String对象的内容不能变,一旦内容变量该对象就变成一个新的String对象了

                   *   String  str = "AAA";

                   *   str = str+"12";

                   */

                  String str1 = "ABCDE";

                  System.out.println(str == str1);//true

                  String str2 = "ABC" + "DE";

                  System.out.println(str == str2);//true

                  String  ss = "AB";

                  String str3 = ss + "CDE";//这里的str3在运行期才能确定内容值

                  System.out.println(str3 == str2);//false

                  String str4 = getStr() +"CDE";//在运行期才能确定 str4的值

                  System.out.println(str == str4);//false

                  System.out.println(str3 == str4);//false

                  /*

                   *  String s = "cd";      //一个String对象

                         s = s + "itcast";      //itcast也是String对象, 最后的s的值cditcast,也是一个String对象

                         System.out.print(s);

                   * */

           }

           public static String getStr(){

                  return "AB";

           }

    }

    Eg:

    package reviewDemo;

    public class Demo20 {

        public static void main(String[] args) {

            //s1,s2只新建了一个对象

            String s1 = "你好";

            String s2 = "你好";

           

            //s3,s4新建了两个对象

            String s3 = "你好";

            String s4 = "你好";

        }

    }

  • 相关阅读:
    node学习笔记
    mysql开发常用小结
    MS SQL 合并结果集并求和 分类: SQL Server 数据库 2015-02-13 10:59 93人阅读 评论(0) 收藏
    MS SQL 合并结果集并求和 分类: SQL Server 数据库 2015-02-13 10:59 92人阅读 评论(0) 收藏
    正是孤独让你变得出众,而不是合群 分类: 其他 2015-02-08 20:38 83人阅读 评论(0) 收藏
    正是孤独让你变得出众,而不是合群 分类: 其他 2015-02-08 20:38 82人阅读 评论(0) 收藏
    Jquery easy UI 上中下三栏布局 分类: ASP.NET 2015-02-06 09:19 370人阅读 评论(0) 收藏
    Jquery easy UI 上中下三栏布局 分类: ASP.NET 2015-02-06 09:19 368人阅读 评论(0) 收藏
    过年为什么要贴门神? 分类: 其他 2015-01-31 09:53 131人阅读 评论(0) 收藏
    过年为什么要贴门神? 分类: 其他 2015-01-31 09:53 130人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11132215.html
Copyright © 2011-2022 走看看