• 《java入门》第一季之类(String类字符串一旦被赋值就没法改变)


    毫无疑问,String类是java里面最重要的类之一。因此它有很多方法需要了解和掌握。

    字符串一旦被赋值,值就不能发生改变:

    package cn.itcast_02;
    
    /*
     * 字符串的特点:一旦被赋值,就不能改变。
     */
    public class StringDemo {
    	public static void main(String[] args) {
    		String s = "hello";//hello是在字符串常量池中待着的。赋值hello后就没法在改变了。
    		s += "world";
    		System.out.println("s:" + s); // helloworld
    	}
    }
    整个过程开辟了三个空间。
    
    通过图片看一下赋值过程。

    /*
     * String s = new String(“hello”)和String s = “hello”;的区别
     * 前者会创建2个对象(hello在常量池中创建对象,再在堆内存中创建(new出来的),然后new出来的对象指向字符串常量池中的对象),后者创建1个对象,
       直接指向字符串常量池中。
     * 
     * ==:比较引用类型比较的是地址值是否相同
     * equals:比较引用类型默认也是比较地址值是否相同,而String类重写了equals()方法,比较的是内容是否相同。
     */
    public class StringDemo2 {
    	public static void main(String[] args) {
    		String s1 = new String("hello");
    		String s2 = "hello";
    
    		System.out.println(s1 == s2);// false
    		System.out.println(s1.equals(s2));// true
    	}
    }

    /*
     * 看程序写结果
     */
    public class StringDemo3 {
    	public static void main(String[] args) {
    		String s1 = new String("hello");
    		String s2 = new String("hello");
    		System.out.println(s1 == s2);// false
    		System.out.println(s1.equals(s2));// true
    
    		String s3 = new String("hello");
    		String s4 = "hello";
    		System.out.println(s3 == s4);// false
    		System.out.println(s3.equals(s4));// true
    
    		String s5 = "hello";
    		String s6 = "hello";
    		System.out.println(s5 == s6);// true
    		System.out.println(s5.equals(s6));// true
    	}
    }



    字符串到底创建几个对象问题,再以后专题中再做详细整理。


  • 相关阅读:
    移动端rem适配
    extern 关键字
    腾讯2014校园招聘软件开发类笔试试题
    堆,栈,堆栈
    转:对TCP/IP网络协议的深入浅出归纳
    转:程序员面试笔试宝典学习记录(一)
    求素数
    [C++]访问控制与继承(public,protect,private) 有时间再整理!!!
    面向对象的static关键字(类中的static关键字)
    腾讯校园招聘会笔试题2011.10.15
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299836.html
Copyright © 2020-2023  润新知