Java开发面试常见问题合集

一次面试事故

面试官:你看过哪些源码?
我:都挺熟悉的
面试官:对hashMap了解程度怎么样?
面试官:那你能讲讲 HashMap的实现原理吗?
面试官:HashMap什么时候会进行 rehash?
面试官:结合源码说说 HashMap在高并发场景中为什么会出现死循环?
我:…
我:抱歉…
面试官:嗯。
面试官:… 把门关上。
我:… 要干嘛?先关上再说。
面试官:我说出去把门关上。
我:what ?,夺门而去
116道面试题

1.junit用法,before,beforeClass,after, afterClass的执行顺序

2.nginx的请求转发算法,如何配置根据权重转发

3.用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap)

4.线程的状态

5.线程的阻塞的方式

6.sleep和wait的区别

7.hashmap的底层实现

8.一万个人抢100个红包,如何实现(不用队列),如何保证2个人不能抢到同一个红包,可用分布式锁

9.java内存模型,垃圾回收机制,不可达算法

10.两个Integer的引用对象传给一个swap方法在方法内部交换引用,返回后,两个引用的值是否会发现变化

11.aop的底层实现,动态代理是如何动态,假如有100个对象,如何动态的为这100个对象代理

12.是否用过maven install。maven test。git(make install是安装本地jar包)

13.tomcat的各种配置,如何配置docBase

14.spring的bean配置的几种方式

15.web.xml的配置

16.spring的监听器。

17.zookeeper的实现机制,有缓存,如何存储注册服务的

18.IO会阻塞吗?readLine是不是阻塞的

19.用过spring的线程池还是java的线程池?

20.字符串的格式化方法 (20,21这两个问题问的太低级了)

21.时间的格式化方法

22.定时器用什么做的

23.线程如何退出结束

24.java有哪些锁?乐观锁 悲观锁 synchronized 可重入锁 读写锁,用过reentrantlock吗?reentrantlock与synmchronized的区别

25.ThreadLocal的使用场景

26.java的内存模型,垃圾回收机制

27.为什么线程执行要调用start而不是直接run(直接run,跟普通方法没什么区别,先调start,run才会作为一个线程方法运行)

28.qmq消息的实现机制(qmq是去哪儿网自己封装的消息队列)

29.遍历hashmap的三种方式

30.jvm的一些命令

31.memcache和redis的区别

32.mysql的行级锁加在哪个位置

33.ConcurrentHashmap的锁是如何加的?是不是分段越多越好

34.myisam和innodb的区别(innodb是行级锁,myisam是表级锁)

35.mysql其他的性能优化方式

36.linux系统日志在哪里看

37.如何查看网络进程

38.统计一个整数的二进制表示中bit为1的个数

39.jvm内存模型,java内存模型

40.如何把java内存的数据全部dump出来

41.Java 会出现内存溢出吗?什么情况下会出现?

42.双亲委派模型,为什么这样做?

43..对象什么情况下进入老年代?

44.mongodb和hbase的区别

45.如何解决并发问题

46.为什么使用 Executor 框架?

47.什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?

48.快速排序说一下过程

49.垃圾回收算法

50.Tomcat 类加载器

51.读写分离何时强制要读主库,读哪个从库是通过什么方式决定的,从库的同步mysql用的什么方式

52.Redis 的数据类型?

53.一个字符串类型的值能存储最大容量是多少?

54.将一个链表反转(用三个指针,但是每次只发转一个)

55.spring Aop的实现原理,具体说说

56.在 java 中守护线程和本地线程区别?

57.是否用过Autowire注解

58.spring的注入bean的方式

59.sql语句各种条件的执行顺序,如select, where, order by, group by

60.select xx from xx where xx and xx order by xx limit xx;如何优化这个(看explain)

61.四则元算写代码

62.统计100G的ip文件中出现ip次数最多的100个ip

63.zookeeper的事物,结点,服务提供方挂了如何告知消费方

64.5台服务器如何选出leader(选举算法)

65.适配器和代理模式的区别

66.读写锁

67.static加锁

68.Jedis 与 Redisson 对比有什么优缺点?

69.为什么 edis 需要把所有数据放到内存中?

70.mybatis如何映射表结构

71.二叉树遍历

72.如何使用 Spring Boot 实现分页和排序?

73.mysql引擎区别

74.你使用了哪些 starter maven 依赖项?

75.class文件编译后加载到了哪

76.web的http请求如何整体响应时间变长导致处理的请求数变少,该如何处理?用队列,当处理不了那么多http请求时将请求放到队列
中慢慢处理,web如何实现队列

77.kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。

78.线程安全的单例模式

79.什么是 AOP?

80.你能否举一个以 ReadOnly 为事务管理的例子?

81.求表的size,或做数据统计可用什么存储引擎

82.哪个命令专门用来查看后台任务?

83.把后台任务调到前台执行使用什么命令?

84.怎么查看系统支持的所有信号?

85.搜索文件用什么命令? 格式是怎么样的?

86.使用什么命令查看用过的命令列表?

87.使用什么命令查看磁盘使用空间?空闲空间呢?

88.java的concurrent包用过没

89.Java 中用到的线程调度算法是什么?

90..java虚拟机的区域分配,各区分别存什么

91.在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?

92.Mybatis 是如何进行分页的?分页插件的原理是什么?

93.Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?

94.在 mapper 中如何传递多个参数?

95.什么是 MyBatis 的接口绑定?有哪些实现方式?

96.redis能存哪些类型

97.服务注册和发现是什么意思?Spring Cloud 如何实现?

98.Spring Cloud 和dubbo区别?

99.什么是 Spring Cloud Bus?我们需要它吗?

100.什么是 Netflix Feign?它的优点是什么?

101SpringBoot和SpringCloud的区别?

102.可重入锁中的lock和trylock的区别

103.innodb对一行数据的读会枷锁吗?不枷锁,读实际读的是副本

104.redis做缓存是分布式存的?不同的服务器上存的数据是否重复?guava cache呢?是否重复?不同的机器存的数据不同

105.用awk统计一个ip文件中top10

106.对表做统计时可直接看schema info信息,即查看表的系统信息

107.mysql目前用的版本

108.公司经验丰富的人给了什么帮助?(一般boss面会问这些)

109.自己相对于一样的应届生有什么优势

110.自己的好的总结习惯给自己今后的工作带了什么帮助,举例为证

111.原子类,线程安全的对象,异常的处理方式

112.4Zookeeper 对于 Kafka 的作用是什么?

113.数据传输的事务定义有哪三种?

114.Kafka 判断一个节点是否还活着有那两个条件?

115.Kafka 与传统 MQ 消息系统之间有三个关键区别

116.讲一讲 kafka 的 ack 的三种机制

更多技术资讯可关注:itheimaGZ获取

你可能感兴趣的:(java)