String类的内存解析——字符串常量池

原创 2016年05月30日 17:34:08
package pers.songhongkang.chapter4.day09;
//String类的内存解析,存在常量池中
public class TestString {
	public static void main(String[] args) {
		String str1="AA";
		String str2="AA";
		String str3=new String("AA");
		System.out.println(str1==str2);//true
		System.out.println(str1.equals(str2));//true
		System.out.println(str1==str3);//false
		System.out.println(str1.equals(str3));//true
		Person p1=new Person("AA",10);
		Person p2=new Person("AA",10);
		System.out.println(p1==p2);//false,比较的是p1,p2两个地址值
		System.out.println(p1.equals(p2));//false,调用的是object类的equals()方法,比较的是p1,p2两个地址值
		System.out.println(p1.name==p2.name);//true
	}

}
class Person{
	public String name;
	public int age;
	Person(String name,int age) {
		this.name=name;
		this.age=age;
	}
	
	}


相关文章推荐

Java的String类为什么是不可变的以及字符串常量池

JAVA中的String是一个不可变(immutable)类,即创建一个String对象后,是不能直接改变字符串中的某个字符的。 我们打开JDK中String类的源代码来看一下: /** The ...

【java】String 类字符串常量池

原文地址:http://xiaohuafyle.iteye.com/blog/1473335 下面根据代码详细解释一下各种String构造情况。  代码如下:  Java代码   p...

深入理解java虚拟机(三):String.intern()-字符串常量池

深入理解java虚拟机(一):java内存区域(内存结构划分) 深入理解java虚拟机(二):java内存溢出实战   看源码:  public native String intern();    ...

从字节码理解String与字符串常量池

Java程序员相必都知道或者应该需要知道String的值是存在一个叫字符串常量池的数据结构内的,如果常量池内有字符串“AA”,这是之前一次赋值字符串String b = “AA”的时候产生的,那么你再...

常量池之字符串常量池String.intern()

运行时常量池是方法区(PermGen)的一部分。需要提前了解: 1. JVM内存模型。 2. JAVA对象在JVM中内存分配常量池的好处常量池是为了避免频繁的创建和销毁对象而影响系统性能,其实现了...

String.intern in Java 6, 7 and 8 – string pooling (在Java 6,7和8中的String.intern - 字符串常量池化)

String.intern in Java 6, 7 and 8 – string pooling (在Java 6,7和8中的String.intern - 字符串常量池化)原文链接:http://...

Java字符串常量池是什么?

Java字符串常量池是什么?顾名思义,Java中的字符串常量池(String Pool)是存储在Java堆内存中的字符串池。我们知道String是java中比较特殊的类,我们可以使用new运算符创建S...

Java中的字符串常量池

Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String str = new Strin...

java的字符串常量池(转)

java的字符串常量池(转)   2012-11-22 13:49:09|  分类: java|举报|字号 订阅 http://www.cnblogs.com/br...

什么是字符串常量池?

在理解字符串常量前,我们先熟悉一下如何创建一个字符串,在Java中有两种方法可以创建一个字符串对象: 使用new运算符。例如: 1 String str ...
  • qqqq724
  • qqqq724
  • 2014年05月01日 16:03
  • 367
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:String类的内存解析——字符串常量池
举报原因:
原因补充:

(最多只允许输入30个字)