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 Size{SMALL,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应该加括号。

原文地址:https://www.cnblogs.com/52bb/p/11551350.html

时间: 2024-10-09 06:24:58

JAVA课上课后问题总结(2019.09.20)的相关文章

java课上测试心得

放暑假之前,建民老师就给我们布置了每一天学习两小时的代码,但是自己的不重视,根本就没有达到这个要求,简单学了一点点基本的东西,然后在开学的第一堂课上,连续三个小时的敲代码,让我意识到了自己的问题,一个系统,很多功能都没有实现,真正的感受到了付出与不付出最后的感觉,所以新学期的开始,自己就一定要有自己的规划 . 第一,   在上半年,就听到过建民老师说过一万小时定律,只有真正做一件事情达到一万个小时才能说自己对着一件事情非常的熟悉,而仔细算一算,自己想要在在即大学毕业之前达到一万个小时的目标,每一

java课上知识点整理—语句

1 package text; 2 import java.util.*; 3 public class Text3 { 4 5 public static void main(String[] args) { 6 // TODO 自动生成的方法存根 7 //控制台输入 8 //定义扫描器 9 //实例化 in 输入流 10 Scanner sc=new Scanner(System.in); 11 // System.out.print("请输入:"); 12 //sc.next()

java课上知识点整理—java代码结构、标识符、数据类型、运算符

1 package com.hanqi;//包名,必须在首行,和namespace类似: 2 3 //默认的引用:import java.lang.*; 引用,和use类似 4 5 public class Test1 { //与C#一样 6 7 //java方法名一般第一个字母小写 8 //C#的方法名一般第一个字母大写 9 //同样表达字符串,java——String 10 // c#——string 11 //Main方法:c#应用程序的入口点 12 //main方法:java程序的入口点

2019/09/20 工作总结

1. 数据显示增加分页功能(ng-pagination)时,如果有增加数据或者删除数据的功能.请务必注意两种情况:(1)用户位于最后一页且该页只有一条数据,此时用户删除该条数据,则删除后当前页面应该变为前一页.(2)用户位于任意页面,增加一条数据后应该跳到最后一页.如果增加前最后一页显示满了的话,那么增加后当前页面应该变为之前的最有一页加一页. 2.只要是用户能够输入信息的地方,就要思考该不该加判断和过滤限制,加些什么.只要是按钮,就要思考要加哪些ng-disabled来限制无输入的情况. 3.

20165305 苏振龙《Java程序设计》第四周课上测试补做

第一次测试 第二次测试 第三次测试 上传代码 第四次测试 总结 之前我一直在git bash进行程序设计,但是对于我来说操作起来有点困难,所以我改用了虚拟机,之后之前一直困扰我的问题在虚拟机下就没有了,而且一些·不要能进行的操作例如"tree","jdb调试"等都可以顺利进行.在上一周的课上试验中因为在用git bash运行代码时总是出现不识别的地方,并且也一直没有很好的解决,在以后的学习中我会多留意一些,看是否能找到解决方法. 原文地址:https://www.c

20165337岳源第十周课上补做

课上补做-2 要求:针对下面的Student类,使用Comparator编程完成以下功能: 在测试类StudentTest中新建学生列表,包括自己和学号前后各两名学生,共5名学生,给出运行结果(排序前,排序后) 对这5名同学分别用学号和总成绩进行增序排序,提交两个Comparator的代码 课下提交代码到码云 import java.util.Comparator; public class IDComparator implements Comparator { @Override publi

033.[转] Java 工程师成神之路 | 2019正式版

Java 工程师成神之路 | 2019正式版 原创: Hollis Hollis 2月18日 https://mp.weixin.qq.com/s/hlAn6NPR1w-MAwqghX1FPg http://www.hollischuang.com/ 主要版本 更新时间 备注 v1.0 2015-08-01 首次发布 v1.1 2018-03-12 增加新技术知识.完善知识体系 v2.0 2019-02-19 结构调整,更适合从入门到精通:进一步完善知识体系: 新技术补充: 1 基础篇 01 面

课上练习

package 课上作业; import java.util.InputMismatchException; import java.util.Scanner; public class Test { public static void main(String[] args) { for(int m=0;;) { int judge=0; Scanner in=new Scanner(System.in); int n; System.out.println("请输入帖子的个数:")

20162301 课上测试 泛型类-Bag

20162301 课上测试 泛型类-Bag 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进行单元测试(JUnit),测试要涵盖正常.异常情况.边界情况: 课上提交测试代码和测试运行的结果截图,截图要求全屏截图,包含自己的学号信息,否则无效:测试Bag类的代码中至少包含一个自定义类如Student: 课下完成码云上代码的上传. Bag的UML图: 思路 参考了刘伟康