看看thinking in java吧,里面写的很清楚。
解决方案 »
- 请教高手一个问题!!!!!!
- 帮忙看看 有高分的
- 怎么使用DBCP,我没有找到相关的资料,最好有在现用项目中使用的范例。
- 如何把一个文件读入到一个字节数组中
- 我是新手,我来求教!请教各位达人,涉及Qos(Quality of Service)方面的知识。
- 关于java的几个小问题。。。
- 有哪位大侠知道jbuilder 企业版for linux的下载地址,多谢多谢
- 查询数据库的奇怪问题?80分求救.
- 如何配置(tomcat)才能让我的asp运行起来
- 刚学JAVA,生产消费者问题,求指点
- java初学者:大家常去的java网站,给小弟推荐几个!
- 请各位JAVA高手,网业高手看过来,我把能给的分都送出!!!只能给37分,哎!!
== 在比较主类型的时候比较的是值;
== 在比较对象类型的进修比较是对象的引用,基本上是对象的地址吧;
String 类型创建后是不变的,所以String 类型的字面常量会被JVM重用;
用 new 创建的对象都是会在堆上创建的。
new 一个东西,指的是在内存区重新开辟一个对象!
String t2="test";就 等于:String t2=new String("test");
因为String类型反正不可改变值,所以如果同样内容的两个String变量,一般来说,可以指向同一个对象而不影响程序结果,因此编译器尽可能检查这种引用,进行优化。
前一种用法,编译器可以进行优化,使得t1和t2指向同一个对象
后一种用法,你强制调用了一个new String(),因此t2是一个新的String对象
而"=="就是用来比较两个引用是不是指向同一个对象的
不要乱想,String就是一种对象,就是字符串,也是Object.