23种设计模式(省略…)
单例设计
节约空间,控制资源的使用
确保对象只有一个
饿汉式
创建无参构造,并私有化 防止外部直接访问和调用,进行new对象
创建对象,并私有化 防止过多的使用对象
创建全局访问点 要求按照我们设置的方式进行使用
不管用不用这个类对象,类加载时创建对象
private 类名(){}//私有构造函数
private static 类名 t =new 类名();
public 类名 get类名(){
return t;
}
TIPS:加静态因为,在外部不能创建对象,想要调用方法,需要"类名.",但只有静态资源才能类名.直接使用
懒汉式
与饿汉式基本一样
只是把创建对象的定义变量和new对象分开
加一个if判断条件,注意:存在网络安全
先不给你创建对象,等你调用这个方法时,创建对象
private 类名(){}//私有构造函数
private 类名 t;
synchronize(类名.class){
if(t==null){
t = new 类名();
}
return t;
}
注解
就是一个标签
分为:
JDK自带注解
@Override :用来标识重写方法
元注解
用来描述自定义注解的注解
@Target 注解用在哪里:类上、方法上、属性上等等
@Retention 注解的生命周期:源文件中、字节码文件中、运行中
自定义注解
自定义注解格式:@名字
例:@Test+class+名字{}
@Target(ElementType.TYPE/METHOD/FIELD...) 当详设置多个位置时,需加大括号并中间用逗号连接
例如:{ , }
@Retention(RetentionPolicy.SOURCE/CLASS/RUNTIME) 源文件/字节码文件/运行时
例@Test
class 名字{
里面放属性/变量
普通属性定义: int a(); 可以直接设置默认值,例如:int a() default 0;
特殊属性定义: String value(); 和普通属性一样
}
TIPS: 如果添加了属性,使用时必须赋值,如果设置了默认值,使用时可以不用赋值
描述注解存在的位置: