• 面向对象15.1String类特点


    String 特点:

      字符串对象一旦被初始化就不会被改变。

    public class Ssstring {
    public static void main(String[] args) {

    //这个是2个2对象
    // String s="abc";//这个s指向abc
    // s="nba";//现在这个s指向nba
    //字符串对象一旦初始化不能变
    //s只是一个引用变量,可以指向任何东西,那个是他的事情
    // System.out.println(s);

    /*
    *
    * 字符串定义的第一种方式,并明确字符串常量池的特点
    * 池子中没有就建立,有的话就直接用
    * */

    // String s="abc";//s="abc"给了一个字符串,他会先到字符串常量池,
    // //找,看有没有abc,一看没有就建立一个abc,在把建的这个abc的地址给s
    // String s1="abc";//s="abc"给了一个字符串,他会先到字符串常量池,
    // //找,看有没有abc,一看有"abc",因为上面刚刚已经创建过abc了,
    // //然后他就把已有的abc的地址赋给s1
    //
    // System.out.println(s==s1);//true?字符串建立时,在内存当中有一个字符串常量池,
    // //根据上面的介绍,所以s==s1是指向同一个对象

    /*
    * 创建对象都是用new创建,一个类想要用new创建对象,要初始化。
    * */
    //这个2个的区别:
    // String s="abc";//这个是在字符串常量池中创建了一个字符串abc并把地址赋值给了s引用型变量(这个其实是创建了一个对象)
    // String s1=new String("abc");//这个是在堆内存当中new创建了一个String对象,这个String对象在构造的时候,
    // //接受了一个字符串abc。=new String("abc")这个动作不是在字符串常量池中创建的。
    // //(这个其实是在堆内存中创建了2个对象,第一个是new了一次new String,第二个是把对象参数abc传进去了,对象是要先存在,所以还要在创建一个字符串abc对象,所以就是有2个对象)
    // System.out.println(s);//abc
    // System.out.println(s1);//abc
    // System.out.println(s==s1);//false?,"=="是用来比较地址的值(这个地址就是常量池里面的地址值)
    // System.out.println(s.equals(s1));//true?,String类是Object类的子类,String是将Object类中的equals方法覆写
    // //他建立了字符串依据自身特点来比较字符串对象,是否相同的依据,(其实就是equals比较的是内容,不比较地址)

    }
    }

  • 相关阅读:
    java 接口和抽象类的一个最大的区别
    python 简化数据结构的初始化二 支持关键字参数
    python 简化数据结构的初始化一
    python @staticmethod
    python @classmethod
    codeskulptor hosts
    An Introduction to Interactive Programming in Python (Part 1) -- Week 2_2 练习
    An Introduction to Interactive Programming in Python (Part 1) -- Week 2_1 练习
    mysql-5.7.14-winx64免安装版在win10下的详细配置过程
    python 反模式
  • 原文地址:https://www.cnblogs.com/likeji/p/6216715.html
Copyright © 2020-2023  润新知