• 2019年9月16日动手动脑


    一、枚举类型

    (1)题目

    (2)源代码

     1 public class EnumTest {
     2 
     3     public static void main(String[] args) {
     4         Size s=Size.SMALL;
     5         Size t=Size.LARGE;
     6         //s和t引用同一个对象?
     7         System.out.println(s==t);  //false
     8         //是原始数据类型吗?
     9         System.out.println(s.getClass().isPrimitive());//false
    10         //从字符串中转换
    11         Size u=Size.valueOf("SMALL");
    12         System.out.println(s==u);  //true
    13         //列出它的所有值
    14         for(Size value:Size.values()){
    15             System.out.println(value);//
    16         }
    17     }
    18 
    19 }
    20  enum Size{SMALL,MEDIUM,LARGE};
    EnumTest

    (3)运行结果

    (4)分析

      s 和 t 进行==运算输出false 说明s和t所指向的不是同一个地址

      s.getClass().isPrimitive()输出false 说明枚举类型不是原始类型

      s和u进行==运算输出true,说明两者指向的是同一个地址

     (5)结论

      枚举类型不是基本类型,引用比较的是时候比较的是地址而不是存在里面的常量。

    二、同名屏蔽

    (1)题目

    (2)源代码

    public class SameName {
        private int value=1;
        public static void  main(String[] args) {
            int value =2;
            System.out.println(value);
        }
    }
    SameName

    (3)运行结果

    (4)分析

      每个变量都有自己的作用域,出了这个区域的变量就不再有效。

    三、TestDouble

    (1)题目

     (2)源代码

    public class TestDouble {
    
        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));
        }
    }
    TestDouble

    (3)结果

    (4)分析

      浮点型并不是精确的

    四、TestBigDecimal

    (1)题目

     (2)源代码

    import java.math.BigDecimal;
    
    public class TestBigDecimal
    {
        public static void main(String[] args) 
        {
            BigDecimal f1 = new BigDecimal("0.05");
            BigDecimal f2 = BigDecimal.valueOf(0.01);
            BigDecimal f3 = new BigDecimal(0.05);
            System.out.println("下面使用String作为BigDecimal构造器参数的计算结果:");
            System.out.println("0.05 + 0.01 = " + f1.add(f2));
            System.out.println("0.05 - 0.01 = " + f1.subtract(f2));
            System.out.println("0.05 * 0.01 = " + f1.multiply(f2));
            System.out.println("0.05 / 0.01 = " + f1.divide(f2));
            System.out.println("下面使用double作为BigDecimal构造器参数的计算结果:");
            System.out.println("0.05 + 0.01 = " + f3.add(f2));
            System.out.println("0.05 - 0.01 = " + f3.subtract(f2));
            System.out.println("0.05 * 0.01 = " + f3.multiply(f2));
            System.out.println("0.05 / 0.01 = " + f3.divide(f2));
        }
    }
    TestBigDecimal

    (3)运行结果

    (4)分析

     说明使用double作为BigDecimal的构造器的计算结果还是不准确的,用String类型是准确的

    五、输出表达式

    (1)题目

    (2)源代码

    public class SameName {
        
        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");
    
        }
    }
    TestPlus

    (3)结果

     (4)分析

      第一次输出是输出了字符串“X+Y=”后接着连续输出了X和Y的值,即将X和Y变为了字符串。

      而第二次输出则是X和Y的值的和以及字符串的内容。

    (5)结论

      在进行输出时,如果字符串在前,那么在字符串后的内容都会变成字符串。

  • 相关阅读:
    什么是代理
    简易的屏幕适配
    SourceTree 操作简介
    project/target/product的简易区别
    iOS申请真机调试证书-图文详解
    关于UINavigationController的backBarButtonItem定制问题
    pat1008
    pat1005
    pat1019-简单模拟题
    ie6-ie8中不支持opacity透明度的解决方法
  • 原文地址:https://www.cnblogs.com/suanai/p/11587293.html
Copyright © 2020-2023  润新知