Review
1.静态代码块,实例代码块
Java类的五大成分:成员变量,成员方法,内部类,代码块,构造器
静态的东西只能有一份
代码块分为静态代码块和实例代码块
静态代码块和类一起加载,用于初始化静态资源
实例代码块和实例对象一起加载,用于初始化实例资源
2.final关键字
final修饰的类不能被继承
final修饰的方法不能被重写
final修饰的变量,有且只能赋值1词
final修饰静态变量==常量
关于权限大小
public > protected > 缺省 > private
小结:final修饰的东西就是断子绝孙,final修饰类,就是表示最后一代,不能再有子类了,不能再有子类继承它;
3.关于饿汉单例模式
使用单例的模板,只能创建一个对象;
饿汉单例模式,有且仅能创建一个对象;因此他直接将常量new 对象;通过方法返回
懒汉单例模式,有且仅有一个对象,如果被创建过了返回对象,否则创建对象
特点:构造器藏起来,private修饰;
3.1饿汉单例模式
class testEH{
private static final testEH INSTANCE = new testEH();
private testEH(){
}
static testEH getInstance(){
return INSTANCE;
}
}
3.2懒汉单例模式
class testLH{
private static testLH INSTANCE = null;
private testLH(){}
static testLH getInstance(){
if (INSTANCE==null)
INSTANCE = new testLH();
return INSTANCE;
}
}
关于懒汉单例模式和饿汉有本质的区别;懒汉的实例定义为静态非常量;常量需要初始化赋值
4.线程池回顾
创建线程池的方式
ExecutorService pool = Executor.newCachedThreadPool();
pool.submit(); //里面传Callable和Runnable
其中Callable"受到请回复",可以收到线程任务的返回值,一般用Future来接,Future是Futuretask子类;
Future s1 = s.submit(new Callable<Object>() {
@Override
public Object call() throws Exception {
return null;
}
});
4.1线程池底层的几个参数
5.枚举enum的复习
枚举enum第一行放常量;继承Enum;默认final修饰,因此不能被继承;第一行放的常量就是对象
6.修饰符权限
public > protected > 缺省 > private
public 本包以及其他包都可以访问
protected 只有本包下,其他包的子类可以访问
缺省 只能本包下访问
private 当且仅当本类访问
7.关于Date的复习
Java是高度面向对象的语言,使用Date来代表整个日期类
Date d = new Date()
Date d = new Date(long time) //时间毫秒值构造器
d可以直接打印,就是日期;
d也可以使用getTime()来获取时间毫秒值
Date小结:
是日期对象,可以操作时间毫秒值,可以获取当且对象;构造器两个可以将时间毫秒值传入
日期<------ ------> 时间毫秒值;
8.关于SampleDateformat回顾
用途可以格式化日期对象; sdf.format(); //返回值为String
用途可以将字符串类型日期转化为Date日期对象 sdf.parse(); //返回值为Date
构造器
用的最多的还是String;
也可以用getTime()方法获取时间毫秒值
小结:
字符串–>sdf–>通过parse–>Date–>通过getTime来操作时间毫秒值
|
—> 通过getTime() 操作时间毫秒值
9.关于日历
抽象类,不能直接创建对象;通过getInstance获取对象;单例模式,懒汉
让日历走很多天来用add方法
10.大数据类Decimal
目的:解决浮点数运算精度失真的问题;
大数据类的构造对象
BigDecimal a = BigDecimal.valueOf(Double x);
触发直接使用divide
计算完成转换回去使用doubleValue();
Double a1 = 0.11;
Double a2 = 0.3;
BigDecimal a = new BigDecimal(a1);
BigDecimal a3 = new BigDecimal(a2);
BigDecimal a4 = a.divide(a3);
double v = a4.doubleValue();
11.关于集合转数组
一定使用obj来接,toArray()
Object obj = set.toArray();
12.关于Set内容复习
linkedHashSet
有序不重复无锁印,因为一个练给它穿起来了
treehashset,按照元素升序,不重复无索引
看到tree,想想平衡二叉树
linkedhashset的有序是增加元素的顺序