Java|普通本科毕业一年,刷完这1000道JAVA面试题,成功逆袭上岸( 七 )


  • 一个线程运行时发生异常会怎样?
  • 如何在两个线程间共享数据?
  • Java中notify 和 notifyAll有什么区别?
  • 为什么wait notify 和 notifyAll这些方法不在thread类里面?
  • 什么是ThreadLocal变量?
  • Java中interrupted 和 isInterrupted方法的区别?
  • 为什么wait和notify方法要在同步块中调用?
  • 为什么你应该在循环中检查等待条件?
  • Java中的同步集合与并发集合有什么区别?
  • 什么是线程池? 为什么要使用它?
  • 怎么检测一个线程是否拥有锁?
  • 你如何在Java中获取线程堆栈?
  • JVM 中哪个参数是用来控制线程的栈堆栈小的?
  • Thread类中的yield方法有什么作用?
  • Java中ConcurrentHashMap的并发度是什么?
  • Java中Semaphore是什么?
  • Java线程池中submit() 和 execute()方法有什么区别?
  • 什么是阻塞式方法?
  • Java中的ReadWriteLock是什么?
  • volatile 变量和 atomic 变量有什么不同?
  • 可以直接调用Thread类的run ()方法么?
  • 如何让正在运行的线程暂停一段时间?
  • 你对线程优先级的理解是什么?
  • 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?
  • 你如何确保main()方法所在的线程是Java 程序最后结束的线程?
  • 线程之间是如何通信的?
  • 为什么线程通信的方法 wait() , notify()和 notifyAll()被定义在 Object 类里?
  • 为什么 wait() , notify()和 notifyAll ()必须在同步方法或者同步块中被调用?
  • 为什么 Thread 类的 sleep()和 yield ()方法是静态的?
  • 如何确保线程安全?
  • 同步方法和同步块 , 哪个是更好的选择?
  • 如何创建守护线程?
  • 什么是 Java Timer 类?如何创建一个有特定时间间隔的任务?

  • Java 并发编程(二)
    1. 并发编程三要素?
    2. 实现可见性的方法有哪些?
    3. 多线程的价值?
    4. 创建线程的有哪些方式?
    5. 创建线程的三种方式的对比?
    6. 线程的状态流转图
    7. Java线程具有五中基本状态
    8. 什么是线程池?有哪几种创建方式?
    9. 四种线程池的创建:
    10. 线程池的优点?
    11. 常用的并发工具类有哪些?
    12. CyclicBarrier和CountDownLatch的区别
    13. synchronized的作用?
    14. volatile关键字的作用
    15. 什么是CAS
    16. CAS的问题
    17. 什么是Future?
    18. 什么是AQS
    19. AQS支持两种同步方式:
    20. ReadWriteLock是什么
    21. FutureTask是什么
    22. synchronized和ReentrantLock的区别
    23. 什么是乐观锁和悲观锁
    24. 线程B怎么知道线程A修改了变量
    25. synchronized、volatile、CAS比较
    26. sleep方法和wait方法有什么区别?
    27. ThreadLocal是什么?有什么用?