什么是工具类?工具类如何设计?
把一些完成通用功能的方法分类放到类中中,就叫工具类.需要的时候直接调用工具类.
两种设计
一是用 public static 静态修饰的,直接用工具类名调用方法,
但必须要把工具类的构造器私有化,防止工具类的对象调用静态方法.
二是没有用static静态修饰,使用工具类的对象来调用工具方法,把工具类设计为单例模式
什么是单例设计模式?有哪些实现方式?
单例设计模式,用来规范代码,可以是代码被重复利用.目的:保证应用中某一个类中只有一个实例.
实现方式:
一:饿汉模式(不管以后会不会使用实例化对象,先创建对象先,将构造方法私有化,再暴露公共静态方法返回实例)
public class ArrayUtil {
private ArrayUtil() {
}
private static ArrayUtil instance = new ArrayUtil();
public static ArrayUtil getInstance() {
return instance;
}
}
二: 懒汉模式(先不着急实例化对象,等到需要用的时候再创建)
存在线程安全,不建议使用
public class ArrayUtil {
private static ArrayUtil instance ;
private ArrayUtil() {
}
public static ArrayUtil getInstance() {
if(instance == null){
instance= new ArrayUtil();
}
return instance;
}
}
三:枚举
public enum SingletonEnum {
instance;
private SingletonEnum() {}
public void method(){
}
}
暂时写这么多,其他还没懂
掌握八大基本数据类型的包装类
byte short int long float double char boolean
Byte Short Integer Long Float Double Char Boolean
基本类型和包装类的区别
基本类型是值的传递,不可以为null 包装类是对象,是引用的传递.可以为null
不需要new关键字 需要new关键字来分配内存
值存储在栈 对象在堆中
什么是装箱和拆箱?
装箱:把基本类型数据转成对应的包装类对象。
拆箱:把包装类对象转成对应的基本数据类型。
Integer num3 = Integer.valueOf(17);
int val = num3.intValue();
什么是自动装箱和拆箱
自动装箱:可把一个基本类型变量直接赋给对应的包装类变量。
自动拆箱:可以把包装类对象直接赋给对应的基本数据类型变量。
Integer num3 = 14;
int val = num3;
BigDecimal的加减乘除和保留精度操作
BigDecimal num1 = new BigDecimal("10");
BigDecimal num2 = new BigDecimal("3.1415926");
BigDecimal ret1 = num1.add(num2);
BigDecimal ret2 = num1.subtract(num2);
BigDecimal ret3 = num1.multiply(num2).setScale(2, RoundingMode.HALF_UP);
BigDecimal ret4 = num1.divide(num2, 2 , RoundingMode.HALF_UP);
String对象的创建和数据的存储?画内存图
String类,表示不可变的字符串
1、直接赋一个字面量: String str1 = "ABCD";
2、通过构造器创建: String str2 = new String("ABCD");
String对象的空值:
表示引用为空(null) : String str 1 = null ; 没有初始化,没有分配内存空间.
内容为空字符串 : String str2 = “”; 已经初始化,分配内存空间,不过没有内容
String中常用的方法
"ABCD" ["A","B","C","D"]
- int length() 返回此字符串的字符个数
- char charAt(int index) 返回指定索引位置的字符
- int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引位置
- boolean equals(Object anObject) 比较内容是否相同
- boolean equalsIgnoreCase(String anotherString) 忽略虑大小写,比较内容是否相同
- String toUpperCase() 把当前字符串转换为大写
- String toLowerCase() 把当前字符串转换为小写
- String substring(int beginIndex):从指定位置开始截取字符串
- String substring(int beginIndex, int endIndex):截取指定区域的字符串
- boolean endWith(String suffix)
- boolean startWith(String prefix)
-
- replace(char oldChar, char newChar)`