Java 面试题 == 和 equals 的区别】的更多相关文章

int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象:而int则是直接存储数据值 4.Integer的默认值是null,int的默认值是0 延伸: 关于Integer和int的比较 1.由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变…
关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指正,谢谢. 在JAVA程序中一般的基本类型(值类型int,double,boolean等)都只能通过 = = 来判断值是否相等. 如:System.out.println(1==1);System.out.println(true==true);√ 不能写成System.out.println(1.…
http://bbs.csdn.net/topics/390000725 总结: equals在没重写之前和==一样,重写之后,equals只要内容一样即为true equals跟==一般情况下是等价的,但是对于String类型,它重写了equals方法,比较的是内容.默认情况下两个都是比较的引用地址,除非你重写equals方法. equals源码: public boolean equals(Object anObject) { if (this == anObject) { return t…
一句话区别:==比较的是内存地址,equals比较的是值内容 结论: 从以下三点展开: 基本数据类型.字符串.对象 对于基本数据类型:只有==,没有equals. 对于字符串:==比较的是内存地址,equals比较的是值,需要在意的是new了一个String,会产生不同的对象,内存地址会发生变化 对于对象:==比较的是内存地址,equals比较的是值 如: String s1="abc"; String s2="abc"; s1.equals(s2) 是true 因…
HashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键. 那么Java运行时环境是如何判断HashSet中相同对象.HashMap中相同键的呢?当存储了“相同的东西”之后Java运行时环境又将如何来维护呢? 在研究这个问题之前,首先说明一下JDK对equals(Object obj)和hashcode()这两个方法的定义和规范: 在Java中任何一个对象都具备equals(Object obj)和hashcode()…
==号和equals()方法都是比较是否相等的方法,那它们有什么区别和联系呢? 首先,==号在比较基本数据类型(指的值类型)时比较的是值,而用==号比较两个对象时比较的是两个对象的地址值: int x = 10; int y = 10; String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(x == y); // 输出true System.out.p…
面试的时候没答上,很受打击,特写在这里. ==是判断两个变量或实例是不是指向同一个内存空间equals是判断两个变量或实例所指向的内存空间的值是不是相同 除了String和封装器,equals()和“==”没什么区别 但String和封装器重写了equals(),所以在这里面,equals()指比较字符串或封装对象对应的原始值是否相等,"=="是比较两个对象是否为同一个对象 ==是判断两个对象是否是同一个对象 equals是进行值的判断 String a = new String(&q…
转载:http://blog.csdn.net/bluesky_usc/article/details/51849125 1值比较 即内容相同,我们就认为是相等的.比如:int i=5:int j =5:此时我们说i和j相等,其实指的是i和j的内容相同. 2引用类型比较 但在Java中,除了值类型,另外还有一种引用类型,而不同的对象,其引用值其实并不相等,即在内存中的不同的地 址单元中.比如我们定义了学生类,分别有两个学生对象实例 : Student stu= new Student();   …
导读:昨夜闲来无事,和贾姑娘聊了聊java基础,然后就说到了这个"=="和equals的问题,我俩都是以前了解过,也常用这个,但是,昨天说到的时候,又乱了,什么比较地址值,什么判断是否同一个对象,基本数据类型啥的,谁都没个准儿,后来写了点代码验证了一番,今儿个写此博客,纪念和好朋友一起探讨学习的经历!PS:我一直知道我这一路走来,受好朋友的恩惠太多了! 一.三组示例代码 1.1,String类(引用类型) String str1="test"; String str…
一.先来说说Java的基本数据类型和引用类型 八大基本数据类型:Byte,short,int,long,double,folat,boolean,char,其中占一个字节的是byte,short和char占两个字节,int,float占四个字节,double和long占8个字节,boolean只有true和false,这八种数据变量中直接存储值 八大基本数据类型对应着各自的封装类型,提供了更多的方法,且不进行初始化时值默认为空(基本数据类型必须初始化) 像String类型属于引用类型,变量中存储…
1.基础知识 (1)String x = "hello"; (2)String x = new String ("hello"); 第1种方式的工作机制是,首先看内存中有没有存放值为"hello"的地址,如果有则将x指向这块内存地址:如果没有则在内存中重新开辟一块地址存放值"hello",并将x指向这块内存地址. String x = "hello"; String y = "hello"…
sleep() 方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其他线程一起竞争cpu的执行时间 wait()是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的机锁,使得其他线程能够访问,可以通过notify,notifyAll方法来唤醒等待的线程…
java中的==和equals的区别? 看上面的代码,输出的结果是: true false true true 1.为什么会有上面的区别呢?==和equals比较的到底是什么呢? 搞清楚两者的区别其实很简单,在thinking in java 中有一句话,需要我们好好体会下:"关系操作符生成的是一个boolean结果,它们计算的是操作数的值之间的关系". 首先我们都知道==就是一个关系操作符,那么==比较的就是操作数值之间是否相等.当操作数值的类型是基本类型的时候,操作的值就是变量存储…
面试官:请问 equals() 和 "==" 有什么区别? 应聘者: equals()方法用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断: "==" 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象. equals()作用…
一.==和equals的区别 1. ==可以用来比较基本类型和引用类型,判断内容和内存地址 2. equals只能用来比较引用类型,它只判断内容.该函数存在于老祖宗类 java.lang.Object java中的数据类型,可分为两类:  1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean    他们之间的比较,应用双等号(==),比较的是他们的值.  2.复合数据类型(类)    当他们用(==)进行比较的时候,比较的…
区别: "==" 比较的是两个引用在内存中指向的是不是同一对象(即同一内存空间),也就是说在内存空间中的存储位置是否一致. 如果两个对象的引用相同时(指向同一对象时),"=="操作符返回true,否则返回flase. 注:如果有对内存分配及变量存储位置(堆.栈.方法区常量池.方法区静态区)感兴趣的可以去看看这篇博客,里面写的很详细.对我还在学基础的人来说帮助很大,理解了很多内容,还有待消化. equals方法是由Object类提供的,可以由子类来进行重写 Objec…
对于Java初学者而言,可能会对这两个比较方法比较模糊,有的人可能会觉得两个的方法使用起来结果是一样的等.如果你有这样的想法,我建议你来看看这边博客,让你充分了解这两个比较的异同,以及他们底层是如何比较的等.阅读这篇文章之前,我希望你是对Integer和String这两个类是有所了解的,否则可以参考一下博客以加深你对这两个类的理解: 1.jdk源码阅读笔记-String 2.jdk源码阅读笔记-Integer 那么,下面我将使用一些例子来引入本篇博客的主题,看看你能做对多少个题吧! public…
有一段时间,== 和 equals 的区别一直困扰着我.因为涉及到Java的内存机制,然而Java的内存机制又是比较抽象的东西,所以对那时候的我来说,实在是很难理解. == 和 equals 最大的区别就是  它们对比的东西不一样,前者对比的是 栈的一个地址.后者对比的是  栈中的值.不知道我这样说对不对,如果不对的话请指教,谢谢. String a = "1";        String b = "1";        String c = new String…
java 的==和equals的区别 java 的==和equals的区别 ==通常表明引用的是同一个东西(引用的地址相同),equals通常表明两个对象的内容相同(值相同) ------------------------------------------------------------------------------------------------------------------------------------- 11111)对于==,如果作用于基本数据类型的变量,则直…
前言 Java中的堆和常量池的区别是什么呢?Object.equals与String.equals的区别呢?下面让我们通过一个小示例让你明白它- 1.基础知识 Java的存储空间:寄存器.栈.堆.静态存储区.常量存储区(常量池).其他存储位置. 此处重点介绍堆和常量存储区: 堆:存储new的对象; 常量池:用来存储final static.String的常量. 2.Object.equals与String.equals的区别 Object.equals(==):比较内存地址: String.eq…
本篇为[Java面试题系列]第三篇,文中如有错误,欢迎指正. 第一篇链接:[Java面试题系列]:Java基础知识常见面试题汇总 第一篇 第二篇链接:[Java面试题系列]:Java基础知识常见面试题汇总 第二篇 按我的个人理解,这个题目本身就问的有点问题,因为这3个关键字之间没啥关系,是相对独立的,我猜想这道题的初衷应该是想了解面试者对Java中final finally finalize的使用方法的掌握情况,只是因为3个关键字比较像,而成了现在网上流传的题目"Java中final final…
在比较两个对象或者数据大小的时候,经常会用到==.compareTo()和equals(),尤其是在接入了Comparable接口后重写compareTo方法等场景,所以我们来理一下这三个的区别. 1.等号——"==":等号是最简单也最容易理解的,如果等号的两边是基本数据类型,比如int,double,那么等号就用来单纯的比较他们的数值大小如果等号两边放的是两个对象,那么就会比较他们在内存当中的地址.例如: String a="abc"; String b=&quo…
ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. Q2.下面的代码片段的输出是什么? Object s1 = new String("Hello"); Object s2 = new String("Hello"); if(s1 == s2) { System.out.println("s1 and s2 are =="); } else if (s1.equals(s…
常见面试题03: 问:==和equals的区别 1)对于基本类型而言,比较的是数值是否相等 对于引用类型而言,比较的是内存地址是否相等 2)equals:比较的是两个对象的内容是否相等…
以下是我收集的Java编程里各种区别,供Java学习爱好者参考,这些区别都是每次Java面试中常考的,大家好好掌握,如有失误请留言指出.想要获取Java详细全套学习资料请到上海尚学堂官网获取. 1.HashMap和Hashtable的区别. HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable. HashMap允许将null作为一个entry的key…
一.“==”与equals的区别: (1)==代表比较双方是否相同: 基本数据类型表示值相等. 引用数据类型表示地址相等,即同一个对象. (2)Object中的equals()方法:是否为同一个对象的引用,即对象的hashCode是否相同. (3)Object继承类中equals()方法:不仅判断是否是同一个对象,还要判断对象的属性值是否相同.…
ref:http://www.cnblogs.com/skywang12345/p/3324958.html 1.==作用: java中的==用来判断两个对象的地址是否相等:当对象是基本数据类型时,可以用来判断值是否相等?这句话有毛病!!!(直接用数值时?) http://www.cnblogs.com/whtblog/p/9029208.html中的part2.2,中的例子两个String也不能用"=="来判断值相等. 2.equals(): Object类中定义的equals()方…
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大家.对于这次跳槽找工作, 我准备了挺长的时间, 其中也收集了很多比较好的笔试面试题, 大都是一些常用的基础, 很多都是由于时间原因没有来得及给出答案, 但是题目大都是比较经典实用的, 现在都放到这里, 希望对正处于找工作的博友有一定的帮助. 第一部分: Java基础(此部分面试题题目来自:http:…
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派…
JAVA部分 什么是反射机制?反射机制应用(Struts中反射机制的应用) 答:运行状态中,对于任意一个类,都可以知道它的所有属性和方法,对于任意一个对象都可以调用它的任意一个方法,这种动态获取信息以及动态调用对象的方法的功能叫做JAVA的反射机制. equals和==的区别?类里面有什么方法要重载的? 答:一般简单数据类型用"=="比较,复杂的数据类型可以用"==",也可以用equals. "=="比较时会比较变量是否为同一对象并且内存地址相同…