1000+ 道 Java面试题及答案整理(2024最新版)

62、为什么不能用 + 拼接字符串?

63、StringBuffer 和 StringBuilder 的区别?

64、StringJoiner 有什么用?

65、Java 所有类的祖先类是哪个?

66、Object 类有哪些常用的方法?

67、普通类和抽象类有什么区别?

68、静态内部类和普通内部类有什么区别?

69、静态方法可以直接调用非静态方法吗?

70、静态变量和实例变量有什么区别?

71、内部类可以访问其外部类的成员吗?

72、接口和抽象类有什么区别?

73、接口是否可以继承接口?

74、接口里面可以写方法实现吗?

75、抽象类必须要有抽象方法吗?

76、抽象类能使用 final 修饰吗?

77、抽象类是否可以继承具体类?

78、抽象类是否可以实现接口?

79、怎么查看一个 Java 类的字节码?

80、Java 中的 UUID 是什么?

81、Java 类初始化顺序是怎样的?

82、为什么成员变量命名不建议用 isXXX?

83、hashCode 有什么用?

84、hashCode 和 identityHashCode 的区别?

85、什么是 hash 冲突?

86、equals 和 hashCode 的区别和联系?

87、两个对象 equals 相等, hashCode 也相等么?

88、两个对象 hashCode 相等,equals 也相等么?

89、为什么重写 equals 就要重写 hashCode 方法?

90、Java 常用的元注解有哪些?

91、Java 泛型中的 T、R、K、V、E 分别指什么?

92、Java 金额计算怎么避免精通丢失?

93、Java 语法糖是什么意思?

94、transient 关键字有什么用?

95、如何实现对象克隆?

96、对象克隆浅拷贝和深拷贝的区别?

97、Java 反射机制有什么用?

98、Java 反射机制的优缺点?

99、Java 反射机制 Class 类有哪些常用方法?

100、Java 反射可以访问私有方法吗?

101、Java 反射可以访问私有变量吗?

102、Class.forName 和 ClassLoader 的区别?

103、什么是宏变量和宏替换?

104、什么是逃逸分析?

105、什么是伪共享?有什么解决方案?

106、Java 有没有 goto 关键字?

107、Java 中有没有指针的概念?

108、Java 中的 classpath 环境变量作用?

109、Math.round(1.5) 等于多少?

110、Math.round(-1.5) 等于多少?

111、Java 8 都新增了哪些新特性?

112、Java 8 中的 Lambda 表达式有啥用?

113、Java 8 中的 Optional 类有什么用?

114、Java 8 中的 Stream 有啥用?

115、Java 8 中的@Repeatable 注解有什么用?

116、Java 8 中的方法引用是指什么?

117、Java 8 中的函数式编程怎么用?

118、怎么创建一个 Stream 流?

119、Oracle JDK 和 OpenJDK 有啥区别?

Java 集合

1、说说常见的集合有哪些?

2、哪些集合类可对元素的随机访问?

3、Comparable 和 Comparator 接口的区别?

4、Collection 和 Collections 的区别?

5、Enumeration 和 Iterator 接口的区别?

6、集合使用泛型有什么优点?

7、List、Set、Map 之间的区别是什么?

8、为什么 Map 接口不继承 Collection 接口?

9、常用的线程安全的 Map 有哪些?

10、HashMap 与 Hashtable 的区别?

11、HashMap 和 TreeMap 怎么选?

12、HashMap 的数据结构是什么?

13、HashMap 在 JDK 8 中有哪些改变?

14、HashMap 的 put 方法逻辑?

15、HashMap 的 get 方法逻辑?

16、HashMap 是线程安全的吗?

17、HashMap 是怎么解决 hash 冲突的?

18、HashMap 是怎么扩容的?

19、HashMap 如何实现同步?

20、HashMap 中的负载因子是什么?

21、Hashtable 为什么不叫 HashTable?

22、ConcurrentHashMap 的数据结构?

23、ArrayList 是线程安全的么?

24、常用的线程安全的 List 集合有哪些?

25、循环删除 List 集合可能会发生什么异常?

26、ArrayList 和 LinkedList 的区别?

27、ArrayList 和 Vector 的区别?

28、什么是 CopyOnWriteArrayList?

29、什么是 fail-safe?

30、什么是 fail-fast?

31、fail-fast 与 fail-safe 有什么区别?

32、HashSet 的底层实现原理是什么?

33、怎么确保一个集合不能被修改?

JVM

1、Java 为什么能一次编写,处处运行?

2、JVM 是什么?

3、HotSpot 是什么?

4、JVM 内存区域分类哪些?

5、堆和栈区别是什么?

6、JVM 哪块内存区别不会发生内存溢出?

7、什么情况下会发生栈内存溢出?

8、对象都是在堆上分配的吗?

9、你怎么理解强、软、弱、虚引用?

10、常用的 JVM 参数有哪些?

11、Java 8 中的内存结构有什么变化?

12、Java 8 中的永久代为什么被移除了?

13、什么是类加载器?

14、类加载器的分类及作用?

15、什么是双亲委派模型?

16、为什么要打破双亲委派模型?

17、可以自定义一个 java.lang.String 吗?

18、什么是 JVM 内存模型?

19、JVM 内存模型和 JVM 内存结构的区别?

20、什么是指令重排序?

21、内存屏障是什么?

22、什么是 Happens-Before 原则?

23、GC 是什么?为什么需要 GC?

24、什么是 MinorGC 和 FullGC?

25、一次完整的 GC 流程是怎样的?

26、JVM 如何判断一个对象可被回收?

27、常用的垃圾收集器有哪些?

28、常用的垃圾回收算法有哪些?

29、什么是内存泄漏?

30、为什么会发生内存泄漏?

31、如何防止内存泄漏?

32、什么是直接内存?

33、直接内存有什么用?

34、怎样访问直接内存?

35、常用的 JVM 调优命令有哪些?

36、常用的 JVM 问题定位工具有哪些?

37、常用的主流 JVM 虚拟机都有哪些?

多线程(并发编程)

1、进程和线程的区别?

2、什么是原子性、可见性、有序性?

3、为什么要使用多线程?

4、创建线程有哪几种方式?

5、什么是守护线程?

6、线程的状态有哪几种?怎么流转的?

7、线程的优先级有什么用?

8、我们常说的 JUC 是指什么?

9、i++ 是线程安全的吗?

10、join 方法有什么用?什么原理?

11、如何让一个线程休眠?

12、启动一个线程是用 start 还是 run 方法?

13、start 和 run 方法有什么区别?

14、sleep 和 wait 方法有什么区别?

15、Thread.yield 方法有什么用?

16、yield 和 sleep 有什么区别?

17、怎么理解 Java 中的线程中断?

18、你怎么理解多线程分组?

19、你怎么理解 wait、notify、notifyAll?

20、同步和异步的区别?

21、什么是死锁?

22、怎么避免死锁?

23、什么是活锁?

24、什么是无锁?

25、什么是线程饥饿?

26、什么是 CAS?

27、阻塞和非阻塞的区别?

28、并发和并行的区别?

29、为什么不推荐使用 stop 停止线程?

30、如何优雅地终止一个线程?

31、Synchronized 同步锁有哪几种用法?

32、什么是重入锁(ReentrantLock)?

33、Synchronized 与 ReentrantLock 的区别?

34、synchronized 锁的是什么?

35、什么是读写锁?

36、公平锁和非公平锁的区别?

37、有哪些锁优化的方式?

38、什么是偏向锁?

39、什么是轻量级锁?

40、什么是自旋锁?

41、什么是锁消除?

42、什么是锁粗化?

43、什么是重量级锁?

44、什么是线程池?

45、使用线程池有什么好处?

46、创建一个线程池有哪些核心参数?

47、线程池的工作流程是怎样的?

48、Java 里面有哪些内置的线程池?

49、为什么阿里不让用 Executors 创建线程池?

50、线程池的拒绝策略有哪几种?

51、如何提交一个线程到线程池?

52、线程池 submit 和 execute 有什么区别?

53、如何查看线程池的运行状态?

54、如何设置线程池的大小?

55、如何关闭线程池?

56、AQS 是什么?

57、AQS 的底层原理是什么?

58、Java 中的 Fork Join 框架有什么用?

59、ThreadLocal 有什么用?

60、ThreadLocal 有什么副作用?

61、volatile 关键字有什么用?

62、volatile 有哪些应用场景?

63、CyclicBarrier 有什么用?

64、CountDownLatch 有什么用?

65、CountDownLatch 与 CyclicBarrier 的区别?

66、Semaphore 有什么用?

67、Exchanger 有什么用?

68、LockSupport


有什么用?

69、Java 中原子操作的类有哪些?

70、什么是 ABA 问题?怎么解决?

71、Java 并发容器,你知道几个?

72、什么是阻塞队列?

73、阻塞队列有哪些常用的应用场景?

74、Java 中的阻塞的队列有哪些?

75、什么是幂等性?

IO(网络编程)

1、什么是 IO?

2、常用的 IO 类有哪些?

3、你怎么理解 IO、BIO、NIO、AIO?

4、什么是比特(Bit)、字节(Byte)、字符(Char)?

5、Java 有哪几种类型的流?

6、字节流和字符流的区别?

7、Java 序列化是什么?

么?

57、AQS 的底层原理是什么?

58、Java 中的 Fork Join 框架有什么用?

59、ThreadLocal 有什么用?

60、ThreadLocal 有什么副作用?

61、volatile 关键字有什么用?

62、volatile 有哪些应用场景?

63、CyclicBarrier 有什么用?

64、CountDownLatch 有什么用?

65、CountDownLatch 与 CyclicBarrier 的区别?

66、Semaphore 有什么用?

67、Exchanger 有什么用?

68、LockSupport

[外链图片转存中…(img-TphJWHjO-1716193736734)]

有什么用?

69、Java 中原子操作的类有哪些?

70、什么是 ABA 问题?怎么解决?

71、Java 并发容器,你知道几个?

72、什么是阻塞队列?

73、阻塞队列有哪些常用的应用场景?

74、Java 中的阻塞的队列有哪些?

75、什么是幂等性?

IO(网络编程)

1、什么是 IO?

2、常用的 IO 类有哪些?

3、你怎么理解 IO、BIO、NIO、AIO?

4、什么是比特(Bit)、字节(Byte)、字符(Char)?

5、Java 有哪几种类型的流?

6、字节流和字符流的区别?

7、Java 序列化是什么?

  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值