Java基础总结
Java SE基础总结
Java中常见的垃圾回收算法
1. 标记清除算法
效率低、内存碎片多
2. 复制算法
从Eden,servivorForm 区复制到 servivorTo 区
3. 标记整理算法
4. 分代收集算法
新生代 ==> 老年代 ==> 永久代
A. 新生代:复制算法(短生命周期)
B.老年代:标记整理算法(生命周期长和大对象)
C.老年代:标记整理算法(存储长生命的对象)
jvm中的永生代:主要回收废弃的常量和无用的类
Java中的4种引用类型
1.强引用<最常见>
2.软引用<通过 SoftReference 类实现>
3.弱引用<通过 WeakReference 类实现>
4.虚引用<通过 PhantomRerence 类实现>
Java 网络编程模型
1.阻塞 I/O 模型
在读写数据时客户端发生阻塞
2.非阻塞 I/O 模型
用户线程在发起一个 I/O 操作后,无需阻塞便可以马上得到内核返回一个结果
3.多路复用 I/O 模型
多线程并发编程
一个线程管理多个 Socket 通道,在 Socket 有读写事件触发时,才会通知用户线程进行 I/O 操作
4.信号驱动 I/O 模型
I/O 请求 ---- 注册函数信号 ---- 内核数据就绪 ---- 通知用户线程 ---- 完成 I/O
异步 I/O 模型
用户线程发起一个 asynchronous read 到内核 ===> 内核返回状态 ===> 数据准备完成并复制完成 ===> 内核发信号 ===> 用户线程 ===> 完成 I/O
线程和进程的区别
-
线程:是指在程序执行过程中,能够执行程序代码的一个基本执行单位,每个程序至少有一个线程,也就是程序自己本身。
-
Java中的线程有四种状态:运行、就绪、挂起、结束
-
进程:是程序的基本执行实体,是线程的容器。
进程的特点:
a. 动态性:进程是程序的一次执行过程,是临时的,有生命周期的,
是动态产生,动态消亡的。
b. 并发性:任何进程都可以同其他进程一起并发执行。
c. 独立性:进程是系统进行资源分配和调度的一个独立单位。
d. 结构性:进程由程序、数据和进程控制块三部分组成。
有错误的地方,希望诸位留言指导