摘要:
当一个人开始学习Java或者其他编程语言的时候,会接触到堆和栈,由于一开始没有明确清晰的说明解释,很多人会产生很多疑问,什么是堆,什么是栈,堆和栈有什么区别?更糟糕的是,Java中存在栈这样一个后进先出(Last In First Out)的顺序的数据结构,这就是java.util.Stack。这种 阅读全文
摘要:
内核态与用户态的主要区别在于特权级; 例如用户态程序无法访问内核的数据结构或操作函数; 内核态 主要指的是能够执行特权级为0的程序 用户态 主要指的是能够执行特权级为3的程序 用户态与内核态互转的三种方式:系统调度(例如fork)、异常(缺页异常)、外围设备的中断; 异常:当CPU正在执行运行在用户 阅读全文
摘要:
一般虚拟机虚拟网络的设置主要包括三种方式。主要如下: NAT模式 也有人称此种模式为host模式。在这种模式下虚拟机可以理解成没有自己的独立网卡。所有访问虚拟机的请求其实是直接发送给宿主机,然后通过访问宿主机转发到虚拟机上的。相应的虚拟机访问其他网络,也是先转发到宿主机然后在转发出去。对于宿主机之外 阅读全文
摘要:
Python 标准库 subprocess.Popen 是 shellout 一个外部进程的首选,它在 Linux/Unix 平台下的实现方式是 fork 产生子进程然后 exec 载入外部可执行程序。 于是问题就来了,如果我们需要一个类似“夹具”的子进程(比如运行 Web 集成测试的时候跑起来的那 阅读全文
摘要:
虚拟机运行时数据区 线程共享 java Heap java heamp是java虚拟机可配置管理的最大内存区;唯一的目的用于存储实例对象,所有线程共享; GC堆,回收技术主要采用分代收集算法;java Heap细分为:新生代、老生代;划分本身与存放内容无关;无论怎么划分,都是为了更好的分配和回收内存 阅读全文