六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 42|回复: 0

清晰了解String操作

[复制链接]

升级  40%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
20
 楼主| 发表于 2013-1-27 04:54:12 | 显示全部楼层 |阅读模式
为了清晰了解String的操作,我们来看一段再经典不过的程序
class StringTest {public static void main(String[] args) {String s=new String("abc");String s1="abc";String s2=new String("abc");System.out.println(s==s1);System.out.println(s1==s2);System.out.println(s==s2);}}

大伙儿都知道内存中有两块儿存储区域,分别是栈和堆,加上JAVA字符串是由字符串池管理的,所以,我们的内存可以这样划分:



程序开始前所有区域都是空的,现在我们执行第一条语句
 
String s=new String("abc"); JAVA执行流程是这样的。首先判断字符串池里有没有值为"abc"的对象,由于这行语句实在程序第一句,字符串池是空的,所以,它会现在字符串池里构造一个值为"abc"的对象,然后执行new语句后,再把“abc”拷贝到堆里面,关于一个new String构造方法解释
<div class="quote_title">API 写道
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表