`
落叶留步
  • 浏览: 53244 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

java中==等于符的方方面面

 
阅读更多

    在java中,一般都会说基本类型的比较相等用==这个比较符;对于引用类型的比较相等一般用equals方法,自定义的类型需要实现equals方法,如果用==则会比较两个对象的地址是否一样。

    今天有点时间,就写了个测试,记录==到底是怎么样的。以下是demo代码:

 

public class Typea {

	public static void main(String[] args) {
		
		Integer x = 1;
		Integer y = 1;
		System.out.println(x == y);// 1. true
		
		Integer v = 128;
		Integer w = 128;
		System.out.println(v == w);// 2. false
		
		Integer m = 128;
		int n = 128;
		System.out.println(m == n);// 3. true
		
		Integer i = new Integer(1);
		Integer j = new Integer(1);
		System.out.println(i == j);// 4. false
		
		String str1 = "abcgggggggggggggggggggggggggggggedgert";
		String str2 = "abcgggggggggggggggggggggggggggggedgert";
		System.out.println(str1 == str2);// 5. true
		
		String str3 = new String("abcgggggggggggggggggggggggggggggedgert");
		String str4 = new String("abcgggggggggggggggggggggggggggggedgert");
		System.out.println(str3 == str4);// 6. false
	}
	
}

 

 

这个结果有时候相等,有时候又不相等,到底是为什么?总结起来,只有两个引用指向的是同一个对象才会返回true,否则返回false。new的出来的肯定是两个对象,肯定返回false。

 

需要注意的就是:对于直接赋值的时候,Integer有缓存,在[-128,127]之间的数字全部缓存,所以第一个返回true,第二个返回false;String有一个常量池,直接赋值会从常量池找,找不到就创建一个放到常量池,找得到就找得到,所有第五个返回true。

 

 

 

 

 

分享到:
评论

相关推荐

    Java开发手册1.7.0

    Java 开发手册 1.7.0 《Java 开发手册 1.7.0》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,旨在提高 Java ...它涵盖了 Java 语言的方方面面,从编程规约到设计规约,都是 Java 开发者需要了解和掌握的知识点。

    java面试题.docx

    答:Java 中的访问修饰符有四种:public、private、protected、default。 3. Java 中的继承和多态有什么区别? 答:继承是子类继承父类的所有成员变量和成员方法,而多态是指同一个方法可以根据不同参数或对象来...

    Head First Java 中文高清版.pdf

    总的来说,这本书覆盖了Java编程的方方面面,无论你是零基础还是有一定经验的开发者,都能从中受益。通过阅读《Head First Java 中文高清版》,你将能够掌握Java编程的基本技能,为进一步学习更复杂的Java技术打下...

    线程 JAVA java线程 java线程第3版 java线程第2版第3版合集

    Java的线程工具易于使用,并且像Java中的其他东西一样可以在不同的平台之间移植。这是一件好事,因为如果没有线程,那么除了最简单的applet之外,几乎不可能编写出任何程序。如果你想使用Java,就必须学习线程。 ...

    java面试100题,包含java基础等

    本文将对 Java 中的访问修饰符、运算符、垃圾回收机制、自动装箱和自动拆箱、类加载机制、异常层次结构、接口和抽象类、内部类、深拷贝和浅拷贝、String、StringBuilder 和 StringBuffer、集合框架、泛型、反射、...

    java开发实习周记12篇.doc

    "java开发实习周记12篇" java开发实习周记12篇是关于java开发实习的周记文章,共有12篇文章,从实习第一周到...这12篇文章涵盖了java开发的方方面面,从基础语法到高级语法,再到高级应用,都是java开发的必备知识。

    java语言程序设计精品课件

    在进阶主题中,可能会涉及接口、抽象类、内部类和匿名类,这些都是Java中实现多态性和模块化设计的重要工具。另外,课件也可能会介绍Java的泛型,这是一种强大的特性,用于确保集合中元素类型的一致性,减少类型转换...

    2023年java面试题(含答案).docx

    Java 面试题知识点解析 ...Java 面试题涵盖了 Java 语言的方方面面,牵涉到 Java 语言的基础知识、语法规则、编程技巧等。只有当我们具备了扎实的 Java 基础知识和良好的编程技巧,才能更好地应对 Java 面试题。

    2016年计算机二级JAVA考试题及答案.pdf

    - 题目中出现了对Java中"=="操作符和`equals()`方法的考察。`String s1 = new String("howareyou"); String s2 = new String("howareyou"); System.out.println(s1 == s2);` 这里演示了使用"=="比较对象时比较的是...

    java开发手册、java编程和开发

    《java开发手册》由浅入深、全面系统地介绍java编程和开发的方方面面。书中各章提供了大量有针对性的实例,供读者实战演练。本书针对初学和自学读者的特点,按照实际开发流程对java语言的程序设计进行讲解,简明易懂...

    Java教程Word版

    这份教程可能包含了从基础语法、面向对象编程概念到高级特性和实际应用的方方面面,旨在提供一个系统的Java学习路径。 在Java编程的世界里,基础知识至关重要。教程可能会首先介绍Java的历史背景和特点,接着讲解...

    java开发手册

    本书由浅入深、全面系统地介绍Java编程和开发的方方面面。书中各章提供了大量有针对性的实例,供读者实战演练。本书针对初学和自学读者的特点,按照实际开发流程对Java语言的程序设计进行讲解,简明易懂、实用性强。...

    java程序员面试整理3(1).pdf

    访问权限修饰符是 Java 中的一种重要概念,它用于控制类和成员的访问权限。Java 中有四种访问权限修饰符:public、private、protected 和默认权限。 十一、Java 中的 goto 语句 Java 中没有 goto 语句,但可以使用...

    2021年java面试题.pdf

    本资源是 Java 面试题大全,涵盖了 Java 及其相关技术栈的方方面面,包括 MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等。...

    java期末考试题.docx

    综上所述,Java的学习涵盖了从环境配置、基本语法到高级特性的方方面面,这些知识点构成了Java开发的基础,是每个Java程序员必备的技能。在实际编程中,理解并熟练运用这些知识,可以有效地编写和调试程序。

    TCS公司 Java面视资料大全

    总的来说,这份“TCS公司 Java面视资料大全”是针对Java开发者面试的一份综合学习资源,涵盖了从基础知识到高级概念的方方面面,对于希望进入TCS或其他公司从事Java开发工作的人员来说,是一份非常宝贵的参考资料。...

    Java面试题-完整版.pdf

    Java面试题是IT行业中非常重要的一部分,它涵盖了Java语言的方方面面,包括Java基础知识、Java编程、Java框架、Java设计模式等等。今天,我们将对Java面试题-完整版(pdf)进行总结,涵盖了Java面试题的基本要求、分类...

    Java Fundamentals.ppt

    此外,Java支持操作符重载,这意味着某些特殊符号可以对不同类型的数据执行不同的操作。例如,"+" 运算符可以用于整数相加,也可以用于字符串连接。理解这一点对于编写灵活且高效的代码至关重要。 总的来说,Java ...

    java基础思维导图 全套 到多线程 思维导图

    总之,这份“java基础思维导图 全套 到多线程 思维导图”涵盖了Java编程的方方面面,从基本语法到复杂的多线程编程,为学习者提供了系统化的学习资源。通过深入理解和实践这些知识点,你将能够扎实地掌握Java编程,...

Global site tag (gtag.js) - Google Analytics