一、枚举类型

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语法基础作业——动手动脑以及课后实验性问题(一)相关推荐

  1. JAVA语法基础作业

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

  2. Java语法基础----课后实践作业

    1.Enumtest.Java 代码: public class EnumTest {public static void main(String[] args) {Size s=Size.SMALL ...

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

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

  4. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

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

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

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

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

  7. JAVA作业 02 JAVA语法基础

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

  8. 动手动脑及课后实践3

    1.    动手动脑1: (一)运行结果: 分析原因:在Java中,内容相同的字串常量("Hello")只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象. 编译器 ...

  9. 第二次作业动手动脑的解答

    第一个动手动脑让我看老师发 的文件,EnumTest.java.猜它 的运行结果. 我猜嘛,s和 t肯定引用的不同对象,老师上课也讲过是吧. falsefalsetrueSMALLMEDIUMLARG ...

最新文章

  1. python中的中文乱码问题深入分析
  2. Java 调用http接口(基于OkHttp的Http工具类方法示例)
  3. python调用Linux下so文件
  4. LeetCode - 3Sum Closest
  5. 宣化市大专计算机学校,2018张家口专科大学有哪些 最新大专院校名单
  6. Opencv图像数据结构剖析
  7. torch.optim.lr_scheduler:调整学习率
  8. matlab tabular,LaTeX表格tabular背景色添加技巧
  9. 如何生成SSH key?
  10. 工业农业消防自动检测及报警云方案
  11. C语言:记录在主线程中停止子线程
  12. Redis(测试连接, 五大数据类型,三种特殊数据类型)
  13. 全国高校计算机能力挑战赛
  14. 洛谷P1607 [USACO09FEB]庙会班车Fair Shuttle
  15. SimpleRNN实现股票预测
  16. C#调用matlab
  17. 西施果蔬彩色豆腐与传统豆腐对比调查报告
  18. 修改jar中包结构,修改jar包包名
  19. 电路习题解答 第四章 4-9、4-10
  20. mysql cluster 缩容_分布式常见问题分析及解决方案

热门文章

  1. linux install nginx
  2. windows server2012 图形加速,玩游戏不掉帧
  3. 蓝桥杯 ADV-65 算法提高 格子位置
  4. [Java] 蓝桥杯ALGO-145 算法训练 4-1打印下述图形
  5. [Python] L1-003. 个位数统计-PAT团体程序设计天梯赛GPLT
  6. 1013. 数素数 (20)-PAT乙级真题
  7. 蓝桥杯 ADV-205算法提高 拿糖果(动态规划)
  8. JavaWeb初学者session的使用
  9. Spring Boot与Kotlin使用Spring Data Rest创建HAL风格Restful接口
  10. 优化Linux的内核参数来提高服务器并发处理能力