动手动脑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.