zoukankan      html  css  js  c++  java
  • 动手动脑

    动手动脑1

    public class EnumTest {

     

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    Size s=Size.SMALL;

    Size t=Size.LARGE;

    //s和t引用同一个对象?

    System.out.println(s= =t);  //

    //是原始数据类型吗?

    System.out.println(s.getClass().isPrimitive());

    //从字符串中转换

    Size u=Size.valueOf("SMALL");

    System.out.println(s= =u);  //true

    //列出它的所有值

    for(Size value:Size.values()){

    System.out.println(value);

    }

    }

     

    }

    enum Size{SMALL,MEDIUM,LARGE};

    运行结果分别为

    false

    false

    true

    SMALL

    MEDIUM

    LARGE

    第一个输出是错的,s和t不是引用同一个对象

    第二个输出是错的,Size类型不是原始数据类型,原始数据类型有byte(字节)、short(短整型)、int(整数型)、long(长整型)、float(单精度浮点数类型)、double(双精度浮点数类型)、char(字符类型)、boolean(布尔类型)。

    第三个输出是对的,从字符串中转换后是一个方法,输出后就对了

    第四个输出就是运用了value这个方法进行输出。

    结论:枚举类型是引用类型,枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。原始数据类型有byte(字节)、short(短整型)、int(整数型)、long(长整型)、float(单精度浮点数类型)、double(双精度浮点数类型)、char(字符类型)、boolean(布尔类型)。

    动手动脑2

    原码, 反码, 补码是计算机存储一个具体数字的编码方式。

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

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

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

    Java中运用补码

    动手动脑3

    输出结果是2,明显第一个value的作用范围是全局,第二个value的作用范围是main方法,而输出的value是在main中输出,所以,在定义变量的时候,一定要注意变量所在的区域。

    动手动脑4

    byte 数据类型是8位、有符号的,以二进制补码表示的整数;
    最小值是 -128(-2^7);
    最大值是 127(2^7-1);

    short 数据类型是 16 位、有符号的以二进制补码表示的整数
    最小值是 -32768(-2^15);
    最大值是 32767(2^15 - 1);

    int 数据类型是32位、有符号的以二进制补码表示的整数;
    最小值是 -2,147,483,648(-2^31);
    最大值是 2,147,483,647(2^31 - 1);

    long 数据类型是 64 位、有符号的以二进制补码表示的整数;
    最小值是 -9,223,372,036,854,775,808(-2^63);
    最大值是 9,223,372,036,854,775,807(2^63 -1);

    float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
    float 在储存大型浮点数组的时候可节省内存空间;
    默认值是 0.0f;
    浮点数不能用来表示精确的值,如货币;
    例子:float f1 = 234.5f。

    double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
    浮点数的默认类型为double类型;
    double类型同样不能表示精确的值,如货币;
    默认值是 0.0d;
    例子:double d1 = 123.4。

    char类型是一个单一的 16 位 Unicode 字符;
    最小值是 u0000(即为0);
    最大值是 uffff(即为65,535);
    char 数据类型可以储存任何字符;
    例子:char letter = ‘A’;。

    结论:由整型向浮点型转换会有精度损失,因为浮点型不能表示精确的值

    动手动脑5

    结论:使用double类型的数值计算结果是不准确的,double是浮点型,

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

    动手动脑6  

    结果证明+X+Y意为分别输出X和Y,如果写成+(X+Y),就不会出现第一种情况   

  • 相关阅读:
    看代码所学1
    金额,重量,成绩不使用浮点数来表示,而使用整形
    安全风控的CAP原理和BASE思想
    Git操作
    项目上线规范以及一些词汇
    水滴筹面试
    Sping框架中的注解详解
    Restful技术
    @crossorigin注解跨域
    解决Ubuntu14.04下vi编辑器不能使用方向键和退格键问题
  • 原文地址:https://www.cnblogs.com/990906lhc/p/9753716.html
Copyright © 2011-2022 走看看