zoukankan      html  css  js  c++  java
  • JAVA第三周作业

    一:枚举

    package homework;
    
    public class EnumTest {
    
        public static void main(String[] args) {
            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};

    其对于显示结果为:

    我更改之后:

    //是原始数据类型吗?
    System.out.println(s.getClass().isPrimitive());
    //从字符串中转换
    //Size u=Size.valueOf("SMALL");
    //System.out.println(s==u);  //true

    其显示了System.out.println(s.getClass().isPrimitive());的结果 为 false

    结论:

    枚举类型是引用类型
    枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。
    可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

    二:原码 反码 补码

    原码:二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
    反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
    例如
    {原码10010= 反码11101 (10010,1为符号码,故为负)
    (11101) 二进制= -2 十进制}
    补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
    JAVA采用的是 补码
     
    三:变量的作用域
    同名变量的屏蔽原则:两个或多个同名变量,定义了不同的数值时,在使用时,在使用的区间内,变量的值为距他最近(前面)的定义。
    package homework;
    
    public class dingyi {
        public static String dingyi="ly";
        public static void main(String[] args)
        {
            String dingyi="new lyking";
            System.out.println(dingyi);
        }
    }

    结果为:

    四:数据类型

    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会从低级类型高级类型转换,即取值范围相对较小的数据类型 转换成 取值范围相对较大的数据类型。

    package homework;
    
    public class shuju {
        public static void main(String[] args)
        {
            System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
            System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
            System.out.println("4.015 * 100 = " + (4.015 * 100));
            System.out.println("123.3 / 100 = " + (123.3 / 100));
        }
    }

    其结果为

    结论:

    使用double类型的数值进行计算, 其结果是不精确的。

    计算机只能识别二进制,一切的数据最后都要转换为二进制。例如源程序中的2.4是十进制的,要转换为二进制,但2.4 的二进制不是精确的2.4,只是接近2.4,实际为2.3 999 999 999 999 999,浮点数由两部分组成:指数和尾数,再进行浮点数的二进制与十进制的转换时,浮点数参与了计算,那么转换过程就变的不可预测,并且变得不可逆。

    事实上浮点运算很少是精确的,只要是超过精度能表示的范围就会产生误差。往往产生误差不是 因为数的大小,而是因为数的精度

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

    package homework;
    
    public class differentjia {
        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);其中 + 为连接运算符
      System.out.println(X+Y+"=X+Y");其中 + 为加法运算符,为两个数相加

    若加上括号System.out.println("X+Y="+(X+Y)); 可进行加法运算

  • 相关阅读:
    评论聊聊怎样做一个简单的网站APP-博客网app那种
    vs2019 filesystem問題 #error The <experimental/filesystem> header providing std::experimental::filesystem is deprecated by Microsoft 。。。
    C#面试题整理
    0717的一个错误写法
    颜色相关的算法整理
    C/C++ 获取键盘事件
    网摘-按键精灵屏幕找色原理分析
    数值统计
    平方和与立方和
    求奇数的乘积
  • 原文地址:https://www.cnblogs.com/maplely/p/4858488.html
Copyright © 2011-2022 走看看