一、动手动脑1
s==t输出false说明s和t分别引用了两个不同的枚举实例。s.getClass().isPrimitive():输出false说明枚举类型不是原始数据类型。s==u:输出true。这是因为u是通过Size.valueOf("SMALL")方法得到的,该方法返回与给定字符串名称匹配的枚举实例。for(Size value:Size.values()):输出了枚举的所有实例。
1、枚举实例是唯一的,每个枚举值都是该枚举类的一个实例。2枚举类型不是原始数据类型,而是引用类型。3可以使用valueOf()方法从字符串中获取对应的枚举实例。4可以使用values()方法获取枚举类型的所有实例。
二、动手动脑2
原码:最简单的形式,最高位为符号位,剩余位表示数值。
反码:对于负数,将原码的符号位不变,其他位取反(即0变1,1变0)。
补码:对于负数,补码就是反码加1。
Java中的数采用补码表示
public class BitwiseOperations {
public static void main(String[] args) {
int x = 5;
int y = -5;
// 原码
System.out.println("原码:");
System.out.println("x: " + Integer.toBinaryString(x));
System.out.println("y: " + Integer.toBinaryString(y));
// 反码
System.out.println("\n反码:");
System.out.println("x: " + Integer.toBinaryString(x));
System.out.println("y: " + Integer.toBinaryString(y).substring(1).replaceAll("0", "1").replaceAll("1", "0"));
// 补码
System.out.println("\n补码:");
System.out.println("x: " + Integer.toBinaryString(x));
if (y < 0) {
String binary = Integer.toBinaryString(Math.abs(y));
System.out.println("y: " + binary.substring(1).replaceAll("0", "1").replaceAll("1", "0") + "1");
} else {
System.out.println("y: " + Integer.toBinaryString(y));
}
}
}
三、动手实验1
TestDouble.java输出结果为
1.23456794E9
X+Y=100200
300=X+Y
"X+Y="+X+Y前面为字符串类型,后面的x和y进行简单的合并而不是相加
X+Y+"=X+Y"前面的x+y为加法
四、动手动脑3
输出结果为
X+Y=100200
300=X+Y
在第一个输出语句中,由于字符串连接符的优先级高于变量名,所以先执行了字符串连接,然后再将X和Y的值加到结果上,因此输出了X+Y=100200。
在第二个输出语句中,将X+Y的结果与字符串连接,然后再输出,因此输出了300=X+Y。
五、动手动脑4
public class VariableShadowingExample {
int x = 10; // 实例变量 x
public void methodA() {
int x = 20; // 局部变量 x
System.out.println("Value of x in methodA: " + x); // 输出:20
}
public void methodB() {
System.out.println("Value of x in methodB: " + x); // 输出:10
}
public static void main(String[] args) {
VariableShadowingExample example = new VariableShadowingExample();
example.methodA();
example.methodB();
}
}
六、动手动脑5
byte占8位,short占16位,int占32位,long占64位,float占32位,double占64位。
byte表示-128到127,short表示-32768到32767,int表示-2147483648到2147483647,long表示-9223372036854775808到9223372036854775807,float表示约-3.4e38到3.4e38,double表示约-1.7e308到1.7e308。
浙公网安备 33010602011771号