Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Java SE 综合讨论区
打印话题 寄给朋友 订阅主题 |
作者 | Re:Integer n=new Integer(16)什么意思 [Re:Jakie] |
alpacino
发贴: 20 积分: 0 |
于 2004-09-21 16:19
String str1="JAVA";//这个赋植形式是将str1指向内存静态空间的“java”, String str2=new String("JAVA");//这个赋植形式是将str2指向内存动态空间的“java” 所以str1和str2实际上是指向2个不同的内存地址(java语言中虽然没有地址的操作,但实际上这些操作是由虚拟机代劳的,所以JAVA在执行程序时仍然存在地址这一说),这2个地址虽然都存放着“JAVA”,但“==”在做比较时,对基本数据类型是做“值”的比较,而str1和str2是2个对象,所以“str1==str2”是比较2个对象的“引用”(可以理解为地址)而不是“值”,要比较2个对象的“值”,就应该使用上面那位仁兄所说的“equals”方法。 “equals”方法属于“object”类,这个类是最高级的类(系统内置),可以理解为所有类的父类,所有的类都继承它的方法,在这个类里面,它已经定义了“equals”方法的含义,就是比较对象的值。在“string ”类里面,没有重置“equals”方法,所以“equals”可以比较对象的"值";而在”stringbufter“类里面,因为重置了“equals”方法,所以,对于”stringbufter“类的对象作比较而使用“equals”方法,实际还是比较的”引用“,这一点希望大家能注意。 学java的朋友,请一起来投票让sun推出中文jdk文档!!! |
话题树型展开 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |