- 博客(7)
- 收藏
- 关注
原创 多线程简介
多线程基础多线程基础一、基本概念1.1 程序、进程和线程1.2 启动线程的4种方法1.3 sleep、yield和join二、并发编程三大特性2.1 可见性可见性的保障2.2 有序性有序性的保障2.3 原子性原子性的保障三、CAS机制什么是CAS操作ABA问题四、AQS 多线程基础 一、基本概念 1.1 程序、进程和线程 程序:一个可执行文件,如windows中exe文件 进程:程序的一次动态执行过程,是操作系统分配资源的基本单位 线程:线程是进程中的一个单一的执行路径,是CPU调度的基本单位
2021-12-17 20:09:39
248
原创 网络IO模型简介
网络IO模型一、基础知识点1、同步、异步、阻塞、非阻塞2、TCP连接2.1 建立连接3次握手2.2 断开连接4次挥手二、网络IO发展过程1、BIO(Blocking IO)1.1 客户端过多2、NIO2.1 NIO的弊端3、多路复用器3.1 SELECT 和 POLL模式3.2 EPOLL模式4、异步IO 一、基础知识点 1、同步、异步、阻塞、非阻塞 提供一种从网络IO角度的理解。 同步:由程序自己去完成实际的IO。在linux系统中的网络IO,最终读写数据都是通过程序自己通过系统调用read和writ
2021-12-13 21:23:14
1934
原创 Linux中的文件IO以及JDK中的NIO模型简介
一、IO方式 1、中断方式 1)当某个进程要进行IO操作时,CPU会将该线程挂起,向相应的IO设备控制器发一条IO命令,然后CPU返回继续执行自己原来的任务。 2)设备控制器收到命令,启动指定的IO设备。此时CPU和IO设备并行工作。 3)以读数据为例,IO设备读完数据之后,设备控制器会向CPU发送中断信号,CPU检查输入过程中是否出错。若没有出错,CPU执行中断处理程序, 在中断处理中,将数据写入内存。 2、DMA方式 1)当CPU要读数据的时候,向磁盘控制器发送一条读命令,同时将内存起始地址以及磁盘
2021-12-13 16:42:13
1068
原创 JVM类加载机制简介
类加载类加载1、加载2、验证3、准备4、解析5、初始化6、类加载小结7、类加载器8、双亲委派机制9、双亲委派机制源码 类加载 一个类从被加载到虚拟机内存开始,到卸载出内存,它会经历加载、连接(验证,准备,解析)、初始化、使用和卸载这5个阶段。前3个阶段又被统称为类加载。 1、加载 加载是整个类加载过程中的第一个阶段。在加载阶段,JVM需要完成以下3件事情: 通过一个类的全限定名来获取定义此类的二进制字节流; 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构; 在内存中生成一个代表这个类
2021-12-04 16:58:58
793
原创 JVM垃圾回收机制简介
垃圾回收一、如何判断对象是垃圾1.1 引用计数法1.2 可达性分析算法二、垃圾回收算法2.1 标记清除算法2.2 标记整理算法2.3 复制算法三、分代垃圾回收3.1 回收流程四、垃圾回收器4.1 串行回收器4.1.1 简介4.1.2 工作方式4.2 吞吐量优先回收器4.3 响应时间优先回收器4.3.1 定义4.3.2 CMS和PS的区别4.3.3 工作流程4.3.4 相关参数4.4 G14.4.1 定义4.4.2 工作流程1)Young Collection2)Young Collection + Conc
2021-12-03 23:44:44
793
4
原创 字符串常量池StringTable简介
StringTable一、StringTable1.1 例一 字面量创建字符串1.2 例二 字符串变量拼接1.3 例三 字符串常量拼接1.4 例四 intern方法1.5 小结二、StringTable调优 一、StringTable StringTable也叫串池,听名字就可以知道它和String的存储有关。在1.6,它是存在于永久代中的,到了1.7之后,StringTable被放在了堆中。 为了说明StringTable,我使用了几个例子。 1.1 例一 字面量创建字符串 public stat
2021-12-03 23:38:50
6334
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人