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