jvm的内存结构 面试(jvm内核面试题)

jvm的内存结构 面试(jvm内核面试题)br img src https www west cn info upload ktava5dkzxj jpg alt strong1 在 java 中守护线程和本地线程区别 strong strong 两者的区别 strong strong 扩展 strong Thread Dump 打印出来的线程信息 含有 daemon 字样的线程即为守护 strong2 线程与进程的区别 strong strong3



新老客户大回馈,云服务器低至5折

/br>

img src="https://www.west.cn/info/upload/20200428/ktava5dkzxj.jpg" alt="">

strong>1、在 java 中守护线程和本地线程区别?

/strong>

strong>两者的区别

/strong>:

strong>扩展

/strong>:Thread Dump 打印出来的线程信息,含有 daemon 字样的线程即为守护

strong>2、线程与进程的区别?

/strong>

strong>3、什么是多线程中的上下文切换?

/strong>

strong>4、死锁与活锁的区别,死锁与饥饿的区别?

/strong>

strong>产生死锁的必要条件

/strong>:

strong>活锁

/strong>:任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,

strong>饥饿

/strong>:一个或者多个线程因为种种原因无法获得所需要的资源,导致一直无法执

strong>Java 中导致饥饿的原因

/strong>:

strong>5、Java 中用到的线程调度算法是什么?

/strong>

strong>6、什么是线程组,为什么在 Java 中不推荐使用?

/strong>

strong>7、为什么使用 Executor 框架?

/strong>

strong>8、在 Java 中 Executor 和 Executors 的区别?

/strong>

strong>9、如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时

/strong>

strong>间最长?

/strong>

strong>10、什么是原子操作?在 Java Concurrency API 中有哪些原

/strong>

strong>子类(atomic classes)?

/strong>

strong>11、Java Concurrency API 中的 Lock 接口(Lock interface)

/strong>

strong>是什么?对比同步它有什么优势?

/strong>

strong>它的优势有

/strong>:

strong>12、什么是 Executors 框架?

/strong>

strong>13、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用

/strong>

strong>阻塞队列来实现生产者-消费者模型?

/strong>

strong>JDK7 提供了 7 个阻塞队列。分别是

/strong>:

strong>14、什么是 Callable 和 Future?

/strong>

strong>15、什么是 FutureTask?使用 ExecutorService 启动任务。

/strong>

strong>16、什么是并发容器的实现?

/strong>

strong>17、多线程同步和互斥有几种实现方法,都是什么?

/strong>

strong>18、什么是竞争条件?你怎样发现和解决竞争?

/strong>

strong>19、你将如何使用 thread dump?你将如何分析 Thread

/strong>

strong>dump?

/strong>

strong>新建状态(New)

/strong>

strong>就绪状态(Runnable)

/strong>

strong>运行状态(Running)

/strong>

strong>阻塞状态(Blocked)

/strong>

strong>阻塞状态可分为以下 3 种:

/strong>

strong>位于对象等待池中的阻塞状态(Blocked in object’s wait pool)

/strong>:

strong>位于对象锁池中的阻塞状态(Blocked in object’s lock pool)

/strong>:

strong>其他阻塞状态(Otherwise Blocked)

/strong>:

strong>20、为什么我们调用 start()方法时会执行 run()方法,为什么

/strong>

strong>我们不能直接调用 run()方法?

/strong>

strong>21、Java 中你怎样唤醒一个阻塞的线程?

/strong>

strong>22、在 Java 中 CycliBarriar 和 CountdownLatch 有什么区

/strong>

strong>别?

/strong>

strong>23、什么是不可变对象,它对写并发应用有什么帮助?

/strong>

strong>24、什么是多线程中的上下文切换?

/strong>

strong>25、Java 中用到的线程调度算法是什么?

/strong>

strong>有两种调度模型

/strong>:分时调度模型和抢占式调度模型。

strong>26、什么是线程组,为什么在 Java 中不推荐使用?

/strong>

strong>27、为什么使用 Executor 框架比使用应用创建和管理线程好?

/strong>

strong>使用 Executor 线程池框架的优点

/strong>

strong>28、java 中有几种方法可以实现一个线程?

/strong>

strong>29、如何停止一个正在运行的线程?

/strong>

strong>使用 interrupt 方法终止线程

/strong>

strong>30、notify()和 notifyAll()有什么区别?

/strong>

strong>31、什么是 Daemon 线程?它有什么意义?

/strong>

strong>32、java 如何实现多线程之间的通讯和协作?

/strong>

strong>33、什么是可重入锁(ReentrantLock)?

/strong>

strong>34、当一个线程进入某个对象的一个 synchronized 的实例方

/strong>

strong>法后,其它线程是否可进入此对象的其它方法?

/strong>

strong>35、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

/strong>

