码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-05-12 21:17:22      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

毫无疑问,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
	}
}



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


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

标签:

原文地址:http://blog.csdn.net/qq_32059827/article/details/51352175

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!