整理一下Java技术栈的常见问题

116 阅读6分钟

前言

要到了要招人的时候,这几天又筛了几个建立,感觉现在招人的机制太恶心了,需要改进一下,顺便准备一下后面在面试中可能提的问题,在这里分享一下,为需要面试的朋友也算做个信息汇总。

具体的问题

  1. hashcode相等两个类一定相等吗?equals?相反昵?
  2. 知道字节码吗?字节码都有哪些?
  3. 讲讲类加载机制呗?都有哪些类加载器,这些类加载器都加载哪些文件?
  4. 请问你做过哪些JVM优化?使用什么方法?达到什么效果???
  5. 知道osgi吗_他是如何实现的???
  6. class. ForName(“java. Iang.String”)和 String. class. GetclassLoadero . Ioadclass(“java. Iang. String”) 什么区别啊?
  7. spring都些什么机制啊?AOP底层如何实现的啊?IOC呢?
  8. cglib知道吗?他和jdk动态代理什么区别?手写一个jdk动态代理呗?
  9. dubbo支持哪些序列化协议?hessian?说一下hessian的数据结构?PB知道吗?为啥PB效率是最高的啊??
  10. 为什么要进行系统拆分啊?拆分不用dubbo可以吗?dubbo和th rif t什么区别啊?
  11. http的工作流程;http1.0 ,http1.1, http2.0具体哪些区别啊
  12. TCP三次握手,四层分手的工作流程画一下流程图为什么不是四次五次或者二次啊
  13. 画一下https的工作流程具体如何实现啊如何防止被抓包啊
  14. 比较简单,我一个文件,有45亿个阿拉伯数字,如何进行去重啊如何找出最大的那个数啊?
  15. 使用mysql索引都有哪些原则??索引什么数据结构??B+tree和B tree什么区别??
  16. 二叉树和红黒树等。I
  17. mysql有哪些存储引擎啊?都有啥区别?7要详细!!!
  18. 设计高并发系统数据库层面该怎么设计???数据库锁有哪些类型?如何实现呀了
  19. 数据库事务有哪些??
  20. 如何设计可以动态扩容缩容的分库分表方案???
  21. 如何限流工程中怎么做的,说一下具体实现
  22. 用过哪些分库分表中间件,有啥优点和缺点,
  23. 我现在有一个未分库分表的系统,以后系统需分库分表,如何设计,让未分库分表的系统动态切换到分库分表的系统上?
  24. es的查询是一个怎么的工作过程底层的lucence介绍一下呗倒排索引知道吗?es和Mongdb什么区别啊都在什么场景下使用啊?
  25. 如何降级如何进行系统拆分,如何数据库拆分
  26. 如何熔断啊熔断框架都有哪些具体实现原理知道吗
  27. 缓存如何使用的缓存使用不当会造成什么后果
  28. 分布式事务知道吗?你们怎么解决的?TCC?那若出现网络原因,网络连不通怎么办啊???
  29. 分布式寻址方式都有哪些算法?知道一致性hash吗?
  30. redis和memcheched什么区别?为什么单线程的redis比多线程的memched效率要高啊?
  31. 手写一下java实现代码7?你若userld取摸分片,那我要查一段连续时间里的数据怎么办???
  32. red is有什么数据类型?都在哪些场景下使用啊?
  33. reids的主从复制是怎么实现的?redis的集群模式是如何实现的昵?redis的key是如何寻址的啊?
  34. 使用reds如何设计分布式锁?使用zk可以吗?如何实现啊?这两种哪个效率更高啊??
  35. 知道redis的持久化吗?都有什么缺点优点啊??具体底层实现昵?
  36. redis过期策略都有哪些?LRU?写一下java版本的代码吧??
  37. 说一下dubbo的实现过程?注册中心挂了可以继续通信吗??
  38. zk原理知道吗?zk都可以干什么?P8xos算法知道吗?说一下原理和实现??
  39. 知道netty吗?netty可以干嘛呀N10,B10,A10都是什么啊?有什么区别啊?
  40. dubbo复制均衡策略和高可用策略都有哪些啊?动态代理策略昵?
  41. 为什么使用消息队列啊消息队列有什么优点和缺点啊
  42. 如何保证消息队列的高可用啊如何保证消息不被重复消费啊
  43. 如何保证消息队列的高可用啊如何保证消息不被重复消费啊
  44. 如果让你写一个消息队列,该如何进行架构设计啊说一下你的思路
  45. es的工作过程实现是如何的如何实现分布式的啊
  46. es在数据量很大的情况下(数十亿级别)如何提高查询效率啊
  47. 说一下Tcp ıp四层
  48. 如何设计一个高并发高可用系统
  49. 介绍一下集合框架?
  50. hashmap hastable底层实现什么区别?hashtable 和 concu rrenthashtableDE?
  51. hashmap和t reemap什么区别?低层数据结构是什么?
  52. 线程池用过吗?都有什么参数?底层如何实现的??
  53. sychnized和Lock什么区别??
  54. ThreadLoca乏是什么?底层如何实现?写一个例子呗?
  55. volitile的工作原理??
  56. cas知道吗?如何实现的?
  57. 请用至少四种写法写一个单例模式呗?
  58. 请介绍一射JVM内存模型??用过什么垃圾回收器?都说说呗了
  59. 线上发送频繁full gc如何处理??CPU使用率过高怎么办?

关于答案

上面的这些问题网上每一个都有参考资料,限于篇幅这里就不给出链接了,不过要是有兴趣可以私信我。

总结

都说育人育己确实很有道理,我想面试也一样,在你准备问别人之前,自己先要对要问问题考虑周全,在这个过程中自己的水平也得到明显的提升了,有不少事情是你以为你懂了,但让你来实际说或写一下却总有疏漏的地方。想要很好的评估面试人员的技术水平,必须自己底子好,才能不被忽悠了,同时还要保持良好的心态,才能相对客观的评价他人。