BATJ面试指南
Java并发编程面试题汇总
线程
线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进程所创建的对象资源(内存资源)。java.lang.Thread对象负责统计和控制这种行为。
每个程序都至少拥有一个线程-即作为Java虚拟机(JVM)启动参数运行在主类main方法的线程。在Java虚拟机初始化过程中也可能启动其他的后台线程。这种线程的数目和种类因JVM的实现而异。然而所有用户级线程都是显式被构造并在主线程或者是其他用户线程中被启动。
1、在java中守护线程和本地线程区别?
2、线程与进程的区别?
3、什么是多线程中的上下文切换?
4、死锁与活锁的区别,死锁与饥饿的区别?
5、Java中用到的线程调度算法是什么?
6、什么是线程组,为什么在Java中不推荐使用?
7、为什么使用Executor框架?
8、在Java中Executor和Executors的区别?
9、如何在Windows和Linux上查找哪个线程使用的CPU时间最长?
10、什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?
11、Java Concurrency API中的Lock接口(Lock interface)是什么?对比同步它有什么优势?
12、什么是Executors框架?
13、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
14、什么是Callable和Future?
15、什么是FutureTask?使用ExecutorService启动任务。
16、什么是并发容器的实现?
17、多线程同步和互斥有几种实现方法,都是什么?
18、什么是竞争条件?你怎样发现和解决竞争?
附:java并发编程学习导图
需要面试题汇总以及高清脑图(可入圈:830478757,进群即可免费领取)
19、你将如何使用thread dump?你将如何分析Thread dump?
20、为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?
21、Java中你怎样唤醒一个阻塞的线程?
22、在Java中CycliBarriar和CountdownLatch有什么区别?
23、什么是不可变对象,它对写并发应用有什么帮助?
24、什么是多线程中的上下文切换?
25、Java中用到的线程调度算法是什么?
26、什么是线程组,为什么在Java中不推荐使用?
27、为什么使用Executor框架比使用应用创建和管理线程好?
28、java中有几种方法可以实现一个线程?
29、如何停止一个正在运行的线程?
30、notify()和notifyAll()有什么区别?
31、什么是Daemon线程?它有什么意义?
32、java如何实现多线程之间的通讯和协作?
33、什么是可重入锁(ReentrantLock)?
34、当一个线程进入某个对象的一个synchronized的实例方法后,其它线程是否可进入此对象的其它方法?
35、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
36、SynchronizedMap和ConcurrentHashMap有什么区别?
37、CopyOnWriteArrayList可以用于什么应用场景?
38、什么叫线程安全?servlet是线程安全吗?
39、volatile有什么用?能否用一句话说明下volatile的应用场景?
40、为什么代码会重排序?
41、在java中wait和sleep方法的不同?
43、一个线程运行时发生异常会怎样?
44、如何在两个线程间共享数据?
45、Java中notify 和 notifyAll有什么区别?
46、为什么wait, notify 和 notifyAll这些方法不在thread类里面?
47、什么是ThreadLocal变量?
48、Java中interrupted 和 isInterrupted方法的区别?
49、为什么wait和notify方法要在同步块中调用?
50、为什么你应该在循环中检查等待条件?
51、Java中的同步集合与并发集合有什么区别?
52、什么是线程池? 为什么要使用它?
53、怎么检测一个线程是否拥有锁?
54、你如何在Java中获取线程堆栈?
55、JVM中哪个参数是用来控制线程的栈堆栈小的?
56、Thread类中的yield方法有什么作用?
57、Java中ConcurrentHashMap的并发度是什么?
58、Java中Semaphore是什么?
59、Java线程池中submit() 和 execute()方法有什么区别?
60、什么是阻塞式方法?
61、Java中的ReadWriteLock是什么?
62、volatile 变量和 atomic 变量有什么不同?
63、可以直接调用Thread类的run ()方法么?
64、如何让正在运行的线程暂停一段时间?
65、你对线程优先级的理解是什么?
66、什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?
67、你如何确保main()方法所在的线程是Java 程序最后结束的线程?
68、线程之间是如何通信的?
69、为什么线程通信的方法wait(), notify()和notifyAll()被定义在Object 类里?
70、为什么wait(), notify()和notifyAll ()必须在同步方法或者同步块中被调用?
71、为什么Thread类的sleep()和yield ()方法是静态的?
72、如何确保线程安全?
73、同步方法和同步块,哪个是更好的选择?
74、如何创建守护线程?
75、什么是Java Timer 类?如何创建一个有特定时间间隔的任务?
面试资料:
BATJ面试指南的更多相关文章
- 推荐一份 Google 面试指南
经常有不少读者在我公众号后台留言,说自己还是应届毕业生,缺乏工作经验与项目经验,不知道如何才能通过面试? 其实,项目经验固然重要,但是企业也知道,对于应届毕业生,是很难有拿得出手的项目经验出来的,毕竟 ...
- 毕业季offer怎么拿?收下这份非典型求职面试指南
摘要:求职面试莫慌,先自我评估一下 ,华为云专家手把手为你指导. 本文分享自华为云社区<毕业季offer怎么拿?收下这份非典型求职面试指南>,原文作者:技术火炬手 . 又是一年毕业季,对于 ...
- 30K入职腾讯,全靠这份606页的Android面试指南
前言 光阴似箭,日月如梭,时间真的过得飞快. 加上实习,从事 Android 开发,差不多有 5 年了.在上家公司职务.薪酬感觉已经到达了天花板,没有上升的余地.而且在这家公司过于安逸了,想换个有挑战 ...
- 经验总结:超详细的 Linux C/C++ 学习路线!大厂面试指南
❝ 文章每周持续更新,「三连」让更多人看到是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) ❞ 最近在知乎经常被邀请回答类似如何学习C++和C++后台开 ...
- 5年Android程序员面试字节跳动两轮后被完虐,请查收给你的面试指南
大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以 ...
- Java核心技术及面试指南的视频讲解和代码下载位置
都是百度云盘,均无密码 代码下载位置: https://pan.baidu.com/s/1I44ob0vygMxvmj2BoNioAQ 视频讲解位置: https://pan.baidu.com/s/ ...
- Java核心技术及面试指南 设计模式部分的面试题总结以及答案
8.6.4.1请实现一个线程安全的单例模式. 1 public class MailListReader { 2 private static MailListReader ...
- Java核心技术及面试指南 JDBC部分的面试题总结以及答案
5.5.1 你最近的项目里用到的是哪个数据?或你用过哪些数据库?或你对哪个数据库最熟悉? 通过这个问题,我们将会确认候选人是否在项目里用过数据库或JDBC. 5.5.2 你有没有建过表?或修改表里的字 ...
- Java核心技术及面试指南 数据库方面的面试题归纳以及总结
5.1.7.1 事务的四大特性是什么? ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库 ...
随机推荐
- 用java实现操作两个数据库的数据
1.首先需要在jdbc的配置文件里面配置两个数据库的连接 数据库1的配置 driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://地址:3306/数 ...
- 第十五节 JS面向对象实例及高级
实例:面向对象的选项卡 把面向过程的程序,改写成面向对象的形式 原则:不能有函数套函数,但可以有全局变量 过程: onload —— 改写成 构造函数,其中window.onload的功能是在页面加载 ...
- ES6 解构
{ "code": 200, "msg": "success", "data": { "total" ...
- Linux的文件系统
根文件系统(rootfs): root filesystem LSB, FHS: (FileSystem Heirache Standard) /etc, /usr, /var, /root, /ho ...
- Excel导出采用mvc的ExcelResult继承遇到的问题Npoi导出
#region 构建Excel文档 //创建Excel文件的对象 NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSS ...
- Hive性能优化上的一些总结
https://blog.csdn.net/mrlevo520/article/details/76339075 1.介绍 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题? 数据 ...
- 【BZOJ5194】Snow Boots
[原题题面]传送门 [简化题意] 给定一个长度为n的序列. 有m次询问,每次询问给定两个数si,di.你一开始站在0,每次你可以走不超过di,但你到达的位置的数不能超过si.问能否走到n+1. n,m ...
- 每天一套题打卡|河南省第十一届ACM/ICPC
A 计划日 题意:已知李明在YYYY年MM月DD日星期W订了学习计划,现在想看看李明N天后的完成情况和个人总结,你能告诉我那天的日期和星期几吗? 模拟日期计算: 计算星期可以用基姆拉尔森公式 //中国 ...
- Python游戏编程入门3
用户输入:Bomb Catcher游戏本章介绍使用键盘和鼠标获得用户输入.包括如下主题:学习pygame事件学习实时循环学习键盘和鼠标事件学习轮询键盘和鼠标的状态编写Bomb Catcher游戏 1本 ...
- psycopg2+postgis+pgAdmin4
基于docker的postgres 部署见这篇 https://www.cnblogs.com/xuanmanstein/p/7742647.html 连接数据库 import psycopg2cla ...