java
文章平均质量分 87
好好玩_tyrant
还行
展开
-
ThreadLocal解析
文章目录一、java的引用类型1、强引用2、软引用3、弱引用4、虚引用一、java的引用类型java的引用类型有四种:强、软、弱、虚1、强引用我们平常创建的对象基本上都是强引用,也就是new出来的对象,如Object o = new Object();,这个o直接指向堆内存当中创建的Object对象,如下:GC:强引用类型只有在没有引用指向这个对象的时候它才能被回收,否则,即使内存不足,也不会被回收2、软引用SoftReference<Object> sf = new SoftR原创 2022-04-21 10:26:49 · 261 阅读 · 0 评论 -
JUC的简单理解(下)
文章目录1、ForkJoin使用2、JMM(Java内存模型)JMM的八种交互操作(原子性)JMM八种指令的规则3.Volatile3.1、可见性3.2、禁止指令重排(有序性)3.3、原子性4、CASABA问题5、锁5.1、公平锁与非公平锁5.2、可重入锁5.3、怎么排除死锁模拟死锁,死锁的实现排查死锁1、ForkJoin其本质思想就是大任务拆分成小任务,类似分治法ForkJoin 特点:工作窃取原理就是利用双端队列,当某个线程执行完自己的任务后会去窃取其他线程的任务来执行使用步骤:1、创建原创 2022-04-08 21:46:42 · 213 阅读 · 0 评论 -
JUC的简单理解(上)
文章目录1、JUC简介2、使用Lock锁打印ABCABC2.1、Condition是什么2.2、Condition的使用3、Synchronized和Lock锁的区别4、集合类4.1、CopyOnWriteArrayList4.2、ConcurrentHashMap简析5、Callable5.1、Callable为何能创建线程5.2、Callable的使用6、常用的辅助类6.1、CountDownLatch6.2、CyclicBarrier6.3、Semaphore7、阻塞队列(BlockingQueue)原创 2022-04-08 16:45:06 · 415 阅读 · 0 评论 -
final解析,public、protected、default、private作用域解析
文章目录1、final为什么局部内部类和匿名内部类只能访问局部final变量2、public、protected、default、private2.1、作用域2.2、测试1、final最终的修饰类:表示类不可以被继承修饰方法:表示方法不可被子类覆盖,但是可以重载修饰变量:表示变量一旦赋值就不可以更改它的值(1)修饰成员变量修饰类变量(静态变量):只能在声明该类变量时指定初始值或者静态代码块中指定初始值修饰成员变量:可以在声明时、普通代码块中、构造方法里指定初始值(2)修饰局部变量原创 2022-04-06 10:31:06 · 884 阅读 · 0 评论 -
JVM以及垃圾回收算法(GC)
文章目录1、JVM的位置2、jvm体系结构3、类加载器双亲委派机制4、堆4.1、新生代(新生区)、老年区4.2、永久代(元空间)当出现了OOM故障,该如何排错4.3、如何判断一个对象已经死亡引用计数法可达性分析算法4.4、垃圾回收算法1、复制算法2、标记清除算法3、标记整理算法4、分代收集算法总结5、线程暂停、安全点、安全区4.5、垃圾收集器1、垃圾收集器分类2、Serial、Serial Old 串行收集器3、ParNew、Parallel Scavenge、Parallel Old 并行收集器4、CMS原创 2022-04-05 20:19:02 · 208 阅读 · 0 评论 -
java面对对象
文章目录面对对象什么是面对对象?封装、继承、多态封装继承多态面对对象类:一组相关的属性和行为的集合,是一个抽象的概念。对象:该类事物的具体表现形式,具体存在的个体。成员变量:事物的属性成员方法:事物的行为什么是面对对象?面向对象和面向过程相比,其实就是处理问题的两种角度,两种方式。比如洗衣机洗衣服这个过程面向过程:它会将任务拆分为一个个步骤,如:1、打开洗衣机2、把衣服放进去3、放洗衣粉4、清洗衣服5、烘干衣服面向对象:它会把任务拆分为几个不同的对象,每个对象有自己的属性和功能原创 2022-04-05 08:29:18 · 70 阅读 · 0 评论 -
线程池参数该如何配置
1.CPU密集型单核:当我们是单核CPU的时候,不建议使用线程池多核:当我们是多核CPU的时候,理论上应该是 线程数=CPU核数,但实际上,一般会设置为 核数+1,这是因为万一某个线程因为某个未知的错误停止的时候,可以确保有一个“额外”线程可以执行任务,让CPU持续工作2.IO密集型IO密集型与CPU密集型相对,一个完整的请求,CPU执行完后需要进行很多IO操作,也就是IO操作需要大量时间,却不占用CPU资源,所以理论上我们一般保证有多少个IO大型任务(n),线程数就是这个任务数的两倍(2n),但实原创 2022-03-30 17:57:46 · 711 阅读 · 0 评论 -
线程池的解析以及7个参数
文章目录1.线程池的七个参数2.线程池的执行流程3.线程池的属性标识3.1、 核心属性3.2、线程池状态变化4.线程池的execute()方法执行4.1、execute()4.2、addWorker()1.线程池的七个参数1、corePoolSize: 核心线程数2、maximumPoolSize: 最大线程数3、keepAliveTime: 最大空闲时间4、TimeUnit unit: 时间单位5、BlockingQueue workQueue: 阻塞队列6、ThreadFactory th原创 2022-03-30 17:33:32 · 5349 阅读 · 1 评论 -
synchronized锁的是什么?
文章目录1.synchronized是什么2.synchronized锁的是什么1、修饰方法(1)两个普通方法都加锁1.synchronized是什么synchronized是java里的一个关键字,可以用来给对象和方法或者代码块加锁,当它锁定一个方法或者代码块的时候,同一时刻最多只有一条线程执行这段代码synchronized修饰的对象:修饰方法,被修饰的方法被称为同步方法修饰代码块,被修饰的代码块被称为同步代码块2.synchronized锁的是什么未加锁状态下线程执行:// 未加锁原创 2022-03-30 10:20:02 · 4435 阅读 · 0 评论 -
线程的同步机制
文章目录1.什么是线程同步2.线程同步的实现1、同步方法2.同步代码块3.Lock锁4、synchronized与Lock的对比1.什么是线程同步线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作那相对的线程异步处理就不用阻塞当前线程,而是允许后续操作,直至其他线程将处理完成,并回调此线程2.线程同步的实现不安全的例子(买票):// 模拟不安全的情况下买票// 线程不安全,有负数public class U原创 2022-03-28 10:54:35 · 923 阅读 · 0 评论 -
java的反射机制及使用
文章目录1.反射的简介(Reflection)(1)反射的理解(2)反射的优点(3)Class类2.反射的获取(1)Class类的一些常用方法(2)获取Class类的实例的方法(3)获取运行时类的完整结构1、获取类的名字2、获取类的属性3、获取类的方法4、获取类的构造器4、测试3.反射的使用(1)创建对象(2)调用对象的方法(3)操作对象的属性(4)测试4.反射操作注解1.反射的简介(Reflection)(1)反射的理解反射机制允许程序在执行期借助Reflection API取得类内部的任何信息,原创 2022-03-27 19:30:02 · 581 阅读 · 0 评论