
操作系统
草莓味儿的小米佳
Man proposes,God disposes.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
双亲委派机制相关
什么是双亲委派机制 当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。 类加载器的类别 BootstrapClassLoader(启动类加载器) c++编写,加载java核心库 java.*,构造ExtClassLoader和AppClassLoader。由于引导类加载器涉及到虚拟机本地实现细节,开...原创 2020-03-28 18:07:35 · 115 阅读 · 0 评论 -
java类加载过程
一、一个Java文件从编码完成到最终执行,一般主要包括两个过程:编译,运行 编译,即把我们写好的java文件,通过javac命令编译成字节码,也就是我们常说的.class文件。 运行,则是把编译声称的.class文件交给Java虚拟机(JVM)执行。 而我们所说的类加载过程即是指JVM虚拟机把.class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。 举个通俗点的例子来说,JV...原创 2020-03-28 17:44:28 · 1445 阅读 · 0 评论 -
Java面试之垃圾回收总结
一、所谓GC GC就是垃圾收集的意思(Gabage Collection)。 我们在开发中会创建很多对象,这些对象一股脑的都扔进了堆里如果这些对象只增加不减少,那么堆空间很快就会被耗尽。所以我们需要把一些没用的对象清理掉。 二、对象已死吗 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存? 不会。对象回收需要一个过程,这个过程中对象还能复活。而且垃圾回收具有不确定性,指不定什...原创 2020-03-28 17:36:02 · 123 阅读 · 0 评论 -
用户态和内核态的理解和区别
1、linux进程有4GB地址空间,如图所示: 3G-4G大部分是共享的,是内核态的地址空间。这里存放整个内核的代码和所有的内核模块以及内核所维护的数据。 2、特权级的概念: 对于任何操作系统来说,创建一个进程是核心功能。创建进程要做很多工作,会消耗很多物理资源。比如分配物理内存,父子进程拷贝信息,拷贝设置页目录页表等等,这些工作得由特定的进程去做,所以就有了特权级别的概念。最关键的工作必须交给...原创 2020-03-21 13:23:33 · 271 阅读 · 0 评论 -
TCP如何实现可靠传输
1.TCP 和 UDP的区别: (1)TCP面向连接;UDP无连接 (2)TCP保证数据的可靠传输,数据传送无差错,不丢失,无重复,按序到达;UDP不保证可靠交付 (3)TCP连接一对一;UDP支持更广泛 (4)UDP实时性好,效率高,适用场景:短消息传输,大量客户端,对数据安全性要求不高但实时性要求高 (5)TCP面向数据流;UDP面向数据报 2.TCP如何保证数据传输的可靠性? 1. 序列号,...原创 2020-03-11 15:50:01 · 2062 阅读 · 0 评论 -
面试之进程和线程的区别
1.进程是资源分配的基本单位,线程是CPU调度和分派的基本单位 2.线程是进程的一部分,一个线程只能属于一个进程,一个进程可以有多个线程,但至少有一个线程 3.每个进程都有独立的代码和数据空间(程序上下文),程序间的切换开销大, 线程可看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程间切换开销小 4.在操作系统中能同时运行多个进程(程序) 在...原创 2020-03-11 14:49:04 · 1261 阅读 · 0 评论 -
JVM如何判断哪些对象可以被回收
JVM判断一个对象是否存活用的是可达性分析而不是引用计数法 1.引用计数法 引用计数法思路是这样的,给对象添加一个引用计数器,有地方引用时,计数器就加1;当引用失效时就减1;当计数为0的时候就判定对象需要被回收 引用计数法有一个难以解决的问题就是相互循环引用问题。 例: obj1.instance=obj2.instance;obj2.instance=obj1.instance; 2.可达性分...原创 2020-02-14 14:53:38 · 150 阅读 · 0 评论