枚举类定义的语法
1>定义枚举常量
2>定义工具方法
创建测试类测试单例设计模式
什么时候使用枚举?
1、使用EnumClass.values(),我们所用的常量可以一一列举出来,即枚举。
2、每一个常量可以附带信息和行为,封装性好方便使用。
什么是工具类?工具类如何设计?
**1>工具类设计全都用public static 修饰**
此时只需要使用工具类名调用工具方法
此时必须把工具类的构造器私有化,防止创建工具类的对象来调用静态方法
**2>如果工具方法没有用static修饰**
此时必须使用工具类的对象去调用工具方法
此时把必须工具类设计为单例模式的
一般出于简单考虑,首选第一种,如jdk中提供的工具java.Utils.Arrays包
什么是单例设计模式?有哪些实现方式?
最简单最常用的设计模式,单例的编写有N种写法
目的:保证在整个应用中某一个类有且只有一个实例(一个类在堆内存中只存在一个对象),单例设计模式的好处在于多个模块共享数据和工作方法
八大基本数据类型的包装类
基本类型的包装类位于java.lang包中,基本数据类型和包装类对应关系:
byte short int long float double char boolean
Byte Short Integer Long Float Double Character Boolean
基本类型和包装类的区别
1>实际开发中,我们会用封装思维把一些数据作为字段封装在类中,并提供方法对这些数据进行操作
2>模拟的int包装类intWrapper既可以表示0,也可以表示null
3>IntWrapper提供了用于对封装的value进行进一步的操作
除了Integer和Character外,其他都是基本数据类型的首字母大写
什么是装箱和拆箱?
//装箱:把基本数据类型 转成 对于包装类的过程就称为把基本数据类型装箱
//拆箱:把包装类对象 转成 对应基本数据类型的过程就称为把包装类对象拆箱
什么是自动装箱和拆箱
//自动装箱:把基本数据类型直接赋值给对于包装类对象的过程
//自动拆箱:把包装类对象直接赋值给对应的基本数据类型
BigDecimal的加减乘除和保留精度操作
加减乘除操作
BigDecimal bignum1 = new BigDecimal("10");
BigDecimal bignum2 = new BigDecimal("5");
BigDecimal bignum3 = null;
//加法
bignum3 = bignum1.add(bignum2);
System.out.println("和 是:" + bignum3);
//减法
bignum3 = bignum1.subtract(bignum2);
System.out.println("差 是:" + bignum3);
//乘法
bignum3 = bignum1.multiply(bignum2);
System.out.println("积 是:" + bignum3);
//除法
bignum3 = bignum1.divide(bignum2);
System.out.println("商 是:" + bignum3);
// 1.保留位数和精度控制
// RoundingMode 舍入模式
// RoundingMode.HALF_UP 四舍五入(常用)
// 2. 除不尽问题
// 报错原因: 10.0 / 3.0 除不尽(3.333333333...333...)