想进大厂?50个多线程面试题,你会多少?(一)

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。

在典型的Java面试中, 面试官会从线程的基本概念问起

注意

文末有:2176页互联网大厂面试题~~

如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承thread类还是调用Runnable接口),然后逐渐问到并发问题像在Java并发编程的过程中遇到了什么挑战,Java内存模型,JDK1.5引入了哪些更高阶的并发工具,并发编程常用的设计模式,经典多线程问题如生产者消费者,哲学家就餐,读写器或者简单的有界缓冲区问题。仅仅知道线程的基本概念是远远不够的, 你必须知道如何处理死锁,竞态条件,内存冲突和线程安全等并发问题。掌握了这些技巧,你就可以轻松应对多线程和并发面试了。

许多Java程序员在面试前才会去看面试题,这很正常。

因为收集面试题和练习很花时间,所以我从许多面试者那里收集了Java相关的100个热门问题。

下面是Java相关的热门面试题,你可以用它来好好准备面试。

博主已将以下这些面试题整理成了一个面试手册,是PDF版的

最后,劳烦请您点个赞,关注下吧~~

感谢您的点赞,就是牛牛哥的动力噢~

阅读原文:高清 2176 页大厂面试题 PDF

 

1、什么是ThreadPoolExecutor?

2、invokedynamic 指令是干什么的?

3、synchronized、volatile、CAS 比较

4、Iterator 怎么使用?有什么特点?

5、被引用的对象就一定能存活吗?

6、列出一些你常见的运行时异常?

7、Servlet生命周期内调用的方法过程?

8、阐述静态变量和实例变量的区别。

9、类加载器双亲委派模型机制?

10、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰?

11、Parallel Old 收集器(多线程标记整理算法)

12、对象分配内存是否线程安全?

13、当一个线程进入某个对象的一个synchronized的实例方法后,其它线程是否可进入此对象的其它方法?

14、Serial 与 Parallel GC 之间的不同之处?

15、为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里?

16、redux异步中间件之间的优劣?

17、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式?

18、Hibernate中Session的load和get方法的区别是什么?

19、说一下堆内存中对象的分配的基本策略

20、Java 中如何将字符串转换为整数?

博主已将以下这些面试题整理成了一个面试手册,是PDF版的

21、Thread 类中的 yield 方法有什么作用?

22、如何在两个线程间共享数据?

23、在一个静态方法内调用一个非静态成员为什么是非法的?

24、设计模式分类

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

26、接口与抽象类有什么区别?

27、我能在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量吗?

28、说出几条 Java 中方法重载的最佳实践?

29、垃圾收集算法

30、Java 程序是怎样运行的?
31、什么是“依赖注入”和“控制反转”?为什么有人使用?

32、ArrayList 和 LinkedList 的区别是什么?

33、观察者模式应用场景

34、Array与ArrayList有什么不一样?

35、实例化数组后,能不能改变数组长度呢?

36、Java 中,Maven 和 ANT 有什么区别?

37、方法区的作用是什么?

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

39、原型模式的应用场景

40、ConcurrentHashMap 和 Hashtable 的区别?

41、线程和进程区别

42、老年代与标记复制算法

43、什么是TreeMap

44、如何停止一个正在运行的线程?

45、Java 中,编写多线程程序的时候你会遵循哪些最佳实践?

46、Java语言采用何种编码方案?有何特点?

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

48、解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。

49、多线程同步有哪几种方法?

50、什么是自旋

51、并行和并发有什么区别?

52、Hibernate中SessionFactory是线程安全的吗?Session是线程安全的吗(两个线程能够共享同一个Session吗)?

53、Java会存在内存泄漏吗?请简单描述。

54、生产环境服务器变慢,如何诊断处理?程状态。如果问题实在比较隐蔽,考虑是否可以开启 jmx,使用 visualmv 等可视化工具远程监控与分析。

55、你是如何理解fiber的?

56、HashMap的扩容操作是怎么实现的?

57、解释如何使用WAR文件部署web应用程序?

58、常用的并发工具类有哪些?

59、你能保证 GC 执行吗?


61、JDK 和 JRE 有什么区别?

62、能否使用任何类作为 Map 的 key?

63、简述synchronized 和java.util.concurrent.locks.Lock的异同?

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

66、Java中如何实现序列化,有什么意义?

67、单例模式使用注意事项:

68、请解释Tomcat的默认端口是什么?

69、创建线程的有哪些方式?

70、什么是OOP?

71、为什么HashMap中String、Integer这样的包装类适合作为K?

72、常见的计算机网络协议有那些?

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

74、遍历一个 List 有哪些不同的方式?每种方法的实现原理是什么?Java 中 List 遍历的最佳实践是什么?

76、什么是线程池?

77、JDBC操作的步骤

78、说一下 JVM 调优的工具?

79、JVM 提供的常用工具

80、SynchronizedMap和ConcurrentHashMap有什么区别?

81、Java有没有goto?

82、JVM怎么判断一个对象是不是要回收?

83、String s = new String(“xyz”);创建了几个字符串对象?

84、什么是过滤器?怎么创建一个过滤器

85、介绍一下 JVM 中垃圾收集器有哪些? 他们特点分别是什么?

86、线程池的执行原理?行反序,该如何做?

88、java 中 IO 流分为几种?

89、你都有哪些手段用来排查内存溢出?

90、GC 是什么?为什么要有 GC?

91、你说你做过JVM参数调优和参数配置,请问如何查看JVM系统默认值

92、Java 中怎样将 bytes 转换为 long 类型?

93、如何避免线程死锁

94、生产环境 CPU 占用过高,你如何解决?

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

96、自动装箱与拆箱

97、详细介绍一下JVM内存模型

98、监听器有哪些作用和用法?

99、说一下堆内存中对象的分配的基本策略

100、线程和进程区别

这套Java面试题大全,希望对大家有帮助哈~

博主已将以下这些面试题整理成了一个面试手册,是PDF版的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值