作者:王星星的魔灯

腾讯云&腾讯视频

腾讯云

Java

1. Java变量的传递方式

值传递

OS

2. 栈和堆的区别(OS层面)

栈是先进后出的,一般是OS自动分配的,堆是由程序员自己申请的

函数定义的变量是在栈上,譬如malloc是在堆上

操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间(可能是其他算法)的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序

3. 虚拟内存

虚拟内存为了扩大进程对内存的使用空间,主要有页表置换算法

opt,fifo,lru

4. 中断

中断分为多种,分别有物理中断,虚拟中断等等

中断可以实现进程之间的通信,分页中断还可以进行虚拟内存的页面交换

5. 系统调用

系统调用即System Call,为了扩充机器功能、增强系统能力、方便用户使用而在内核中建立的过程(函数),它是用户程序或其它系统程序获得操作系统服务的唯一途径,系统调用也称为广义指令,是由操作系统在机器指令基础上实现的过程或子程序

6. malloc的空间分配

分配在堆上

7. 线程和进
lock