1.Enumtest.Java

代码:

public class EnumTest {public static void main(String[] args) {Size s=Size.SMALL;Size t=Size.LARGE;//s和t引用同一个对象?

System.out.println(s==t);  ////是原始数据类型吗?

System.out.println(s.getClass().isPrimitive());//从字符串中转换

Size u=Size.valueOf("SMALL");System.out.println(s==u);  //true//列出它的所有值for(Size value:Size.values()){       //遍历

System.out.println(value);}}}enum Size{SMALL,MEDIUM,LARGE};    //枚举类型,定义数据只有三个取值范围

运行结果:

结论:枚举类型是引用类型!枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。

可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

 

2、数值的二进制表示

课后练习:阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。

答:在计算机内,定点数有3种表示法:原码、反码和补码。反码是数值存储的一种,但是由于补码更能有效表现数字在计算机中的形式,所以多数计算机一般都不采用反码表示数。

(一)原码:二进制的定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

(二)2、反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

(三)3、补码:正数的补码与其原码相同,负数的补码是在其反码末位加1;

Java是采用补码表示

 

3、变量的作用域

每个变量都有一个“有效”的区域(称为“作用域”),出了这个区域,变量将不再有效。

请看左边的示例代码,输出结果是什么?

课后练习:Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。

public class Test{private   static int value=9;public static void main(String[]  args){int value =10;System.out.println(value);}}

输出的是10.

4.Java中的类型转换

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

1.Int          32位       取值范围为 -2的31次方到2的31次方减1之间的任意整数(-2147483648~2147483647)
2.Short       16位       取值范围为 -32768~32767之间的任意整数
3.long        64位       取值范围为 -2的63次方到2的63次方减1之间的任意整数         (-9223372036854774808~9223372036854774807)
4.float        32位       取值范围为 3.402823e+38 ~ 1.401298e-45
5.double      64位       取值范围为 1.797693e+308~ 4.9000000e-324

6.char        8位       取值范围为  -128~127
7.byte        8位       取值范围为 -128~127之间的任意整数

结论:不同数据类型进行类型转换时可能会有精度的缺失,因此要注意各种类型的取值范围。

 

5.请运行以下代码(TestDouble.java)

你看到了什么样的输出,意外吗?

结论:

使用double类型的数值进行计算,其结果是不精确的。

6.为什么double类型的数值进行运算得不到“数学上精确”的结果?

  首先得从计算机本身讨论这个问题。计算机并不能识别除了二进制数据以外的任何数据。无论我们使用何种编程语言,在何种编程环境下工作,都要先把源程序翻译成二进制的机器码后才能被计算机识别。事实上,浮点数并不适合用于精确计算,而适合进行科学计算。Float和double型用来表示带有小数点的数,这些数都以科学计数法的形式存储。当一个数如50.534,转换成科学计数法的形式为5.053e1,它的小数点移动到了一个新的位置(即浮动)可见,浮点数本来就是用于科学计算的,用来进行精确计算实在是太不合适了!

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

int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

代码:

public class Plus {public static void main(String[] args){int X=100;int Y=200;System.out.println("X+Y="+X+Y);System.out.println(X+Y+"=X+Y");}}

结果:

 

结论:在System.out.println()中,如果string字符串后面是+和变量,会自动把变量转换成string类型,加号起连接作用,然后把两个字符串连接成一个新的字符串输出;如果先有变量的加减运算再有字符串,那么会从左到右先计算变量的加减,然后再与后面的string结合成一个新的字符串。

转载于:https://www.cnblogs.com/bailanglang/p/5934322.html

Java语法基础----课后实践作业相关推荐

  1. 给Java初学者福利——Java语法基础

    Java代码基本格式 Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符.格式如下: 修饰符 class 类名 { 程序代码 } 注: 1.Java ...

  2. 【JAVA SE】第二章 Java语法基础、数据类型、基本类型的字面值、基本类型的类型转换和运算规则

    第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符命名风格 文章目录 第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符 ...

  3. Java语法基础-1

    1. 关键字 1.1 关键字概述 被Java语言赋予特定含义的单词 1.2 关键字特点 组成关键字的字母全部小写 1.3 关键字注意事项 goto和const作为保留字存在,目前并不使用 类似Note ...

  4. JAVA语法基础 动手动脑及课后作业

    动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ar ...

  5. Java语法基础,课后实践

    2.数值的二进制表示 课后练习:阅读相应教材,或者使用互联网搜索引擎,弄清楚反码.补码跟原码这几个概念,然后编写示例程序,对正数.负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Jav ...

  6. JAVA语法基础作业——动手动脑以及课后实验性问题(一)

    一.枚举类型 public class EnumTest {  public static void main(String[] args) {    Size s=Size.SMALL;    Si ...

  7. JAVA作业 02 JAVA语法基础

    一. 思考问题一:枚举类型 public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Si ...

  8. JAVA语法基础作业

    1.仔细阅读示例: EnumTest.java,运行它,分析运行结果? 答:第一个false说明s和t没有引用同一个对象.第二个false说明s不是原始数据类型.Size.valueOf可以是u得到S ...

  9. Java语法基础-2

    1. 语句 1.1 流程控制语句 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我 ...

最新文章

  1. 一年融4轮,虎赞科技完成红杉领投3000万美元B轮融资
  2. 【原创翻译】文件与文件夹
  3. 创业路上的这点事之 从无到有,从有到......
  4. 有关javabean的说法不正确的是_关于 JavaBean, 下列叙述中不正确的是 ( ) 。_学小易找答案...
  5. [Vue.js] 路由 -- 前端路由
  6. R语言switch语句报错Error: duplicate ‘switch‘ defaults
  7. IdentityServer的基本概念与特性
  8. mysql表关联查询都有什么方式_Mysql数据库多表联合查询有几种方法?
  9. 【办公自动化】国土“三调”用地分类“一键”转南京分类
  10. qpython 3h下载_QPython 3Hv3.0.0 Android
  11. Tracking 1.3 Online Trackers
  12. Excel使用技巧总结
  13. 《windows程序设计(C语言版)》笔记
  14. 华为认证HCNE考试知识点
  15. 生存或毁灭? 国内DIY现状大型调查分析
  16. 计算机专业硕士论文字数要求,计算机专业硕士论文写作格式要求
  17. 流媒体选择Nginx是福还是祸?
  18. OpenCV拷贝与ROI
  19. IOS客户端面试总结
  20. PAT 甲级 1121  Damn Single

热门文章

  1. 计算机无法上网修复工具,网络异常修复工具,连接后无法上网修复方式
  2. android模拟点击webview,的Android的WebView点击模拟
  3. linux运行非法指令,illegal instruction非法指令的解决思路
  4. webmin安装_如何在Ubuntu 18.04上安装Webmin
  5. python冒泡循环示例_Python for循环示例
  6. AI入门,从每个人都应该学的AI第一课开始
  7. asp.net core 官方文档
  8. 简单的三层交换配置路由实验 (思科)
  9. 比较awk python: [文件]web日志信息统计 。 [命令]netstat命令状态统计
  10. VMware服务器虚拟化平台应急方案