• Java面向对象-- String 类


    1,实例化String对象 ,

    有两种方式,我们直接看代码:

    package com.java1234.chap03.sec08;
     
    public class Demo1 {
     
        public static void main(String[] args) {
            // 实例化String的方式一
            String name1="张三";
            System.out.println("name1="+name1);
             
            // 实例化String的方式二
            String name2=new String("李四");
            System.out.println("name2="+name2);
        }
    }

    运行输出:

    name1=张三

    name2=李四

    2,“==”VS“equals方法”

    “==” 比较的是引用(是否指向同一个内存块)  “equals”比较的是具体内容

    
    
    package com.java1234.chap03.sec08;
     
    public class Demo2 {
     
        public static void main(String[] args) {
            String name1="张三";  // 直接赋值方式
            String name2=new String("张三"); // new方式
            String name3=name2; // 传递引用
             
            // ==比较的是引用
            System.out.println("name1==name2:"+(name1==name2));
            System.out.println("name1==name3:"+(name1==name3));
            System.out.println("name2==name3:"+(name2==name3));
             
            // equals比较的是具体内容
            System.out.println("name1.equals(name2):"+(name1.equals(name2)));
            System.out.println("name1.equals(name3:"+(name1.equals(name3)));
            System.out.println("name2.equals(name3):"+(name2.equals(name3)));
        }
    }

    运行输出:

    name1==name2:false

    name1==name3:false

    name2==name3:true

    name1.equals(name2):true

    name1.equals(name3:true

    name2.equals(name3):true

     

    3,String两种实例化方式的区别

    直接赋值方式,创建的对象存放到字符串对象池里,假如存在的,就不会再创建;

    new对象方式,每次都创建一个新的对象;

    package com.java1234.chap03.sec08;
     
    public class Demo3 {
     
        public static void main(String[] args) {
            String name1="张三";
            String name2="张三";
            String name3=new String("张三");
            String name4=new String("张三");
             
            System.out.println("name1==name2:"+(name1==name2));
            System.out.println("name1==name3:"+(name1==name3));
            System.out.println("name3==name4:"+(name3==name4));
        }
         
    }

    运行输出:

    name1==name2:true

    name1==name3:false

    name3==name4:false

     

     

    4,字符串的内容不可变性

    字符串的特性:不能改变字符串的内容;

    要想改变,只能通过指向一个新的内存地址;

    package com.java1234.chap03.sec08;
     
    public class Demo4 {
     
        public static void main(String[] args) {
            String name="张";
            name+="三";
            System.out.println(name);
        }
    }

  • 相关阅读:
    117. Populating Next Right Pointers in Each Node II
    50. Pow(x, n)
    494. Target Sum
    Word Ladder
    HDU 4417
    POJ 2104
    POJ 3277
    【转】图论500题
    POJ 2991
    POJ 1436
  • 原文地址:https://www.cnblogs.com/xyg-zyx/p/9824373.html
Copyright © 2020-2023  润新知