动手动脑2020.09.29

1.

仔细阅读示例: EnumTest.java,运行它,分析运行结果?

你能得到什么结论?你掌握了枚举类型的基本用法了吗?

 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);  //
 8         //是原始数据类型吗?
 9         System.out.println(s.getClass().isPrimitive());
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};

 

 第一个输出的是 s==t 的结果,为false,说明t与s不同

第二个输出判断s是否是原始数据类型,为false,说明s不是原始数据类型

然后将字符串转化为枚举数据类型,转化成功,之后输出size的值

 

2.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。

原码:数值位就是真值的绝对值,符号位位“0”时表示正数,符号位为“1”时表示负数,原码又称带符号的绝对值;

反码:正数的反码与原码相同。负数的反码,符号位为 1 ,数值部分按位取反。

补码:正数的的补码和原码相同。负数则是符号位为 1 ,数值部分按位取反后在末位加1.

Java中的书用补码表示。

 

3.以下代码输出结果是什么?为什么会这样?

1 int X=100; int Y=200;
2 
3 System.out.println("X+Y="+X+Y);
4 
5 System.out.println(X+Y+"=X+Y");

 

第一次是字符串+x+y,+是字符串连接符,所以输出100200,

第二次第一个+是算术运算符,所以输出300.

 

posted @ 2020-09-29 22:27  大雄的脑袋  阅读(95)  评论(0编辑  收藏  举报