自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java 中的阻塞队列

Java 中的阻塞队列 ArrayBlockingQueue:由数组结构组成的有界阻塞队列 LinkedBlockingQueue:由链表结构组成的有界阻塞队列 PriorityBlockingQueue:支持优先级排序的无界阻塞队列 DelayQueue:使用优先级队列实现的无界阻塞队列 SynchronousQueue:不存储元素的阻塞队列 LinkedTransferQueue:由链表结构...

2019-09-30 21:11:07 201

原创 Java 线程池

Java 线程池 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务。如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。 线程池的主要特点为: 线程复用 控制最大并发数 管理线程 线程复用 每一个 Thread 的类都有一个 start 方法。 当调用 start 启动线程时 Java 虚拟机会调用该类...

2019-09-30 20:54:38 199

原创 线程基本方法

线程基本方法 线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等。 线程等待 wait 调用该方法的线程进入 WAITING 状态,只有等待另外线程的通知或被中断才会返回,需要注意的是调用 wait 方法后,会释放对象的锁。因此,wait 方法一般用在同步方法或同步代码块中。 线程睡眠 sleep sleep 导致当前线程休眠,与 wait 方法...

2019-09-30 20:36:21 182

原创 终止线程的 4 种方式

终止线程的 4 种方式 正常运行结束 程序运行结束,线程自动结束。 使用退出标志退出线程 一般 run 方法执行完,线程就会正常结束。然而,常常有些线程是服务线程。它们需要长时间的运行,只有在外部某些条件满足的情况下,才能关闭这些线程。 可以使用一个变量来控制循环,最直接的方法就是设一个 boolean 类型的标志,并通过设置这个标志为 true或 false 来控制 while 循环是否退出。 ...

2019-09-30 20:16:46 449

原创 Java 线程生命周期

Java 线程生命周期 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。 在线程的生命周期中,它要经过新建 (New)、就绪 (Runnable)、运行 (Running)、阻塞 (Blocked) 和死亡 (Dead) 5 种状态。 当线程启动以后,它不可能一直占用 CPU 独自运行,所以 CPU 需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间切换 ...

2019-09-30 20:00:37 230

原创 Java 中的 jar 包和 war 包

Java 中的 jar 包和 war 包 jar 包 简单地说,JAR(Java Archive)是一种包文件格式。JAR 文件具有 .jar 扩展名,可以包含库、资源和元数据文件。 本质上,它是一个压缩文件,包含压缩版本的.class文件和编译后的Java库和应用程序的资源。 例如,下面是一个简单的 JAR 文件结构: META-INF/ MANIFEST.MF com/ baeldung...

2019-09-30 18:50:42 217

原创 Java 中的四大内部类

Java 中的四大内部类 内部类简单说就是定义在另一个类中的类,内部类具有一下特点: 内部类方法可以访问该类定义所在作用域中的数据,包括私有数据。 内部类可以对同一包下的其它类隐藏 定义回调函数而又不想编写太多代码时使用匿名内部类比较便捷 Java 内部类可以分为四种: 普通内部类 局部内部类 匿名内部类 静态内部类 普通内部类 普通类相比内部类具有访问拥有特权,它可以访问外围类私有成员,...

2019-09-30 18:36:02 223

原创 Java 泛型中的通配符

Java 泛型中的通配符 T、E、K、V、? Java 泛型(generics)是 JDK 5 中引入的一个新特性。泛型提供了编译时类型安全检测机制,允许开发者在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 泛型可以用在类,方法,接口上。 泛型带来的好处 在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的 “任意化”。“任意化” 带来...

2019-09-30 18:21:06 244

原创 Java 中的各种锁

Java 中的各种锁 Java 中设计了很多种锁,大致如下: 公平锁 / 非公平锁 可重入锁 / 不可重入锁 独享锁 / 共享锁 互斥锁 / 读写锁 乐观锁 / 悲观锁 分段锁 偏向锁 / 轻量级锁 / 重量级锁 自旋锁 注意: 这些分类有的指锁的状态,有的指锁的特性,有的指锁的设计… 下面对每个锁的名词进行相应的解释: 公平锁 / 非公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁。 非公...

2019-09-30 17:10:17 216

原创 Java 类的加载方式

类的加载方式 类的加载方式 隐式加载 显式加载 隐式加载有几种情况: 首次通过 new 创建一个类的实例 首次调用类的静态成员 首次加载一个类,会先加载它的父类 JVM 启动时,会自动加载定义了 main 方法的类 显式加载有两种方式: 通过 ClassLoader.loadClass 通过 Class.forName 区别 隐式加载是在首次使用时才加载类,显式加载是先提前加载类再使用...

2019-09-30 09:25:30 247

原创 Java 中类加载的时机

Java 中类加载的时机 类加载过程分为加载、链接、初始化三个阶段,从而实现对某个类进行初始化。 在加载阶段,Java 虚拟机通过查找字节流(*.class 文件),并且根据字节流创建 java.lang.Class 对象。在这个过程中,JVM 将类的字节码文件中的二进制数据读入内存,存放在方法区内。然后在堆中创建 java.lang.Class 对象,用来封装类在方法区的数据结构。 类加载阶段...

2019-09-29 20:48:45 217

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除