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()方法执行的结果是等价的。
二、反码 补码 原码
1. 原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:
[1111 1111 , 0111 1111]
即
[-127 , 127]
原码是人脑最容易理解和计算的表示方式.
2. 反码
反码的表示方法是:
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.
3. 补码
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.
三、同名变量的屏蔽原则
public class Testtong {
private static int value = 1;
public static void main(String[] args) {
// TODO Auto-generated method stub
int value = 2;
System.out.println(value);
}
}
四、动手实验(TestDouble.java)
public class TestDouble {
public static void main(String args[]) {
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
}
总结:使用double类型的数值进行计算,其结果是不精确的。
double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。
解决方法,使用BigDecimal类。在构建BigDecimal对象时应使用字符串而不是double数值,否则,仍有可能引发计算精度问题。
五、动手动脑
public class Ex_XY {
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");
}
}
转载于:https://www.cnblogs.com/XiaoPiHaiEr/p/5920149.html
JAVA语法基础作业——动手动脑以及课后实验性问题(一)相关推荐
- JAVA语法基础作业
1.仔细阅读示例: EnumTest.java,运行它,分析运行结果? 答:第一个false说明s和t没有引用同一个对象.第二个false说明s不是原始数据类型.Size.valueOf可以是u得到S ...
- Java语法基础----课后实践作业
1.Enumtest.Java 代码: public class EnumTest {public static void main(String[] args) {Size s=Size.SMALL ...
- 给Java初学者福利——Java语法基础
Java代码基本格式 Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符.格式如下: 修饰符 class 类名 { 程序代码 } 注: 1.Java ...
- 【Java】Java学习笔记(2)——Java面向对象基础作业函数题
本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...
- 【JAVA SE】第二章 Java语法基础、数据类型、基本类型的字面值、基本类型的类型转换和运算规则
第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符命名风格 文章目录 第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符 ...
- JAVA语法基础 动手动脑及课后作业
动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ar ...
- JAVA作业 02 JAVA语法基础
一. 思考问题一:枚举类型 public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Si ...
- 动手动脑及课后实践3
1. 动手动脑1: (一)运行结果: 分析原因:在Java中,内容相同的字串常量("Hello")只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象. 编译器 ...
- 第二次作业动手动脑的解答
第一个动手动脑让我看老师发 的文件,EnumTest.java.猜它 的运行结果. 我猜嘛,s和 t肯定引用的不同对象,老师上课也讲过是吧. falsefalsetrueSMALLMEDIUMLARG ...
最新文章
- python中的中文乱码问题深入分析
- Java 调用http接口(基于OkHttp的Http工具类方法示例)
- python调用Linux下so文件
- LeetCode - 3Sum Closest
- 宣化市大专计算机学校,2018张家口专科大学有哪些 最新大专院校名单
- Opencv图像数据结构剖析
- torch.optim.lr_scheduler:调整学习率
- matlab tabular,LaTeX表格tabular背景色添加技巧
- 如何生成SSH key?
- 工业农业消防自动检测及报警云方案
- C语言:记录在主线程中停止子线程
- Redis(测试连接, 五大数据类型,三种特殊数据类型)
- 全国高校计算机能力挑战赛
- 洛谷P1607 [USACO09FEB]庙会班车Fair Shuttle
- SimpleRNN实现股票预测
- C#调用matlab
- 西施果蔬彩色豆腐与传统豆腐对比调查报告
- 修改jar中包结构,修改jar包包名
- 电路习题解答 第四章 4-9、4-10
- mysql cluster 缩容_分布式常见问题分析及解决方案
热门文章
- linux install nginx
- windows server2012 图形加速,玩游戏不掉帧
- 蓝桥杯 ADV-65 算法提高 格子位置
- [Java] 蓝桥杯ALGO-145 算法训练 4-1打印下述图形
- [Python] L1-003. 个位数统计-PAT团体程序设计天梯赛GPLT
- 1013. 数素数 (20)-PAT乙级真题
- 蓝桥杯 ADV-205算法提高 拿糖果(动态规划)
- JavaWeb初学者session的使用
- Spring Boot与Kotlin使用Spring Data Rest创建HAL风格Restful接口
- 优化Linux的内核参数来提高服务器并发处理能力