关于枚举类型:

枚举类型是引用类型!

枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。

可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

关于原码反码补码:

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。

反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。+1)

Java同名屏蔽:

java说课模板 java教学案例_反码

输出结果:2

double无法获得精确计算结果:

这个涉及到二进制与十进制的转换问题。×基数的幂,例如我们熟悉的十进制数123.4=1×10²+2×10+3×(10的0次幂)+4×(10的-1次幂);其它进制的也是同理,例如二进制数11.01=1×2+1×(2的0次幂)+0+1×(2的-2次幂)=十进制的3.25。64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。 举个例子来说,比如要用4bit来表示小数3.26,从高到低位依次对应2的1,0,-1,-2次幂,根据最上面的分析,应当在二进制数11.01(对应十进制的3.25)和11.10(对应十进制的3.5)之间选择。 简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

Java中每个数据类型所占的位数,和表示数值的范围:


java中有8种基本数据类型:byte、int、short、long、boolean、char、float、double


对应的类为:Byte、Int、Short、Long、Boolean、Charecter、Float、Double


其中:boolean是逻辑型,char是文本型,byte、short、int、long是整数型,float、double是浮点型


byte:1字节 -128~127


short:2字节 -2^15~2^15-1


int :4字节 -2^31~2^31-1


long:8字节 -2^63~2^63-1


boolean:1字节 true false(java中不能以0或非0代替)


float: 4字节 -3.403E38~3.403E38


double:8字节 -1.798E308~- 4.9E324


char:2字节  ’\u0000‘~' ’\uffff '(16进制的,换算过来即0~65535)


 

 以下代码的输出结果是什么?

 

           int X=100;

           int Y=200;

           System.out.println("X+Y="+X+Y);

           System.out.println(X+Y+"=X+Y");

输出:

X+Y=100200

300=X+Y

java说课模板 java教学案例_java_02

java给+号定义了这样的功能: 可以拼接字符串