JAVA课后作业01
一.关于枚举的问题
public class EnumTest {
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.MEDIUM;
//s和t引用同一个对象?
System.out.println(s==t); //false
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());//false
//从字符串中转换
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};
1.运行下列代码可得注释后的结果,由此可以看出枚举的每个具体值都引用一个特定的对象,当引用的都为SMALL时,结果为true,则相同的值则引用同一个对象;
2.第二显示表示枚举并不属于八个原始数据类型,是属于引用类型;
3.第三个表示在枚举中可以直接使用“==”和equals()方法直接对比;
二.java中数值进行运算为什么得不到数学上精确
运行以下代码:

得到结果:

可见,double类型在进行运算时并不能达到数学上的精确。原因是我们的计算机是二进制的,浮点数没有办法是用二进制进行精确表示的,CPU在表示浮点数是由两个部分表示的:指数和尾数,这样的表示方法一般都会失去一定的精确度,有些浮点数运算也会产生一定的误差。
所以在Java中的数值运算只能用于科学计算或是工程计算,在大多数的商业计算中,一般所采用java.math.BigDecimale类来进行精确计算。
步骤如下:
1)将double类型转换成string类型
2)将string类型转换成BigDecimal对象
3)使用BigDecimal对象的方法如add等进行加减乘除运算。
三.输出结果显示问题
运行以下代码:
int x=100;
int y=200;
System.out.println("x+y="+x+y);
System.out.println(x+y+"=x+y");
程序结果为:
原因:在Java中,+有时是运算符,有时是连接符
1)当左右两边连接的都是非数字型时,则为连接符。
2)当一边是数值类型,另一边是非数值类型时,则为连接符。
3)当两边都是数值类型时,则为运算符,即相加求和的作用。
JAVA课后作业01的更多相关文章
- JAVA自学作业01
JAVA自学作业01 1.Hello World 程序 class HelloWorld{ public static void main(String args[]){ System.out.pri ...
- java课后作业
课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...
- java课后作业总结
今天的课后作业是做一个查找一段文章中单词出现的概率,统计并 输出出现概率最高的几个单词.拿到题目,老师还是往常一样提醒着我们先分析题目,构建大概的编程思路.程序需要遇到文本文件的输入输出操作,这一直一 ...
- java课后作业-5
作业一:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?“ 程序源代码; public class Lei { /** * @param args */ public static vo ...
- java课后作业-4
一.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. public class suiji { private static final int N = 200; private ...
- java课后作业7
9.页实验 下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 答: d=m;和d=c;引起编译错误: 原因: ...
- java课后作业6
一.运行TestInherits.java 结论:通过super调用基类构造方法,必须是子类构造方法中的第一个语句. 二.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不 ...
- java课后作业5
[问题]随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路: 1.申请一个长度为10的数组 2.计算机随机生成10个数,并赋给数组 3. ...
- 10.18号java课后作业代码
import java.util.*; public class T { public static int a=0; public T() { a++; System.out.println(&qu ...
随机推荐
- 论YUV422(YUYV)与YUV420相互转换
Example 2.13. V4L2_PIX_FMT_YUYV 4 × 4 pixelimage start + 0: Y'00 Cb00 Y'01 Cr00 Y'02 Cb01 Y'03 Cr01 ...
- TCP 粘包问题浅析及其解决方案
最近一直在做中间件相关的东西,所以接触到的各种协议比较多,总的来说有TCP,UDP,HTTP等各种网络传输协议,因此楼主想先从协议最基本的TCP粘包问题搞起,把计算机网络这部分基础夯实一下. TCP协 ...
- 通过IIS操作修改服务器文件没有权限的解决办法
问题描述:通过部署在IIS上的程序去操做文件(比如删除.旋转图片等)时,在本地执行没有问题,但是部署到服务器上提示“没有权限”.解决方法:找到你需要操作的文件的根文件夹,右键点击属性 选择“安全”选项 ...
- 安装配置Xdebug模块详解
1.XDebug安装配置 (1)下载XDebug下载地址:http://www.xdebug.org/必须下载跟机器上安装的php匹配的版本才行.具体下载方法如下:将phpinfo网页的源代码拷贝到h ...
- MFC中使用ATL报错:error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
我在MFC中使用ATL函数A2W的时候报如下的错误: error C4430: missing type specifier - int assumed. Note: C++ does not sup ...
- 柳青(Jean)英文演讲集合
1.Didi Chuxing's Jean Liu on The Future of Cities https://www.youtube.com/watch?v=G9uPGoN0dvQ 2.Did ...
- [Linux] - 网速测试命令
Windows网速测试方法有很多,或者可以直接使用浏览器去一些网站上搜索测试即可. 在Linux中其实更容易,只需要一行命令即可搞定: curl -s https://raw.githubuserco ...
- Linear SVM和LR的区别和联系
首先,SVM和LR(Logistic Regression)都是分类算法.SVM通常有4个核函数,其中一个是线性核,当使用线性核时,SVM就是Linear SVM,其实就是一个线性分类器,而LR也是一 ...
- emacs 集成astyle
https://stackoverflow.com/questions/8115460/emacs-save-excursion-not-restoring-point https://github. ...
- V-rep学习笔记:切削
V-REP allows you to perform cutting simulations. The user can model almost any type of cutting volum ...