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