动手又动脑

一、  首先我分析了程序,发现问题在于==和equals的区别上:equals比较两个对象的内容是否相同,而== 比较两个对象是否是同一对象。第一个false说明s和t没有引用同一个对象。第二个false说明s不是原始数据类型。Size.valueOf可以是u得到SMALL,然后s就和u相同了。然后将Size.values的所有值赋给value,然后列出所有值。

        1:JAVA的基本数据类型有8种:byte(字节)、short(短整型)、int(整数型)、long(长整型)、float(单精度浮点数类型)、double(双精度浮点数类型)、char(字符类型)、boolean(布尔类型)。而枚举类型不是原始数据类型。

        2:它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。

        3:可以使用“==”方法直接比对枚举变量的值。

二、 

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

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

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

    Java语言中的数字是以补码方式存储的。

三、

       简单的来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是无穷多位),而double类型的数值只有64bit后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

四、

       第一行输出X+Y=100200,第二行输出300=X+Y。

        java中的加号有时是连接符,有时是运算符:

       1:当左右两边连接的都是非数字型时,则为连接符。

       2:当一边是数值类型,另一边是非数值类型时,则为连接符。

       3:当两边都是数值类型时,则为运算符,即相加求和的作用。

        第一个是连接符,第二个是运算符。

 

posted on 2018-10-07 22:54  打篮球的Curry  阅读(197)  评论(0编辑  收藏  举报