JAVA课上课后问题总结(2019.09.20)

Posted 52bb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA课上课后问题总结(2019.09.20)相关的知识,希望对你有一定的参考价值。

一、关于原码,反码,补码。

原码,反码,补码都是计算机存储数字的编码方式,其中计算机内部用补码的形式存取数据。

 

原码

 

原码就是符号位加上真值的绝对值,即首位为符号位(1表示负,0表示正)其后表示其值。如:

   3 的原码 --> 0000 0000 0000 0000 0000 0000 0000 0011
  -3 的原码 --> 1000 0000 0000 0000 0000 0000 0000 0011

反码

 

正数的反码是其本身不变,

负数的反码是在其本身基础上,符号位不变其余各位取反。如:

   3 的原码 --> 0000 0000 0000 0000 0000 0000 0000 0011
  -3 的原码 --> 1000 0000 0000 0000 0000 0000 0000 0011

   3 的反码 --> 0000 0000 0000 0000 0000 0000 0000 0011
  -3 的反码 --> 1111 1111 1111 1111 1111 1111 1111 1100

补码

 

正数的补码是其本身不变,

负数的补码是其反码加1.如:

   3 的原码 --> 0000 0000 0000 0000 0000 0000 0000 0011
  -3 的原码 --> 1000 0000 0000 0000 0000 0000 0000 0011

   3 的反码 --> 0000 0000 0000 0000 0000 0000 0000 0011
  -3 的反码 --> 1111 1111 1111 1111 1111 1111 1111 1100

   10 的补码 --> 0000 0000 0000 0000 0000 0000 0000 1010
  -10 的补码 --> 1111 1111 1111 1111 1111 1111 1111 1101

 

二、动手动脑:实例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 SizeSMALL,MEDIUM,LARGE;

 

运行结果如下:

 技术图片

 

在java中,使用枚举类型可以代替常量,这是由于常量没有命名空间,使用起来不方便,使用枚举可以使代码更具维护性。

从运行结果前两行可以看出,枚举类型不是原始数据类型,因此它是一种引用,而不同值的引用是不同的,“==”直接对比枚举变量的值。

从运行结果第三行可以看出,枚举类型的字符串转换是正确的。

从运行结果后三行可以看出,枚举类型可被视为对象数组,并能进行正常输出。

 

三、动手实验:实例TestDouble.java

 

 

源码:

1 public class TestDouble 
2 
3     public static void main(String args[]) 
4         System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
5         System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
6         System.out.println("4.015 * 100 = " + (4.015 * 100));
7         System.out.println("123.3 / 100 = " + (123.3 / 100));
8     
9 

 

运行结果如下:

技术图片

 

 

 由运行结果可以看出,double类型的运算结果是不精确的,这和double类型数据存储方式有关。

 

四、动手动脑:关于输出

 

源码:

 1 public class Test 
 2 
 3     public static void main(String[] args) 
 4         int X=100;
 5         int Y=200;
 6         System.out.println("X+Y="+X+Y);
 7         System.out.println(X+Y+"=X+Y");
 8     
 9 
10 

运行结果如下:

技术图片

 

 由运行结果可以看出,在输出时,双引号里可视为字符串输出,而加号则用来连接字符串,想要输出X+Y应该加括号。

以上是关于JAVA课上课后问题总结(2019.09.20)的主要内容,如果未能解决你的问题,请参考以下文章

java上课提问记录

上课总结

OO先导课——建议

201971010109 2061-2017《java程序设计》第四周学习感想

软件工程课个人总结

疫情下的在线上课方案:QQ直播+蓝墨云班课