![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习笔记
CarSkyDragn
这个作者很懒,什么都没留下…
展开
-
Java学习笔记-并发编程-1.5 线程池核心概述
1.5 线程池核心概述线程池的作用,这是一道简单的初级面试题,可以从几个角度去考虑:管理控制:首先,从管理角度就是为了更好的控制线程,使用线程池来帮助我们去管理线程,使得我们对线程的生命周期、初始化、运行状态、销毁等各个环节有一个把控。系统资源:另外一点,从系统资源的角度考虑,线程池可以控制线程的数量,根据任务的多少去对线程池中的线程个数进行添加或者减少,可以回收空闲状态的线程,减少线程的频繁初始化和销毁,避免不必要的系统开销,节省系统资源,保障稳定性!应用性能:从性能的角度去考虑,线程池可以配合原创 2020-09-22 15:58:20 · 175 阅读 · 0 评论 -
Java学习笔记-并发编程-1.4 J.U.C工具类
1.4 J.U.C工具类CountDownLatchCountDownLatch:用于监听某些初始化操作,并且线程进行阻塞,等初始化执行完毕后,通知主线程继续工作执行。public class UseCountDownLatch { public static void main(String[] args) { // 构造参数表示唤醒线程需要通知的次数 CountDownLatch countDownLatch = new CountDownLatch(2);原创 2020-09-21 09:26:25 · 158 阅读 · 0 评论 -
Java学习笔记-并发编程-1.2线程安全
1.2线程安全线程安全、Synchronized核心概念线程安全线程安全概念:当多个线程访问某一个类(对象或方法)时,这个类始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为“互斥区”或“临界区”。当多个线程访问myThread的run方法时,以排队的方式进行处理(这里排对是按照CPU分配的先后顺序而定的),一个线程想要执行synchronized修饰的方法里的代码,首先是尝试获得锁,如果拿到锁,执行sync原创 2020-09-14 17:39:20 · 142 阅读 · 0 评论 -
Java学习笔记-并发编程-1.3Volatile&原子性、核心概述
1.3Volatile&原子性、核心概述Volatile关键字核心概念与应用Volatile概念:Volatile关键字的主要作用是使变量在多个线程间可见。作用:在多线程间可以进行变量的变更,使得线程间进行数据的共享可见阻止指令重排序,happens-beforepublic class UseVolatile extends Thread { private volatile boolean isRunning = true; private void setRunn原创 2020-09-14 17:30:05 · 152 阅读 · 0 评论 -
Java学习笔记-并发编程-1.1并发容器类
1.1并发容器类同步类容器同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作。复合类操作如:迭代(反复访问元素,遍历完容器中所有的元素)、跳转(根据指定的顺序找到当前元素的下一个元素)、以及条件运算。这些复合操作在多线程并发地修改容器时,可能会表现出意外的行为,最经典的便是ConcurrentModificationException,原因是当容器迭代的过程中,被并发的修改了内容,这是由于早期迭代器设计的时候并没有考虑并发修改的问题。使用同步类容器的时候,如果使用增强for循环或原创 2020-09-14 10:48:25 · 292 阅读 · 0 评论 -
Java学习笔记-反射与注解-2.注解
注解1.1 注解的定义定义: 注解(Annotation)是一种标记性的接口,注解本质上是一个接口,它继承了Annotation接口,注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释1. 2 Java 预置的注解@Deprecated这个注解是用来***标记过时的元素***,想必大家在日常开发中经常碰到。编译器在编译阶段遇到这个注解时会发出提醒警告,告诉开发者正在调用一原创 2020-09-14 10:31:39 · 132 阅读 · 0 评论 -
Java学习笔记-反射与注解-1.反射
反射JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象。1.1 Class类获取Class对象的三种方式方式一: 通过Object类中的getObject()方法Person p = new原创 2020-09-14 10:23:19 · 274 阅读 · 0 评论