03 2020 档案
摘要:1、前言 创建线程有四种方式,分别是实现Runnable接口,继承Thread类,线程池,还有一种就是实现Callable接口。相对于实现Runnable接口和继承Thread类在执行任务后都无法获取执行结果,Callable+Future能够在任务执行结束后得到任务结果。 2、Callable和R
阅读全文
摘要:1、概述 JUC中locks包下常用的类与接口图如下: 图中,Lock和ReadWriteLock是顶层锁的接口,Lock代表实现类是ReentrantLock(可重入锁),ReadWriteLock(读写锁)的代表实现类是ReentrantReadWriteLock。 ReadWriteLock
阅读全文
摘要:1、前言 1.1 Comparable 简介 Comparable 是一个接口。若一个类实现了Comparable接口,就意味着“该类支持排序”。 实现Comparable接口的类支持排序,如果存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过
阅读全文
摘要:1、synchronized关键字最主要的三种使用方式的总结 修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁。 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 。也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何一个实例对象,是类
阅读全文
摘要:static 关键字主要用来修饰方法 ,类 ,成员变量以及代码块。 1、修饰成员变量和成员方法 被 static 修饰的成员属于类,不属于这个类的某个对象,而是被类中所有对象共享,可以并且建议通过类名调用。被static 声明的成员变量属于静态成员变量,静态变量存放在 Java 内存区域的方法区,方
阅读全文
摘要:1、前言 写动态代理的代码涉及了一个非常重要的类 Proxy,通过Proxy的静态方法newProxyInstance才会动态创建代理对象。 2、newProxyInstance方法 public static Object newProxyInstance(ClassLoader loader,
阅读全文