Question 1:
javase 都有哪些 jar 包?
java.lang - 包含一些 Java 语言的核心类, 如 StringMathIntegerSystemThread, 提供常用功能使用这个包可以不用 import 语句, 在默认情况下, 编译器会自动将这个包导入到 java 程序中, 因此这个包的类可以直接在程序中使用
java.io---- 包含提供多种输入 / 输出功能的类
java.net 包含执行与网络相关操作的类
java.util---------- 包含一些使用工具类以及数据结构类, 如定义系统特性使用与日期日历相关的函数集合堆栈等
java.sql---------- 包含用于访问数据库的类
Question 2:
进程和线程的区别?
进程是一个执行中的程序程序是一个没有生命的实体, 处理器赋予程序生命时, 程序变成一个活动的实体, 称之为进程, 是一个动态的概念
通常一个进程中包含若干个线程, 他们利用进程所拥有的资源在引入线程的操作系统中, 通常把进程作为分配资源的基本单位, 线程比进程更小
区别: 子进程和父进程有不同的代码和数据空间, 而多个线程则共享数据空间, 每个线程有自己有自己的执行堆栈和程序计数器为其执行上下文
区别归纳:
{a: 地址空间和其他资源: 进程间相互独立, 同一进程的各线程共享
b: 通信: 进程间通信 IPC, 线程可以直接读写进程数据段 (如全局变量) 来进行通信
c : 调度和切换: 线程的上下文切换要明显快于进程的上下文切换
d: 在多线程 os 中, 进程不是一个可执行的实体
}
Question 3:
进程间通讯:
管道, 内存共享, 消息队列, 信号量, socket
Question 4:
进程同步机制
空闲让进, 忙则等待, 有限等待, 让权等待
来源: http://www.bubuko.com/infodetail-2536681.html