易截截图软件、单文件、免安装、纯绿色、仅160KB

java中equals和==的区别

值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
显然,当equals为true时,==不一定为true;
一、String中的equals和==
1、
public class TestString {
     public static void main(String[] args) {
         String s1 = "Monday";
         String s2 = "Monday";
     }
}
上面这段程序中,到底有几个对象呢?
来检测一下吧,稍微改动一下程序
public class TestString {
     public static void main(String[] args) {
         String s1 = "Monday";
         String s2 = "Monday";
         if (s1 == s2)
             System.out.println("s1 == s2");
         else
             System.out.println("s1 != s2");
     }
}
编译并运行程序,输出:s1 == s2
说明:s1 与 s2 引用同一个 String 对象 -- "Monday"!
2.
再稍微改动一下程序,会有更奇怪的发现:
public class TestString {
     public static void main(String[] args) {
         String s1 = "Monday";
         String s2 = new String("Monday");
         if (s1 == s2)
             System.out.println("s1 == s2");
         else
   &nb


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

传智播客——java学习7 集合类

今天我学习了张老师讲的集合类视频;做了一些简单的记录
 
集合类:在面向对象的编程思想中,都是以对象的形式对事物进行描述的,为了保证在对象的生命周期,我们需要持有对象,在很多情况下,我们不知道在程序中需要创建多少个对象,这时就不能依靠定义引用对象的变量来持有每一个对象,
     ......

传智播客java学习 Cookie

今天 冯老师主要讲的是cookie的作用和意义:
 
       Cookie的特点:
 
1.                       Cookie是一种在客户端保持HTTP状态信息的技术。
 
2.&n ......

传智播客java学习 session

今天我听了冯老师讲的session课程:我做了简单的笔记
1.         session用来存取大量的数据;可以看做一个容器;
2.         用sessionID(String类型的,唯一的,保存在客户端)来标识session,
3.     &nb ......

传智播客java学习 el表达式

我今天学习了工厂模式和El表达式,我做了简单的笔记;
1.         工厂模式:简单工厂模式:工厂方法模式;抽象工厂模式
2.         简单工厂模式:(itcastsimpleFactroy)
a)         开闭 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号