运行结果:Size s = Size.SMALL;此时,s = SMALL。Size t = Size.LARGE;此时t = LARGE。

System.out.println(s==t)。由于s和t并不引用同一个对象,所以输出false。System.out.println(s.getClass().isPrimitive());用于判断枚举类型当中的各个元素引用的是否是原始数据类型,最后返回false,证明引用的不是原始数据类型,Size u = Size.valueof(“SMALL”)通过字符串的转换使u = SMALL,System.out.println(s==u),此时s = SMALL,u = SMALL,返回true。for(Size value:Size.values())遍历这个枚举类型当中的元素,System.out.println(value)将其输出,并且最后一个输出的为最大值。enum Size{SMALL,MEDIUM,LARGE}为枚举类型引用对象。

结论:枚举类型中的各个元素都不属于基础数据类型,无论这个元素的实际值是否是其他数据类型,我们都认为它不是一种基础数据类型。且枚举类型也可以使用valueof()方法来返回一个值给枚举实例,且在循环中可以不像数组那样用下标进行遍历,并且不仅可以列出枚举类型当中的所有元素,还可以找出它的最大值。

运行结果:输出结果令我十分意外,按照正常人的思维来说,0.05+0.01=0.06即可,在C语言以及C++的学习中,这个结果也不过是0.06000000而已,可是在Java语言当中,以上四个算式的每一个结果都出人意料。

结论:Java语言当中的double和float类型进行计算,都不能得到精确的结果。在查阅相关资料后我了解到,这是由于二进制不能准学的表示十进制的浮点数,由十进制转换为二进制的方法可以知道,如果最后一位不是0或5,长度是无限的。float和double类型主要是为了科学计算和工程计算而设计的,它们执行二进制浮点。

运行结果:System.out.println(“X+Y=”+X+Y)语句输出的结果是“X+Y=100200”,即先将引号内的“X+Y=”原封不动的输出之后,输出了100和200。System.out.println(X+Y+”=X+Y”)语句输出的是“300=X+Y”,

结论:Java中输出时遵循从左至右的规则,且‘+’号运算符在两边都是整形的情况下,会优先对其进行加法运算求和之后再往后运行输出,第一句之所以是100200的结果,就是因为X左边的加号的意义并不是求和运算,而是字符串的衔接,所以编译器从左往右运行时,在“X+Y”+X这里,进行的是字符串拼接,所以到了“X+Y”+X+Y最后一个加号时,由于Y的左边是字符串,所以进行的是字符串的拼接,所以有了“X+Y=100200”的结果。而第二个语句X+Y+”=X+Y”之所以是300=X+Y,就是因为第一个加号运行时,由于两边都是整形,所以优先进行了加法运算,Y之后的加号由于右边是字符串,所以进行了字符串的拼接。我学习到的是,加号运算符当两边都是数字时,一定进行的是加法运算,而当有一边是字符串时,一定进行的是字符串的衔接。

原码补码和反码:

原码:最高位是符号位,0代表整数,1代表复数,非符号位为该数字绝对值的二进制。

补码:正数的补码和原码一致,负数的补码是对原码按位去反加1,符号位不变。

反码:正数的反码和原码一致,负数的反码是对原码按位去反,只是最高位不变。

比如十进制数字5,由于5 = 2^2+2^0,按二进制来算就是101加上符号位,就是4位数字。

原码:0101

反码:0101

补码:0101

比如十进制数字-5

原码:1101

反码:1010

补码:1011

Java语言程序设计课后小结的更多相关文章

  1. JAVA语言程序设计课后习题----第八单元解析(仅供参考)

    1 本题主要考的是方法的克隆,与c++里面的拷贝有点相似,具体看书本p147 import java.util.Objects; public class Square implements Clon ...

  2. JAVA语言程序设计课后习题----第七单元解析(仅供参考)

    1 本题水题,就是想让你理解继承的含义 public class Animaal { public double weight; public void eat(){ } } public class ...

  3. JAVA语言程序设计课后习题----第六单元解析(仅供参考)

    1 本题就是基本函数的用法 import java.util.Scanner; public class Poone { public static void main(String[] args) ...

  4. JAVA语言程序设计课后习题----第五单元解析(仅供参考)

    1 本题是水题,题目要求你求最大值.最小值,建议你用Arrays.sort函数进行排序,最大值.最小值就可以确定了 import java.util.Arrays; import java.util. ...

  5. JAVA语言程序设计课后习题----第四单元解析(仅供参考)

    1 本题水题,主要理解题目的意思即可,访问方法和修改方法可以通过快捷方式alt+insert选中你需要的成员变量即可 public class Person { public String name; ...

  6. JAVA语言程序设计课后习题----第三单元解析(仅供参考)

    1 本题水题,记住要知道输入格式即可 import java.util.Scanner; public class test { public static void main(String[] ar ...

  7. JAVA语言程序设计课后习题----第二单元解析(仅供参考)

    1 注意不同类型转换 import java.util.Scanner; public class Ch02 { public static void main(String[] args) { Sc ...

  8. JAVA语言程序设计课后习题----第一单元解析(仅供参考)

    1 本题是水题,基本的输出语句 public class test { public static void main(String[] args) { // 相邻的两个 "" 要 ...

  9. Java语言程序设计-助教篇

    1. 给第一次上课(软件工程)的老师与助教 现代软件工程讲义 0 课程概述 给学生:看里面的第0个作业要求 2. 助教心得 美国视界(1):第一流的本科课堂该是什么样?(看里面的助教部分) 助教工作看 ...

  10. 《JAVA语言程序设计》上课笔记

    教学目标:1.使学生了解JAVA课程的性质.定位.作用:为什么要学习JAVA?让学生知道如何学好JAVA: 教学内容: 一.        问几个问题 1.             你们到这里来干什么 ...

随机推荐

  1. git 的提交与合并

    1,创建远程仓库   不论是用命令行还是码云之类的都可以 2,git clone url   这是将远程仓库库提交到本地 3, git checkout -b dev   创建dev分支并切换到dev ...

  2. 窗口退出&初始化

    class Test(QtWidgets.QMainWindow, Ui_dlg): def closeEvent(self, e): #to do super().closeEvent(e) def ...

  3. 肖sir ___性能测试____多线程

    一.理论 (一) (1)多线程是Python程序中实现多任务的一种方式(2)线程是程序执行的最小单位. (3)同属一个进程的多个线程共享进程所拥有的全部资源. (二)进程和线程对比 (1)关系对比: ...

  4. oracle 2个数组列,剔除数组重复的数据。

    一.下面这样不规则的,数据如何剔除掉.循环筛选replace替换掉. 序号 正常时间 剔除时间 1    2022-12-19,2022-12-20,2022-12-21,2022-12-22,202 ...

  5. 2022-05-09内部群每日三题-清辉PMP

    1.项目经理面对一个由两个合资企业组成的指导委员会,他们拥有对立的优先级.一个伙伴希望加快进度:而第二个合作伙伴想要高质量,并且愿意接受更长时间的进度.若要解决这个冲突,项目经理应该怎么做? A.将该 ...

  6. dropbear 2019.78 Installing to target......Running build_buildroot failed!

    使能buildroot的环境变量 source envsetup.sh ;rv1126一般选择90make dropbear-dircleanmake dropbear./build.sh rootf ...

  7. nginx热更新流程记录

    已经做过不止一次的nginx热更新了,之前都是按照别人的路子照葫芦画瓢,现在根据我在的项目单独写一个nginx热更新流程备份自用. nginx热升级流程上传新tar到/home/cp命令复制到/usr ...

  8. WPF 入门教程DispatcherTimer计时器

    在 WinForms 中,有一个名为 Timer 的控件,它可以在给定的时间间隔内重复执行一个操作.WPF 也有这种可能性,但我们有DispatcherTimer控件,而不是不可见的控件.它几乎做同样 ...

  9. 自己写的java教程,免费分享

    自己写的一套java教程,主要用于内部培训使用,有需要的可以直接免费下载: http://it.zhenzikj.com/download/java.zip 一共写了3套: java语言基础.网络开发 ...

  10. 》》》Java利用aspose-words将word文档转换成pdf(破解 无水印)

    参考转载:Java利用aspose-words将word文档转换成pdf(破解 无水印) (bbsmax.com) 1.引入 aspose.words 包2.添加解水印 license.xml3.写业 ...