Java 后台开发
一些后台开发项目中实际应用的知识
BusyMonkey
这个作者很懒,什么都没留下…
展开
-
LockSupport
Thread.sleep()和LockSupport.park()的区别从功能上来说,Thread.sleep()和LockSupport.park()方法类似,都是阻塞当前线程的执行,且都不会释放当前线程占有的锁资源;Thread.sleep()没法从外部唤醒,只能自己醒过来;LockSupport.park()方法可以被另一个线程调用LockSupport.unpark()方法唤醒...转载 2020-02-09 19:39:05 · 171 阅读 · 0 评论 -
AbstractQueuedSynchronizer总结
目录1、简介2、原理2.1、数据结构2.2、节点对象3、使用3.1、状态变迁3.2、子类需实现的API3.3、同步器中的模板方法4、LockSupport1、简介AbstractQueuedSynchronizer (抽象队列同步器,以下简称 AQS)出现在 JDK 1.5 中,由大师 Doug Lea 所创作。AQS 是很多同步器的基础框架,比如 Re...原创 2020-02-09 19:11:23 · 196 阅读 · 0 评论 -
Synchronized底层原理
1、同步块package com.paddx.test.concurrent;public class SynchronizedDemo { public void method() { synchronized (this) { System.out.println("Method 1 start"); } }}...转载 2020-01-18 14:20:24 · 278 阅读 · 0 评论 -
Java死锁
多线程抢占统一资源容易导致死锁public class DeadLock { public DeadLock deadLock; public synchronized void lockMethod1(String in) { try { System.out.println("lockMethod1 "+in); ...原创 2020-01-09 14:47:32 · 261 阅读 · 0 评论 -
Java 线程
目录1、线程状态1.1、Blocked1.2、Time_waited/Waiting2、主线程和子线程2.1、start和run2.2、主线程结束,子线程继续2.3、主线程等待子线程结束后结束2.4、主线程结束,子线程结束2.5、守护线程3、sleep和wait3.1、sleep3.2、wait4、线程相关方法4.1、join4.2、yi...原创 2019-12-17 13:59:09 · 445 阅读 · 0 评论 -
Java IO原理
目录1、操作系统IO原理2、缓冲区3、Socket IO模型分类4、模型演变 Reactor/Proactor5、select/poll/epoll6、mmap7、IO控制方式7.1、直接程序控制7.2、中断驱动控制7.3、直接存储器控制7.4、通道控制1、操作系统IO原理用户程序进行IO的读写,基本上会用到read&write两大...原创 2019-12-03 09:14:07 · 560 阅读 · 0 评论 -
java Socket网络通信 BIO NIO AIO
目录1、BIO2、NIO3、AIO1、BIO同步阻塞IO,一个线程处理一个连接,发起和处理IO请求都是同步的package com.busy.server;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.So...原创 2018-03-30 16:50:58 · 314 阅读 · 0 评论 -
Java NIO Buffer
目录1、继承关系2、内存管理3、MappedByteBuffer效率比较4、性能分析5、注意1、继承关系2、内存管理MMC:CPU的内存管理单元。 物理内存:即内存条的内存空间。 虚拟内存:计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部...原创 2018-09-12 21:27:36 · 232 阅读 · 0 评论 -
JVM
目录1、内存模型1.1、程序计数器1.2、VM Stack1.3、本地方法栈1.4、堆1.5、方法区1.6、对象内布局2、垃圾回收2.1、回收机制2.2、GC Root2.3、常见GC回收算法2.4、垃圾回收器2.5、JVM命令2.6、元空间2.7、垃圾回收器搭配2.8、JVM参数2.9、何时出发GC1、内存模型...原创 2017-03-01 14:28:39 · 723 阅读 · 0 评论 -
Java 设计模式
目录1、设计模式的分类:2、设计模式的六大原则:3、工厂模式:3.1、简单工厂模式:3.2、工厂模式:3.3、抽象工厂模式:3.3.1、在抽象工厂模式中增加一个工厂:3.3.2、在抽象工厂模式中增加一个产品:4、单例模式4.1、懒加载:4.2、预加载:4.3、静态内部类:4.4、枚举:4.5、双重校验锁:5、命令模式:6、代理模式:...原创 2017-03-01 13:27:24 · 669 阅读 · 0 评论 -
Java 锁
目录1、关于乐观锁和悲观锁:2、关于锁的开销:3、悲观锁的读写:4、乐观锁的读写:5、乐观锁的写修改:6、不可重入锁:7、可重入锁:8、自旋锁:9、排他锁(ReentrantLock)9.1、普通ReentrantLock9.2、带条件的ReenTrantLock10、synchronized10.1、同步方法10.2、代码块对象同步11...原创 2017-03-23 15:47:22 · 493 阅读 · 0 评论 -
Java 泛型类的继承
按照约定,类型参数名称命名为单个大写字母,以便可以在使用普通类或接口名称时能够容易地区分类型参数。以下是常用的类型参数名称列表 -E - 元素,主要由Java集合(Collections)框架使用。K - 键,主要用于表示映射中的键的参数类型。V - 值,主要用于表示映射中的值的参数类型。N - 数字,主要用于表示数字。T - 类型,主要用于表示第一类通用型参数。S - 类型,主要用...原创 2018-06-15 13:39:00 · 1144 阅读 · 1 评论 -
java 多线程框架
目录1、Thread和Runnable:1.1、继承Thread:1.2、实现Runnable接口:1.3、Thread和Runnable闭包创建线程:2、ExecutorService 线程池:2.1、瞬时线程:2.2、定时线程和周期线程:2.3、线程池统一命名:3、ThreadLocal 线程本地变量:3.1、ThreadLocal为什么会内存泄漏...原创 2017-03-04 14:33:22 · 4550 阅读 · 0 评论