Java复习笔记(六)

1.进程与线程的区别:
①根本区别:进程是资源分配最小单位,线程是程序执行的最小单位。 计算机在执行程序时,会为程序创建相应的进程,进行资源分配时,是以进程为单位进行相应的分配。每个进程都有相应的线程,在执行程序时,实际上是执行相应的一系列线程。

②地址空间:进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段;线程没有独立的地址空间,同一进程的线程共享本进程的地址空间。

③资源拥有:进程之间的资源是独立的;同一进程内的线程共享本进程的资源。

④执行过程:每个独立的进程程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

⑤线程是处理机调度的基本单位,但是进程不是。由于程序执行的过程其实是执行具体的线程,那么处理机处理的也是程序相应的线程,所以处理机调度的基本单位是线程。

⑥系统开销:进程执行开销大,线程执行开销小。

 

2.值传递与引用传递的区别:

①值传递:只要是基本类型传递都是值传递;

②引用传递:针对于基本类型进行封装,对封装进行传递,是引用传递。

 

3.同步方法与同步代码块的区别:
①当两个并发线程访问同一个对象Object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码以后才能执行该代码块。

②当一个线程访问object的一个synchronized(this)同步代码块的时候,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。

③当一个线程访问object的一个synchronized(this)同步代码块的时候,其他线程对object中所有其他的synchronized(this)同步代码块的访问将被阻塞。

④同步方法使用synchronized修饰方法,在调用该方法前,需要获得内置锁(java每个对象都有一个内置锁),否则就处于阻塞状态。代码如: public synchronized void save(){//内容}

⑤同步代码块使用synchronized(object){}进行修饰,在调用该代码块时,需要获得内置锁,否则就处于阻塞状态

 代码如:  synchronized(object){ //内容  }

 

4.Java集合类框架的基本接口有哪些?

答:

Collection:单列集合的根接口

List:元素有序  可重复 

ArrayList:类似一个长度可变的数组 。适合查询,不适合增删

LinkedList:底层是双向循环链表。适合增删,不适合查询。

Set:元素无序,不可重复

HashSet:根据对象的哈希值确定元素在集合中的位置

TreeSet: 以二叉树的方式存储元素,实现了对集合中的元素排序

Map:双列集合的根接口,用于存储具有键(key)、值(value)映射关系的元素。

HashMap:用于存储键值映射关系,不能出现重复的键key

TreeMap:用来存储键值映射关系,不能出现重复的键key,所有的键按照二叉树的方式排列

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值