一.关于枚举的问题

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的更多相关文章

  1. JAVA自学作业01

    JAVA自学作业01 1.Hello World 程序 class HelloWorld{ public static void main(String args[]){ System.out.pri ...

  2. java课后作业

    课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...

  3. java课后作业总结

    今天的课后作业是做一个查找一段文章中单词出现的概率,统计并 输出出现概率最高的几个单词.拿到题目,老师还是往常一样提醒着我们先分析题目,构建大概的编程思路.程序需要遇到文本文件的输入输出操作,这一直一 ...

  4. java课后作业-5

    作业一:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?“ 程序源代码; public class Lei { /** * @param args */ public static vo ...

  5. java课后作业-4

    一.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. public class suiji { private static final int N = 200; private ...

  6. java课后作业7

    9.页实验 下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 答: d=m;和d=c;引起编译错误: 原因: ...

  7. java课后作业6

    一.运行TestInherits.java 结论:通过super调用基类构造方法,必须是子类构造方法中的第一个语句. 二.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不 ...

  8. java课后作业5

    [问题]随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路: 1.申请一个长度为10的数组 2.计算机随机生成10个数,并赋给数组 3. ...

  9. 10.18号java课后作业代码

    import java.util.*; public class T { public static int a=0; public T() { a++; System.out.println(&qu ...

随机推荐

  1. Mongo 常用操作

    1.查询 [基本形式]db.col.find().pretty():pretty() 方法以格式化的方式来显示所有文档. [获取记录条数]:db.users.find().count(); [读取指定 ...

  2. ionic 视图滚动到顶部

    问题描述 进入页面, 滚动到底部 点击一个连接, 当前视图内容更新了 内容滚动到了上次的位置导致底部的内容没显示 需要控制自动回滚到顶部 <ion-content delegate-handle ...

  3. CSAPP Tiny web server源代码分析及搭建执行

    1. Web基础 webclient和server之间的交互使用的是一个基于文本的应用级协议HTTP(超文本传输协议). 一个webclient(即浏览器)打开一个到server的因特网连接,而且请求 ...

  4. 自然语言处理中的N-Gram模型

    N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的概念,通常在NLP中,人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理.另外一方面,N-Gram的另外一个作用是 ...

  5. php获取客户端IP地址的方法

    参考:https://www.cnblogs.com/rendd/p/6183094.html <?php function getip() { //strcasecmp 比较两个字符,不区分大 ...

  6. Android开发导出apk报错:Unable to build: the file dx.jar was not loaded from the SDK folder

    问题背景 此问题一般出现在,同时使用了Eclipse和Android Studio,eclipse是不会去下载最新的Android的相关tools,但是studio有时候会自动更新最新的build-t ...

  7. 很烦人的maven和gradle的jar缓存

    1. 起因 a. 最近在学习大数据相关东西,自然就少不免去操作linux系统,更别说不敲命令 b. 然而那个配置软件时,很经常使用ln -s为一个软件目录(带着版本或者其他信息的长命名)创建别名(软连 ...

  8. go 源码学习之---Tail 源码分析

    已经有两个月没有写博客了,也有好几个月没有看go相关的内容了,由于工作原因最近在做java以及大数据相关的内容,导致最近工作较忙,博客停止了更新,正好想捡起之前go的东西,所以找了一个源码学习 这个也 ...

  9. Gorm使用详解

    1.什么是Gorm go语言编写的orm框架 特点: 1)全功能ORM 2)关联(包含一个,包含多个,属于,多对多) 3)Callbacks(创建/保存/更新/删除/查找前后回调) 4)预加载 5)事 ...

  10. @Scope用法

    http://www.cnblogs.com/lonecloud/p/5937513.htmlhttp://www.cnblogs.com/lonecloud/p/5937513.htmlhttp:/ ...