strong>悲观锁

/strong>:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每

strong>乐观锁

/strong>:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所

strong>乐观锁的实现方式

/strong>:

strong>CAS 缺点

/strong>:

strong>ABA 问题

/strong>:

strong>循环时间长开销大

/strong>:

strong>只能保证一个共享变量的原子操作

/strong>:

strong>36、SynchronizedMap 和 ConcurrentHashMap 有什么区

/strong>

strong>别?

/strong>

strong>37、CopyOnWriteArrayList 可以用于什么应用场景?

/strong>

strong>CopyOnWriteArrayList 透露的思想

/strong>

strong>38、什么叫线程安全?servlet 是线程安全吗?

/strong>

strong>39、volatile 有什么用?能否用一句话说明下 volatile 的应用

/strong>

strong>场景?

/strong>

strong>40、为什么代码会重排序?

/strong>

strong>41、在 java 中 wait 和 sleep 方法的不同?

/strong>

strong>在 Java 中线程的状态一共被分成 6 种

/strong>:

strong>初始态

/strong>:NEW

strong>阻塞态

/strong>

strong>等待态

/strong>

strong>超时等待态

/strong>

strong>终止态

/strong>

strong>注意

/strong>:

strong>42、用 Java 实现阻塞队列

/strong>

strong>43、一个线程运行时发生异常会怎样?

/strong>

strong>44、如何在两个线程间共享数据?

/strong>

strong>45、Java 中 notify 和 notifyAll 有什么区别?

/strong>

strong>46、为什么 wait, notify 和 notifyAll 这些方法不在 thread

/strong>

strong>类里面?

/strong>

strong>47、什么是 ThreadLocal 变量?

/strong>

strong>48、Java 中 interrupted 和 isInterrupted 方法的区别?

/strong>

strong>interrupt

/strong>

strong>interrupted

/strong>

strong>isInterrupted

/strong>

strong>49、为什么 wait 和 notify 方法要在同步块中调用?

/strong>

strong>50、为什么你应该在循环中检查等待条件?

/strong>

strong>51、Java 中的同步集合与并发集合有什么区别?

/strong>

strong>52、什么是线程池? 为什么要使用它?

/strong>

strong>53、怎么检测一个线程是否拥有锁?

/strong>

strong>54、你如何在 Java 中获取线程堆栈?

/strong>

strong>56、Thread 类中的 yield 方法有什么作用?

/strong>

strong>57、Java 中 ConcurrentHashMap 的并发度是什么?

/strong>

strong>58、Java 中 Semaphore 是什么?

/strong>

strong>59、Java 线程池中 submit() 和 execute()方法有什么区别?

/strong>

strong>60、什么是阻塞式方法?

/strong>

strong>61、Java 中的 ReadWriteLock 是什么?

/strong>

strong>62、volatile 变量和 atomic 变量有什么不同?

/strong>

strong>63、可以直接调用 Thread 类的 run ()方法么?

/strong>

strong>64、如何让正在运行的线程暂停一段时间?

/strong>

strong>65、你对线程优先级的理解是什么?

/strong>

strong>66、什么是线程调度器(Thread Scheduler)和时间分片(Time

/strong>

strong>Slicing )?

/strong>

strong>67、你如何确保 main()方法所在的线程是 Java 程序最后结束

/strong>

strong>的线程?

/strong>

strong>68、线程之间是如何通信的?

/strong>

strong>69、为什么线程通信的方法 wait(), notify()和 notifyAll()被定

/strong>

strong>义在 Object 类里?

/strong>

strong>70、为什么 wait(), notify()和 notifyAll ()必须在同步方法或

/strong>

strong>者同步块中被调用?

/strong>

strong>71、为什么 Thread 类的 sleep()和 yield ()方法是静态的?

/strong>

strong>72、如何确保线程安全?

/strong>

strong>73、同步方法和同步块,哪个是更好的选择?

/strong>

strong>74、如何创建守护线程?

/strong>

strong>75、什么是 Java Timer 类?如何创建一个有特定时间间隔的

/strong>

strong>任务?

/strong>

strong>上面的这些面试题都整理成了PDF文档,希望能帮助到你面试前的复习并找到一个好的工作,相对来说也节省了你在网上搜索资料的时间来学习!!!

/strong>

strong>附欢迎关注我的公种号:it资源之家?,扫描下面二维码即可领取更多一线大厂Java面试题资料!

/strong>

img src="https://www.west.cn/info/upload/20200428/1h4kvsycjhf.png" alt="">

strong>欢迎大家评论区一起交流,相互提升;整理资料不易,如果喜欢文章记得点个赞哈,感谢大家支持!!!

/strong>


编程小号
上一篇 2025-01-24 12:51
下一篇 2025-02-05 22:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/7055.html