Skip to content

Commit 952f6a8

Browse files
committed
增加计算机网络高频面试题
1 parent a06ec7c commit 952f6a8

File tree

4 files changed

+386
-13
lines changed

4 files changed

+386
-13
lines changed

Java/Java基础面试题.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@
4646

4747
> 大家好,我是大彬。最近在面试,看了很多面经,这段时间抽空将Java常见的面试题总结了一下,如果对你有帮助,可以**收藏和点赞****后续还会继续更新新的面试题目哦!**
4848
49-
本文目录如下:
49+
**文章目录**
5050

5151
![](https://gitee.com/tysondai/img/raw/master/image-20210919162926641.png)
5252

5353
![](https://gitee.com/tysondai/img/raw/master/image-20210919163030419.png)
5454

55-
> 首选给大家分享一个github仓库,上面放了**200多本经典的计算机书籍**,包括C语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生等,可以star一下,下次找书直接在上面搜索,仓库持续更新中~
55+
> 首先给大家分享一个github仓库,上面放了**200多本经典的计算机书籍**,包括C语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生等,可以star一下,下次找书直接在上面搜索,仓库持续更新中~
5656
>
5757
> github地址:https://github.com/Tyson0314/java-books
5858
>

Java/Java并发面试题.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
22
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3-
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
3+
44

55
- [线程池](#%E7%BA%BF%E7%A8%8B%E6%B1%A0)
66
- [为什么使用线程池?](#%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%BF%E7%94%A8%E7%BA%BF%E7%A8%8B%E6%B1%A0)
@@ -26,6 +26,7 @@
2626
- [wait()和sleep()的区别](#wait%E5%92%8Csleep%E7%9A%84%E5%8C%BA%E5%88%AB)
2727
- [wait(),notify()和suspend(),resume()之间的区别](#waitnotify%E5%92%8Csuspendresume%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB)
2828
- [Runnable和 Callable有什么区别?](#runnable%E5%92%8C-callable%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB)
29+
- [volatile和synchronized的区别是什么?](#volatile%E5%92%8Csynchronized%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88)
2930
- [线程执行顺序怎么控制?](#%E7%BA%BF%E7%A8%8B%E6%89%A7%E8%A1%8C%E9%A1%BA%E5%BA%8F%E6%80%8E%E4%B9%88%E6%8E%A7%E5%88%B6)
3031
- [乐观锁一定就是好的吗?](#%E4%B9%90%E8%A7%82%E9%94%81%E4%B8%80%E5%AE%9A%E5%B0%B1%E6%98%AF%E5%A5%BD%E7%9A%84%E5%90%97)
3132
- [守护线程是什么?](#%E5%AE%88%E6%8A%A4%E7%BA%BF%E7%A8%8B%E6%98%AF%E4%BB%80%E4%B9%88)
@@ -56,7 +57,7 @@
5657

5758
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
5859

59-
> 大家好,我是大彬。最近在面试,看了很多面经,将常见的Java并发编程常见面试题总结了一下,如果对你有帮助,**可以star一下****后续还会继续更新新的面试题目哦!**
60+
> 大家好,我是大彬。最近在面试,看了很多面经,抽空将Java并发编程常见的面试题总结了一下,在这里分享给大家~
6061
6162
## 线程池
6263

@@ -68,10 +69,6 @@
6869
- **提高响应速度**。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
6970
- **提高线程的可管理性**。统一管理线程,避免系统创建大量同类线程而导致消耗完内存。
7071

71-
```
72-
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler);
73-
```
74-
7572
### 线程池执行原理?
7673

7774
创建新的线程需要获取全局锁,通过这种设计可以尽量避免获取全局锁,当 ThreadPoolExecutor 完成预热之后(当前运行的线程数大于等于 corePoolSize),提交的大部分任务都会被放到 BlockingQueue。
@@ -619,7 +616,7 @@ ReentrantLock 内部自定义了同步器 Sync,在加锁的时候通过 CAS
619616
- Callable接口call方法有返回值,支持泛型,Runnable接口run方法无返回值。
620617
- Callable接口call()方法允许抛出异常;而Runnable接口run()方法不能继续上抛异常;
621618

622-
**volatile和synchronized的区别是什么?**
619+
## volatile和synchronized的区别是什么?
623620

624621
1. volatile只能使用在变量上;而synchronized可以在类,变量,方法和代码块上。
625622
2. volatile至保证可见性;synchronized保证原子性与可见性。
@@ -822,7 +819,7 @@ ThreadLocal 并不是用来解决共享资源的多线程访问的问题,因
822819

823820
每个Thread都有⼀个ThreadLocalMap的内部属性,map的key是ThreaLocal,定义为弱引用,value是强引用类型。GC的时候会⾃动回收key,而value的回收取决于Thread对象的生命周期。一般会通过线程池的方式复用Thread对象节省资源,这也就导致了Thread对象的生命周期比较长,这样便一直存在一条强引用链的关系:Thread --> ThreadLocalMap-->Entry-->Value,随着任务的执行,value就有可能越来越多且无法释放,最终导致内存泄漏。
824821

825-
![image-20200715235804982](E:\project\java\learn\Java-learning\img\threadlocal-oom.png)
822+
![](https://gitee.com/tysondai/img/raw/master/threadlocal-oom.png)
826823

827824
解决⽅法:每次使⽤完ThreadLocal就调⽤它的remove()⽅法,手动将对应的键值对删除,从⽽避免内存泄漏。
828825

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
## 基础
4646

47-
1. [Java基础知识总结](Java/Java基础.md) 基础知识/面试题(必看 :+1:)
47+
1. [Java基础知识总结](Java/Java基础.md) (必看 :+1:)
4848
2. [**Java面试题精选**](Java/Java基础面试题.md) **精心整理的大厂Java面试题目,附有详细答案** (必看 :+1:)
4949
3. [Java8 新特性总结](Java/Java8.md)
5050
4. [Java常见关键字总结](Java/Java关键字.md)
@@ -56,7 +56,7 @@
5656

5757
## 并发
5858

59-
1. [Java并发高频面试题(精华版)](Java/Java并发面试题.md)(必看 :+1:)
59+
1. [Java并发高频面试题(精华版)](Java/Java并发面试题.md) **精心整理的大厂Java并发编程面试题目,附有详细答案** (必看 :+1:)
6060

6161
2. [Java并发知识点总结,超详细!](Java/并发.md)(必看 :+1:)
6262

@@ -136,7 +136,7 @@
136136

137137
# 网络
138138

139-
[计算机网络常见面试题总结](网络/网络.md)
139+
[计算机网络常见面试题总结](网络/计算机网络高频面试题.md) (精选30题,非常适合面试前阅读!必看 :+1:
140140

141141
[session和cookie](网络/session和cookie.md)
142142

0 commit comments

Comments
 (0)