动手动脑
作者:互联网
1.动脑动手
枚举类型是引用类型!
枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。 可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。
==:
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
1、比较的是操作符两端的操作数是否是同一个对象。
2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。
3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,如:
int a=10 与 long b=10L 与 double c=10.0都是相同的(为true),因为他们都指向地址为10的堆。
equals:
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。
2.动脑动手:
Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。
对于同名变量,若变量是在局部内定义并使用,那么将屏蔽全局变量,而使用局部变量的值。
若变量是在全局定义并使用,那么将屏蔽局部变量,而使用全局变量的值。
类变量可以在局部里用类.变量名引用。
3.动手动脑
char 8位二进制数范围是-2的7次方到2的7次方-1,byte 8位带符号整数-128到127之间的任意整数,short 16位无符号整数-32768到32767之间的任意整数,int 32位带符号整数-2的31次方到2的31次方-1之间的任意整数,long 64位带符号整数-2的63次方到2的63次方-1之间的任意整数,float 32位单精度浮点数,double 64位双精度浮点数。
结论是:Java会完成低级类型向高级类型转换,即取值范围相对较小的数据类型转换成取值范围相对较大的数据类型。
原因:浮点型数字运算时产生误差是由于数的精度。
4.动手动脑
输出结果:
原因:第一个中的+为连接符,而第二个中为运算符。
标签:变量,对象,动脑,equals,整数,动手,次方 来源: https://www.cnblogs.com/JIANGzihao0222/p/16695950.html