9.13周三(动手动脑的问题以及课后实验性的问题)

发布时间 2023-09-13 12:19:08作者: 许七安gyg

动手动脑问题

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="相当于一开始就为字符串,所以后面那个+是拼接,第二个就是看成整数来看了