java中的数据类型,可分为两类: 

1.基本数据类型。也称原始数据类型。byte,short,char,int,long,float,double,boolean 

  他们之间的比較,应用双等号(==),比較的是他们的值。 

2.复合数据类型(类) 

  当他们用(==)进行比較的时候。比較的是他们在内存中的存放地址,所以。除非是同一个new出来的对象,他们的比較后的结果为true。否则比較后结果为false。 JAVA其中全部的类都是继承于Object这个基类的。在Object中的基类中定义了一个equals的方法。这种方法的初始行为是比較对象的内存地址。但在一些类库其中这种方法被覆盖掉了。如String,Integer,Date在这些类其中equals有其自身的实现。而不再是比較类在堆内存中的存放地址了。

  对于复合数据类型之间进行equals比較。在没有覆写equals方法的情况下,他们之间的比較还是基于他们在内存中的存放位置的地址值的,由于Object的equals方法也是用双等号(==)进行比較的,所以比較后的结果跟双等号(==)的结果同样。

在JAVA中利用"=="比較变量时,系统使用变量在"栈"中所存的值作为比較的根据。

基本数据类型在"栈"中存的是其内容值,而复合数据类型在"栈"中存的是地址,这些地址指向"堆"中的对象。

java.lang包中的Object类有public  boolean equals(Object obj)方法,它比較两个对象是否相等。

其他对象的equals方法仅当被比較的两个引用指向的对象内容同样时,对象的equals()方法返回true。

总之,=="比較的是"栈"中的内容,而equals()比較的是"堆"中的内容.

最新文章

  1. 关闭firefox的plugincheck
  2. Linux系统移植(1) ------搭建交叉编译环境
  3. A problem about rcssserver3d
  4. 利用IIS导出,导入快速部署 web站点
  5. 阻塞队列BlockingQueue用法
  6. AngularJS的directive(指令)配置选项说明
  7. ORA-00265: instance recovery required, cannot set ARCHIVELOG
  8. Gym 101064 D Black Hills golden jewels (二分)
  9. 转:synchronized和LOCK的实现原理---深入JVM锁机制
  10. 处理移动端click事件300ms延迟的好方法—FastClick
  11. 关于坑爹的PopupWindow的“阻塞”争议问题:Android没有真正的“阻塞式”对话框
  12. IIS无法启动,应用程序池自动关闭,应用程序池XXXX将被自动禁用 解决方案之一
  13. NYOJ--114--某种序列(大数)
  14. 前端要革命?看我在js里写SQL
  15. 由js深拷贝引起的对内存空间的一些思考
  16. Treeview 丢失焦点后依然高亮 SelectedNode
  17. C++学习-2
  18. ifrem上传文件后显示
  19. 【转载】Windows Server 2012服务器删除IIS方法
  20. sys模块学习记录

热门文章

  1. POJ 2484 A Funny Game 博弈论 对称博弈
  2. Codeforces Round #449 (Div. 2)ABCD
  3. 【推导】【分类讨论】Codeforces Round #431 (Div. 1) B. Rooter's Song
  4. 【BFS】bzoj2252 [2010Beijing wc]矩阵距离
  5. [转]XML中元素(Element)与节点(Node)的区别
  6. Codeforces Round #345 (Div. 1) E. Clockwork Bomb 并查集
  7. JIRA Service Desk 3.9.2 没有许可证
  8. Lua学习之类型与值
  9. 通过logstash收集mysql慢查询日志转换为json
  10. [转]Sql Server参数化查询之where in和like实现详解