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)结论

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

转载于:https://www.cnblogs.com/suanai/p/11587293.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值