毕业两年的java面试总结及个人知识总结

前言:毕业两年多,一直从事java web方面的开发,感觉自己算踏入了一点点门槛吧,来记录下自己的成长吧,希望给广大网友们一些参考,共同进步。以下问题部分是面试被问到的,一些是自己的学习总结掌握了的知识,并没有被问到过,但仍需了解,不能为了面试而面试,这些知识仍需了解学习。

1. LinkedList 和 Arraylist区别 ? LinkedList可否模拟堆栈或者队列?

2. HashMap 和 HashTable区别?

3. 说一下HashMap 的put过程? key值怎么计算的?怎样降低hash冲突的? 满足条件后为什么变成红黑树? 是线程安全的吗,会发生什么情况?

4. HashMap 不安全的话那用什么来替代呢?简单的说下原理?ConcurrentHashMap的结构变化(例如:segement -> cas+synchronized)

5. synchronized 和voliate 的区别 ?  可重入锁了解吗?AQS有了解吗?

6. 线程有几种状态,启动方式有哪些? 线程池参数有哪些,并解释?说一下了解的线程池有几种?线程池创建为什么不让用Executors呢? 线程池是有哪些放弃策略?

7. ThreadLocal 有没有用过,使用到的地方有哪些呢?原理是什么?map中的key和value存的是什么?

8. mysql默认事务级别?解释各级别的区别,会发生什么现象并举个例子

9. Innodb 和 Myisam的区别 ? 聚集索引和非聚集索引区别等等,sql调优, 最左匹配原则?什么是回表?怎样避免全表扫?

10.什么情况会导致 @Transaction 失效

11.手写堆溢出,栈溢出的demo

12.接口幂等性怎么实现?

13.redis 数据类型,部署方式?(可能会问有没有自己部署过,例如:集群还是主从,怎么配置?)

14.redis一般的用途,分布式锁,数据缓存,异步消息队列,分别怎么实现的?

15.数据库层面怎么解决并发场景下的数据竞争问题?那代码层面呢?

16.分库有做过吗?没做的话有了解过吗?怎么做?

17.spring IOC 。 AOP:spring默认哪种aop, 两种代理的区别?aop的概念

18.mybatis的实现原理 (没被问到过,仍需了解)

19.手画出项目架构?

20.(算法)手写数组反转,链表反转,冒泡以及优化,快排 ,归并, 合并两个有序数组 ,跳台阶,两数之和,判断链表有环,从100W条数据中找到最小的十个 

21.cpu占用率高, 排查使用的命令?  

22.锁的升级过程 (无锁 - 偏向锁 -轻量级锁 -重量级锁,解释各个过程)

23.现场出sql题 

24.B+树原理解释 ,画出来 。

25.说一些自己熟悉的设计模式,应用场景? 

26.http 和tcp有什么区别呢?tcp和udp有什么区别? tcp三次握手,四次挥手,画出来。

27.手写单例模式。一般是双重锁,枚举的方式

28 hystrix说一下服务降级、治理、熔断

29 说一下cas

30.JVM调优参数

31.新生代怎么进行垃圾回收的?

32 虚引用 软引用 弱引用 强引用? Object o1 = new Object(); Object o2 = o1;  这时候GC,哪个会被回收掉?

33.垃圾回收算法

34.垃圾回收器

35 手画 JVM内存结构

36.自己对使用到中间件有过什么了解吗? 我想到的,zookeeper的watch机制,Tomcat 类加载器为何违背双亲委派模型,redis的内存回收策略,MQ发布/订阅模式等

总结:个人认为以上的知识普通的公司一般不会问这么深入,但仍需掌握,究其原理。很多人都说今年工作不好找,只要能沉下心学习掌握相关知识的话,机会还是很多的。现在的面试都不仅仅让你回答,更多的是让你用笔写出来,并解释清楚问题。所以不能只是背下来应付面试的话,就基本没戏了。

   学习的可以加java技术群:618626589,群主不是我,只是很喜欢这个群,藏龙卧虎,推荐一下

猜你喜欢

转载自www.cnblogs.com/eminemh/p/11994143.html