多线程

同步锁:

条件:有没有共享数据+有多条语句操作共享数据

锁对象:类名.class

可以直接把方法加锁,也可以加同步代码块:

普通方法;默认自动分配对象 是this,普通资源锁对象任意只要是同一个锁对象就可以

静态方法: 静态资源的锁对象 是类名.class

设计模式:

概述:23种设计模式,代码设计经验的总结,代码的可靠性、程序的重用性

一、单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点

静态方法:static,静态只能调静态

构造方法被私有化,不能被new,只能类名.方法名()

演示:

class Person{

//1、私有化构造方法:不让外界随意new

   private Person(){}

//2、在类的内部,new好一个对象

   static private Person person=new Person();

//3、提供公共的访问方式getPerson,获取person对象

   static public Person getPerson(){

       return person;

}

}

好处:控制外界new的权利,节省内存 节省时间---SSM大量使用

(一)饿汉式--学习工作中使用

  class Student{
    //1,私有化
    private Student () {
    }
    //2、创建一个对象
    static private Student student=new Student();
    //3、对外提供一个公共getX
    static public Student getStudent() {

        return student;
        
    
}
        } 

(二)懒汉式--面试重点(必须手写出来)

1、延迟加载:把加载时间往后放一放

一开始不占用内存,什么时候用什么时候占用内存

2、线程安全:多线程编程中,共享资源student,被多条语句操作,一定会有安全隐患--必须加锁

class Teacher{
    private Teacher () {
        
    }
    private static Teacher teacher;//null 延迟加载

        //保证地址值始终不变
        //4、多线程编程中,共享资源student,被多条语句操作,一定会有安全隐患--必须加锁
        //
    synchronized static public Teacher getTeacher() {//get 则new使用
        if(teacher==null) {
            teacher=new Teacher();
        }
        return teacher;
        
    }
}

注解:

概述:注解用来辅助开发,每个注解都有自己的功能

分类:JDK注解

           元注解

           自定义注解

(一)JDK注解,就5个

  • @Override
  • @Deprecated标记就表名这个方法已经过时了,但我就要用,别提示我过期
  • @SuppressWarnings(“deprecation”)忽略警告
  • @SafeVarargs jdk1.7出现,堆污染,不常用
  • @FunctionnallInterface jdk1.8出现,配合函数式编程拉姆达表达式,不常用

(二)元注解,就5个

  • @Target 指定注解出现的位置:类上、方法上、属性上
  • @Retention 注解的生命周期:源文件中、class文件中、运行中
  • @Inherited 允许子注解继承
  • @Documented 生成javadoc时会包含注解,不常用
  • @Repeatable注解为可重复类型注解,可以在同一个地方多次使用,不常用

1、@Target (ElementType.class)

描述注解的适用范围:

  • ElementType.ANNOTATION_TYPE   注解类型
  • ElementType.METHOD                      方法级
  • ElementType.CONSTRUCTOR          构造方法
  • ElementType.FIELD                           字段或者属性
  • ElementType.LOCAL_VARIABLE       局部变量
  • ElementType.PACKAGE                    包声明
  • ElementType.PARAMETER               方法的参数
  • ElementType.TYPE                            类的元素

多个位置内使用:@Target({ElementType.METHOD,ElementType.TYPE,3,4......})

2、@Retention  RetentionPolicy.class

  • RetentionPolicy.SOURCE        源文件中有效;源文件保留
  • RetentionPolicy.CLASS           class文件中有效:class保留
  • RetentionPolicy.RUNTIME      运行时有效:运行时保留

(三)自定义注解

1、定义注解

@interface 注解名称{

}

2、使用注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值