仔细阅读示例: EnumTest.java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗?

运行结果:

第一个false是判断s和t是否引用同一个对象,第二个false是判断它是否为类包的数据,第三个ture 是判断s是否等于u,最后是列出它里面的所有元素,从中得出枚举类型是引用类型,枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象,相同的值则引用同一个对象,可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

2.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值,

补码的表示方法是:正数的补码就是其本身负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

反码的表示方法是:正数的反码是其本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

3.Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识

运行上图所示代码,输出结果为2,如果去掉 int value=2;则结果为1,在此实例中,第一个value是成员变量,也是全局变量,第二个value是局部变量,在java中局部变量可以覆盖全局变量,在局部使用某个变量的时候JVM会优先找和当前使用位置近的变量定义.

4.看着这个图,再查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?

整型: byte(8),short(16),int(32), long(64) 浮点型: float(32), double(64),

java自动完成从低级类型向高级类型转换,即取值范围相对较小的数据类型转换成取值范围相对较大的数据类型。

5.运行代码,你看到什么输出结果,意外吗?

为什么double类型的数值进行运算得不到“数学上精确”的结果? 请通过互联网查找资料,或者是阅读相关计算机教材,解决这个问题。

事实上浮点运算很少是精确的,只要是超过精度能表示的范围就会产生误差。往往产生误差不是 因为数的大小,而是因为数的精度。因此,产生的结果接近但不等于想要的结果。尤其在使用 float 和 double 作精确运 算的时候要特别小心。可以考虑采用一些替代方案来实现。如通过使用 long 类型来转换。我们知道在计算机中浮点数的表示方法是由一个整数(即尾数)乘以一个基数(计算机中一般为2)的整次幂得到。(类似于科学计数法,科学记数法基数为10)float的内存结构为:符号位表示正负,1位 指数位,8位 尾数位,32位(符号位1表示负,0表示正)指数是以2为底的,范围是 -128 到 127,如果超过了127,则从-128开始计。 即:127+1=-128尾数都省去了第1位的1,所以在还原时要先在第一位加上1。它可能包含整数和纯小数两部分,也可能只包含其中一部分,视数字大小而定。对于带有整数部分的浮点数,其整数的表示法有两种,当整数大于十进制的16777215时使用的是科学计数法,如果小于或等于则直接采用一般的二进制表示法。科学计数法和小数的表示法是一样的。小数部分则是直接使用科学计数法,形式是X * ( 2 ^ n )。这样就导致浮点类型在计算机的存贮中无法精确表示。

6.

以下代码的输出结果是什么?

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

原因:System.out.println("X+Y="+X+Y) String字符串后面是加和变量,加号起连接作用,然后把两个字符串连接成一个新的字符串输出。

System.out.println(X+Y+"=X+Y")中的“+”为加法运算符,即为两个数相加。

java动手动脑2的更多相关文章

  1. Java动手动脑——多态和继承

    Java动手动脑——继承和多态 实验一 预估输出答案:100  200  201  202 输出结果:100  200  201  202 输出答案分析:100 创建parent类的对象,调用对象的方 ...

  2. java动手动脑和课后实验型问题String类型

    1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请 ...

  3. java 动手动脑7

    ---恢复内容开始--- 一.动手动脑:多层的异常捕获-1 阅读以下代码(CatchWho.java),写出程序运行结果: ArrayIndexOutOfBoundsException/内层try-c ...

  4. java动手动脑和动手实验

    动手动脑一: EnumTest.java: 程序代码: public class EnumTest { public static void main(String[] args) { Size s= ...

  5. java动手动脑和课后实验型问题第四讲

    1.完全"手写代码实现"随机数生成 动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. Modulus=231-1=int.MaxValue Mult ...

  6. Java动手动脑第四讲课堂作业

    动手动脑1 完全“手写代码实现”随机数生成 纯随机数发生器

  7. JAVA动手动脑多态

    动手实验一:下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 先进行自我判断,得出结论后,运行TestCas ...

  8. JAVA动手动脑异常处理

    1>请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. import javax.swing.*; class AboutEx ...

  9. JAVA动手动脑

    1.运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是 ...

  10. java动手动脑和课后实验型问题

    1.以下代码的输出结果是什么?为什么会有这个结果? int[] a = { 5, 7, 20 }; System.out.println("a数组中的元素:"); // 循环输出a ...

随机推荐

  1. 日常英语---二、注册google的api的key

    日常英语---二.注册google的api的key 一.总结 一句话总结:register google api key register_google_api_key 1.请通过电子邮件向我发送有关 ...

  2. v891 安卓平板的root

    看了 油管的视频,标题:Onda V891 - Root Android 4.4.4 (Kit Kat) 2)下载工具,照着做就行了. 3)root完之后,安装 [钛备份](TitaniumBacku ...

  3. (GoRails)链接link_to到当前页current Page 并使用参数 (类ActionController::Parameters)

    https://gorails.com/episodes/rails-link-to-current-page-with-params?autoplay=1 如何链接到当前页并增加,移除,或者修改UR ...

  4. z-index注意事项

    1. z-index只对定位元素有效(如position:absolute!) 2. 被覆盖的元素将无法触发其鼠标相关事件.(个人经验,可能有例外.) 3. 无法通过z-index使父级覆盖子级,如果 ...

  5. chrome 浏览器去掉输入框背景透明色

    chrome浏览器选择记住密码的账号,输入框会自动加上黄色的背景,有些设计输入框是透明背景的,需要去除掉这个黄色的背景: 这个黄色背景是谷歌浏览器默认的样式 user agent stylesheet ...

  6. php调用oracle存储

    //todo 调用oracle 存储$config = //数据库配置文件 里面包含 用户密码和host和端口以及dbname $conn = oci_connect($config['usernam ...

  7. 牛客练习赛24-B-贪心

    链接:https://www.nowcoder.com/acm/contest/157/B来源:牛客网 题目描述 凤凰于飞,翙翙其羽,亦集爰止.                             ...

  8. Alibaba Java Coding Guidelines

    阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的<阿里巴巴Java开发规约>扫描插件!该插件由阿里巴巴P3C项目组研发.P3C是世界知名的反潜机,专门对付水下潜水艇,寓意是扫描出 ...

  9. 八、持久层框架(MyBatis)

    一.基于MyBatis的CRUD 1.首先是配置文件Category.xml修改 一次性修改配置文件Category.xml,提供CRUD对应的sql语句. <?xml version=&quo ...

  10. FJUT16级第一周寒假作业题解G题

    题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P6 涨姿势题1 TimeLimit:1000MS  MemoryLimit:128000K ...