枚举类定义的语法

  1. 1>定义枚举常量
  2. 2>定义工具方法
  3. 创建测试类测试单例设计模式

什么时候使用枚举?

  1. 1、使用EnumClass.values(),我们所用的常量可以一一列举出来,即枚举。
  2. 2、每一个常量可以附带信息和行为,封装性好方便使用。

什么是工具类?工具类如何设计?

  1. **1>工具类设计全都用public static 修饰**
  2. 此时只需要使用工具类名调用工具方法
  3. 此时必须把工具类的构造器私有化,防止创建工具类的对象来调用静态方法
  4. **2>如果工具方法没有用static修饰**
  5. 此时必须使用工具类的对象去调用工具方法
  6. 此时把必须工具类设计为单例模式的
  7. 一般出于简单考虑,首选第一种,如jdk中提供的工具java.Utils.Arrays

什么是单例设计模式?有哪些实现方式?

  1. 最简单最常用的设计模式,单例的编写有N种写法
  2. 目的:保证在整个应用中某一个类有且只有一个实例(一个类在堆内存中只存在一个对象),单例设计模式的好处在于多个模块共享数据和工作方法

八大基本数据类型的包装类

  1. 基本类型的包装类位于java.lang包中,基本数据类型和包装类对应关系:
  2. byte short int long float double char boolean
  3. Byte Short Integer Long Float Double Character Boolean

基本类型和包装类的区别

  1. 1>实际开发中,我们会用封装思维把一些数据作为字段封装在类中,并提供方法对这些数据进行操作
  2. 2>模拟的int包装类intWrapper既可以表示0,也可以表示null
  3. 3>IntWrapper提供了用于对封装的value进行进一步的操作
  4. 除了IntegerCharacter外,其他都是基本数据类型的首字母大写

什么是装箱和拆箱?

  1. //装箱:把基本数据类型 转成 对于包装类的过程就称为把基本数据类型装箱
  2. //拆箱:把包装类对象 转成 对应基本数据类型的过程就称为把包装类对象拆箱

什么是自动装箱和拆箱

  1. //自动装箱:把基本数据类型直接赋值给对于包装类对象的过程
  2. //自动拆箱:把包装类对象直接赋值给对应的基本数据类型

BigDecimal的加减乘除和保留精度操作

  1. 加减乘除操作
  2. BigDecimal bignum1 = new BigDecimal("10");
  3. BigDecimal bignum2 = new BigDecimal("5");
  4. BigDecimal bignum3 = null;
  5. //加法
  6. bignum3 = bignum1.add(bignum2);
  7. System.out.println("和 是:" + bignum3);
  8. //减法
  9. bignum3 = bignum1.subtract(bignum2);
  10. System.out.println("差 是:" + bignum3);
  11. //乘法
  12. bignum3 = bignum1.multiply(bignum2);
  13. System.out.println("积 是:" + bignum3);
  14. //除法
  15. bignum3 = bignum1.divide(bignum2);
  16. System.out.println("商 是:" + bignum3);
  17. // 1.保留位数和精度控制
  18. // RoundingMode 舍入模式
  19. // RoundingMode.HALF_UP 四舍五入(常用)
  20. // 2. 除不尽问题
  21. // 报错原因: 10.0 / 3.0 除不尽(3.333333333...333...)