| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 980 人关注过本帖
标题:String类好特殊
只看楼主 加入收藏
小牛
Rank: 1
等 级:新手上路
威 望:1
帖 子:434
专家分:8
注 册:2006-10-1
结帖率:81.48%
收藏
 问题点数:0 回复次数:17 
String类好特殊

各位大哥:
String类很特殊。那下面二个语句是不是等价的:
String Str=new Str("abc");
String Str="abc";

搜索更多相关主题的帖子: String 
2007-03-15 12:22
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

你用什么判断的???
QEUAL?


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-15 12:39
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
没有修改的默认比的是地址

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-15 12:48
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
收藏
得分:0 

堆和栈的区别


开开心心的过&玩每一天!!!!
2007-03-15 12:55
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
Lz,声明的是俩个不同的对象引用,并给他们一段地址
而单纯的比较只比较这个引用的内容
而引用的内容是地址
所以如果比较对象引用的内容是否相等
建议改一下equals
如果是基本类型
单纯的==便可以比较
因为基本类型在堆栈,没有引用
他的内容就是他的值

[此贴子已经被作者于2007-3-15 14:33:17编辑过]


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-15 14:32
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 

java中的String确实设计的特殊一点.
但那有什么关系呢,你把它当作普通类来使用就得了.
比如String str ="abc";究竟它是在堆里面还是在栈里面对你使用它有什么影响呢?
只要记得比较两个字符串是否一样用要用equals方法而不要用==就可以了.

当然,如果你能够了解String特殊性也是好的,只是作为刚入门的JAVA学习者没必要困扰在这一点上.
要知道高级语言之所以高级,就是能够掩藏那些底层的实现细节.你只要会用那些API就OK了,至于它具体如何实现的,当你的水平再高一点的时候,可以看更高阶一点的书,比如<深入Java虚拟机>之类的,这种问题就很容易从根本上解决了.


My BlogClick Me
2007-03-15 15:54
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
支持楼上的说法.

我的msn: myfend@
2007-03-15 16:09
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
得分:0 

LZ说的等价指的是什么啊?
String str=new String("abc"); 我的理解是以一个字符串对象"abc"为模版 在内存中new出一个相同的"abc"对象 然后在把这个对象的哈嘻值存到str中
String str="abc"; 就是直接把内存中"abc"的哈嘻值直接存到str中

就是3个对象和2个对象的问题
高手指点下!不知道我说的对不对!

不好意思哈嘻值的英文怎么写来着 初学者没记住呢


越是深入的学习,就越来越感觉到自己知道的太少了...
2007-03-15 16:23
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

我认为这样会对理解程序的运行有好处的


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-15 20:37
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
收藏
得分:0 
以下是引用song4在2007-3-15 14:32:16的发言:
Lz,声明的是俩个不同的对象引用,并给他们一段地址
而单纯的比较只比较这个引用的内容
而引用的内容是地址
所以如果比较对象引用的内容是否相等
建议改一下equals
如果是基本类型
单纯的==便可以比较
因为基本类型在堆栈,没有引用
他的内容就是他的值
不是堆栈 就是栈!!

开开心心的过&玩每一天!!!!
2007-03-15 21:00
快速回复:String类好特殊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017166 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved