动手动脑问题
1.仔细阅读示例****: EnumTest.java,运行它,分析运行结果?
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};
运行结果:false
false
true
SMALL
MEDIUM
LARGE
分析:枚举中的每一项都不是引用的同一地址,而且也不是原始数据类型,可以从字符串中转换,switch语句可以利用枚举来
2.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对
public class Bit {
public static void main(String[] args) {
int num1 = 8; // 正数
int num2 = -8; // 负数
// 按位取反
int complement1 = ~num1;
int complement2 = ~num2;
// 按位与
int andResult = num1 & num2;
// 按位或
int orResult = num1 | num2;
// 按位异或
int xorResult = num1 ^ num2;
// 输出结果
System.out.println("按位取反:");
System.out.println(" ~" + num1 + " = " + complement1);
System.out.println(" ~" + num2 + " = " + complement2);
System.out.println();
System.out.println("按位与:");
System.out.println(num1 + " & " + num2 + " = " + andResult);
System.out.println();
System.out.println("按位或:");
System.out.println(num1 + " | " + num2 + " = " + orResult);
System.out.println();
System.out.println("按位异或:");
System.out.println(num1 + " ^ " + num2 + " = " + xorResult);
}
}
原码:最普通的二进制数字
反码:对源码取反
补码:反码的基础上加上1
java用补码
3.变量作用域
public class Test {
private static int value=1;
public static void main(String[] args) {
int value=2;
System.out.println(value);
}
}
最后输出2,变量作用域的原因
4.代码结果
int X=100;
int Y=200;
System.*out*.println("X+Y="+X+Y);
System.*out*.println(X+Y+"=X+Y");
代码的结果:X+Y=100200
300=X+Y
原因:第一个"X+Y="相当于一开始就为字符串,所以后面那个+是拼接,第二个就是看成整数来看了
标签:num1,int,动脑,9.13,System,课后,println,Size,out From: https://www.cnblogs.com/gyg1222/p/17699268.html