args在java中什么意思,switch在java中什么意思
什么是关系运算符“==”比较?下面这句话摘自《Java编程思想》这本书:‘关系运算符生成一个布尔结果,它们计算操作数的值之间的关系’。
这句话看似简单,但仍需仔细理解。简单来说就是用==来比较数值是否相等。
下面先看几个例子:
公共类Main {
/**
* @param args
*/
公共静态void main(String[] args) {
//TODO自动生成的方法存根
int n=3;
int m=3;
system . out . println(n==m);
String str=新字符串( hello );
String str1=新字符串( hello );
String str2=新字符串( hello );
system . out . println(str 1==str 2);
str1=str
str2=str
system . out . println(str 1==str 2);
}
}输出结果为:
真实的
错误的
Truen==m结果为真,很好理解。变量n和变量m的存储值都是3,必须相等。为什么str1和str2的结果不一样?要理解这一点,我们只需要了解基本数据类型变量和非基本数据类型变量的区别。
对于这八种基本数据类型的变量,变量是直接存储“值”的,所以用关系运算符==进行比较时,比较的就是“值”本身。注意浮点型和整型都是有符号的,char型是无符号的(char型的范围是0 ~ 2 ^ 16-1)。
也就是说比如:
int n=3;
int m=3;变量N和变量M都直接用值‘3’存储,所以与==比较时结果为真。
对于不是基本数据类型的变量,在一些书中称为引用类型。例如,上面的str1是一个引用类型变量,引用类型变量存储的不是“值”本身,而是其关联对象在内存中的地址。
比如下面这行代码:
字符串str1这句话声明了一个引用类型的变量,这个变量此时不与任何对象相关联。
而通过new String("hello")来产生一个对象(也称作为类String的一个实例),并将这个对象和str1进行绑定:
str1=新字符串( hello );然后str1指向一个对象(str1在很多地方也被称为对一个对象的引用)。此时,变量str1存储的是它所指向的对象的内存地址,而不是“值”本身,也就是不直接存储的字符串‘hello’。这里的引用非常类似于C/C中的指针。
因此,当第一次使用==比较str1和str2时,结果为假。因此,它们指向不同的对象,这意味着它们的实际内存地址是不同的。
第二次比较,str1和str2都指向str所指向的对象,所以结果无疑是真的。这就是Java中==的具体含义。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。