设为首页 加入收藏

TOP

Java 面试题:百度前200页都在这里了(三)
2017-11-13 14:55:53 】 浏览:1197
Tags:Java 试题 百度 200 都在 这里
64 位 JVM 的最大堆内存分别是多数?32 位和 64 位的 JVM,int 类型变量的长度是多数?
怎样通过 Java 程序来判断 JVM 是 32 位 还是 64 位
JVM自身会维护缓存吗?是不是在堆中进行对象分配,操作系统的堆还是JVM自己管理堆
什么情况下会发生栈内存溢出
双亲委派模型是什么

多线程

基本概念

  • 什么是线程
  • 多线程的优点
  • 多线程的几种实现方式
  1. 用 Runnable 还是 Thread
  • 什么是线程安全
  1. Vector, SimpleDateFormat 是线程安全类吗
  2. 什么 Java 原型不是线程安全的
  3. 哪些集合类是线程安全的
  • 多线程中的忙循环是什么
  • 如何创建一个线程
  • 编写多线程程序有几种实现方式
  • 什么是线程局部变量
  • 线程和进程有什么区别?进程间如何通讯,线程间如何通讯
  • 什么是多线程环境下的伪共享(false sharing)
  • 同步和异步有何异同,在什么情况下分别使用他们?举例说明

Current

  • ConcurrentHashMap 和 Hashtable的区别
  • ArrayBlockingQueue, CountDownLatch的用法
  • ConcurrentHashMap的并发度是什么

CyclicBarrier 和 CountDownLatch有什么不同?各自的内部原理和用法是什么
Semaphore的用法
Thread

  • 启动一个线程是调用 run() 还是 start() 方法?start() 和 run() 方法有什么区别
  • 调用start()方法时会执行run()方法,为什么不能直接调用run()方法
  • sleep() 方法和对象的 wait() 方法都可以让线程暂停执行,它们有什么区别
  • yield方法有什么作用?sleep() 方法和 yield() 方法有什么区别
  • Java 中如何停止一个线程
  • stop() 和 suspend() 方法为何不推荐使用
  • 如何在两个线程间共享数据
  • 如何强制启动一个线程
  • 如何让正在运行的线程暂停一段时间
  • 什么是线程组,为什么在Java中不推荐使用
  • 你是如何调用 wait(方法的)?使用 if 块还是循环?为什么

生命周期

  • 有哪些不同的线程生命周期
  • 线程状态,BLOCKED 和 WAITING 有什么区别
  • 画一个线程的生命周期状态图

ThreadLocal 用途是什么,原理是什么,用的时候要注意什么
ThreadPool

  • 线程池是什么?为什么要使用它
  • 如何创建一个Java线程池
  • ThreadPool用法与优势
  • 提交任务时,线程池队列已满时会发会生什么
  • newCache 和 newFixed 有什么区别?简述原理。构造函数的各个参数的含义是什么,比如 coreSize, maxsize 等
  • 线程池的实现策略
  • 线程池的关闭方式有几种,各自的区别是什么
  • 线程池中submit() 和 execute()方法有什么区别?

线程调度

  • Java中用到的线程调度算法是什么
  • 什么是多线程中的上下文切换
  • 你对线程优先级的理解是什么
  • 什么是线程调度器 (Thread Scheduler) 和时间分片 (Time Slicing)

线程同步

  • 请说出你所知的线程同步的方法
  • synchronized 的原理是什么
  • synchronized 和 ReentrantLock 有什么不同
  • 什么场景下可以使用 volatile 替换 synchronized
  • 有T1,T2,T3三个线程,怎么确保它们按顺序执行?怎样保证T2在T1执行完后执行,T3在T2执行完后执行
  • 同步块内的线程抛出异常会发生什么
  • 当一个线程进入一个对象的 synchronized 方法A 之后,其它线程是否可进入此对象的 synchronized 方法B
  • 使用 synchronized 修饰静态方法和非静态方法有什么区别
  • 如何从给定集合那里创建一个 synchronized 的集合

  • Java Concurrency API 中 的 Lock 接口是什么?对比同步它有什么优势
  • Lock 与 Synchronized 的区别?Lock 接口比 synchronized 块的优势是什么
  • ReadWriteLock是什么?
  • 锁机制有什么用
  • 什么是乐观锁(Optimistic Locking)?如何实现乐观锁?如何避免ABA问题
  • 解释以下名词:重排序,自旋锁,偏向锁,轻量级锁,可重入锁,公平锁,非公平锁,乐观锁,悲观锁
  • 什么时候应该使用可重入锁
  • 简述锁的等级方法锁、对象锁、类锁
  • Java中活锁和死锁有什么区别?
  • 什么是死锁(Deadlock)?导致线程死锁的原因?如何确保 N 个线程可以访问 N 个资源同时又不导致死锁
  • 死锁与活锁的区别,死锁与饥饿的区别
  • 怎么检测一个线程是否拥有锁
  • 如何实现分布式锁
  • 有哪些无锁数据结构,他们实现的原理是什么
  • 读写锁可以用于什么应用场景

Executors类是什么? Executor和Executors的区别
什么是Java线程转储(Thread Dump),如何得到它
如何在Java中获取线程堆栈
说出 3 条在 Java 中使用线程的最佳实践
在线程中你怎么处理不可捕捉异常
实际项目中使用多线程举例。你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的
请说出与线程同步以及线程调度相关的方法
程序中有3个 socket,需要多少个线程来处理
假如有一个第三方接口,有很多个线程去调用获取数据,现在规定每秒钟最多有 10 个线程同时调用它,如何做到
如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长
如何确保 main() 方法所在的线程是 Java 程序最后结束的线程
非常多个线程(可能是不同机器),相互之间需要等待协调才能完成某种工作,问怎么设计这种协调方案
你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它

异常

基本概念

  • Error 和 Exception有什么区别
  1. UnsupportedOperationException是什么
  2. NullPointerException 和 ArrayIndexOutOfBoundException 之间有什么相同之处
  • 什么是受检查的异常,什么是运行时异常
  • 运行时异常与一般异常有何异同
  • 简述一个你最常见到的runtime exception(运行时异常)

finally

  • finally关键词在异常处理中如何使用
  1. 如果执行finally代码块之前方法返回了结果,或者JVM退出了,finally块中的代码还会执行吗
  2. try里有return,finally还执行么?那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
  3. 在什么情况下,finally语句不会执行

throw 和 throws 有什么区别?
OOM你遇到过哪些情况?你是怎么搞定的?
SOF你遇到过哪些情况?
既然我们可以用RuntimeException来处理错误,那么你认为为什么Java中还存在检查型异常
当自己创建异常类的时候应该注意什么
导致空指针异常的原因
异常处理 handle or declare 原则应该如何理解
怎么利用 JUnit 来测试一个方法的异常
catch块里别不写代码有什么问题
你曾经自定义实现过异常吗?怎么写的
什么是 异常链
在try块中可以抛出异常吗

JDBC

  • 通过 JDBC 连接数据库有哪几种方式
  • 阐述 JDBC 操作数据库的基本步骤
  • JDBC 中如何进行事务处理
首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java 中的 WeakHashMap 下一篇微信 JS API 支付教程

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目