动手动脑一
一,枚举的运行结果
二,得到的结论
(1)枚举类型是引用类型,枚举的每一个具体值都引用一个特定对象,引用不同具体值对象地址不同。
(2)从字符串中转换的枚举类型中实例化的对象的的具体值赋给新的枚举类型实例化对象和原枚举类型中实例化的对象的地址相同。
(3)枚举类型中实例化的对象的的具体值不是java的基本数据类型,而是用户自定义的数据类型
动手动脑二:原码,补码,反码
计算机内,定点数有3种表示法:原码、反码和补码。反码是数值存储的一种,但是由于补码更能有效表现数字在计算机中的形式,所以多数计算机一般都不采用反码表示数。
原码:二进制的定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码:正数的补码与其原码相同,负数的补码是在其反码末位加1;
Java是采用补码表示的。
动手动脑三
运行结果
原因:二进制和十进制的转换出现问题,简单来说就是我们给出的数值,在大多数的情况下需要比64bit更多的位数才能
准确表示出来,而double类型的数值只有64bit,后面舍去的位数一定会带来的误差,无法得到数学上精确的结果。
计算机并不能识别除了二进制数据以外的任何数据。无论我们使用何种编程语言,在何种编程环境下工作,都要先
把源程序翻译成二进制的机器码后才能被计算机识别。事实上,浮点数并不适合用于精确计算,而适合进行科学计算。
Float和double型用来表示带有小数点的数,这些数都以科学计数法的形式存储。当一个数如50.534,转换成科学计
数法的形式为5.053e1,它的小数点移动到了一个新的位置(即浮动)可见。
动手动脑四
public class Littletest {
public static void main(String[] args) {
int x=100;
int y=200;
System.out.println("x+y="+x+y);
System.out.println(x+y+"=x+y");
}
}
原因:
System.out.println("X+Y="+X+Y)中的“+”为连接运算符,
System.out.println(X+Y+"=X+Y")中的“+”为加法运算符,即为两个数相加。