Java教程

Java中 == 的使用

本文主要是介绍Java中 == 的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

==

1.基本数据类型,==判断的是值

        String str1 = "Nev";
		String str2 = "Nev";
		System.out.println(str1 == str2);

结果:

true

2.引用数据类型,==判断的是他们在内存中存放的地址

        String str1 = new String("Nev");
		String str2 = new String("Nev");
		System.out.println(str1 == str2);

结果: 

false

造成这两种情况不同的原因:

字符串池(String Pool)

        String类是我们使用频率非常高的一种对象类型,JVM为了提升性能和减少内存开销,避免字符串的重复创建,其维护了一块特殊的内存空间,即字符串池(String Pool)

机制:当创建一个字符串时,JVM首先会去字符串池中查找是否存在该字符串,若不存在,则在字符串池中创建"Nev"这个对象,若字符串池中已存在,则直接将池中"Nev"这个对象的地址返回

        String str1 = "Nev";
		String str2 = "Nev";
		System.out.println(str1 == str2);

对于基本数据类型str1与str2地址相同,结果为:true

对于引用数据类型,字符串是通过new的方式创建对象,虽然最终他们指向的是字符个对象Nev,但因为new,中间被创建出两个不同的String()对象去指向字符串池中的Nev 

        String str1 = new String("Nev");
		String str2 = new String("Nev");
		System.out.println(str1 == str2);

 对于引用数据类型str1与str2地址不相同,结果为:false

这篇关于Java中 == 的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!