1.
EnumTest.java运行结果:
运行结论:1.s和t引用的是不同对象。2.枚举类型不是原始数据类型。3.枚举类型可以与字符串向转换。4.并且能输出它的所有的值。
2.
原码:最高位表示其正负,‘1’表示负,‘0’表示正。其他的表示一个数绝对值的二进制。
如:0的原码为:0000, -1的原码为:1001, 2的原码为:0010.
反码:当一个正数与一个负数相加时,若用原码会发生错误,如2+(-1)会等于(-3)。因此要引入反码。正数的反码依旧是它的原码,而负数的反码则是将它原码中除了最高位的1之外的所有位的1变成0,0变成1.
如:1的反码为:0001,-2的反码为:1101, 0的反码为:0000.
补码:但反码依然存在问题,当两个负数相加时会发生错误,如(-1)+(-2)为1110+1101=1011,结果为(-4)。因此引入补码。正数的补码依旧是原码,而负数的补码为其反码加1。
如:2的补码为:0010,(-3)的补码为1101, 0的补码为:0000.
java代码:
public class EnumTest {
public static void main(String[] args) {
int a=5;
System.out.println(a);
System.out.println(Integer.toBinaryString(a));
int b=~4;
System.out.println(b);
System.out.println(Integer.toBinaryString(b));
}
}
输出结果:
结论:java采用的为补码。
3.
java具有“同名变量的屏蔽原则”,采取就近原则。
”
package test1;
public class Test {
private static int value=1;
public static void main(String[] args)
{
int value=2;
System.out.println(value);
}
}
输出结果为2.说明遵循就近原则。
4.
输出结果:
原因:
数值在计算时往往需要大于它本当占有的比特数,所以计算完后会舍去后面的几位,因此会造成误差。
5.
原因:
第一次输出时,先输出句子,xy之间所写的加号优先为为字符串连接符,输出时是以此输出x与y的值。第二次输出时,先输出x+y,判断为x与y相加,输出x+y。