3年Java开发经验面试题总结

字数 1042阅读 3669

前言

毕业转行做开发3年以来, 学到了很多, 加上自己的兴趣爱好, 个人认为已经成为了一个合格的程序员.

与刚开始找工作面试相同的是都会问一些相同的问题, 不同的是现在面试官会更注重为什么, 也就是说注重深度而非广度. 3年, 5年, 10年分别是个人从事技术方面职业规划中的一个坎, 3年大部分时间应对了业务逻辑, 培养良好的规范和思想, 基础知识还是欠缺.

找工作时, 除了薪资符合个人职业规划也是相当重要的.废话少说, 以下是我前两天面试总结的面试题.

JavaSE

集合

hashmap结构及原理

扩容因子, 如何扩容, 数据结构图….

ArrayList, LinkedList 原理及区别(画出数据结构)

集合四要素: 是否可重复, 是否允许空值, 是否有序, 是否线程安全…

线程安全集合,map 为什么是线程安全的, 哪些操作关系到线程安全

算法

说几个常见的排序算法, 实现原理, 对应的时间空间复杂度, 稳定性

手撕一个算法(书写): 可以选择冒泡

递归算法

面向对象

多态的表现

面向对象特征

static的用法

String StringBuilder区别, 什么情况下用’+’. 最好答出javap编译后’+’实现原理

多线程

线程的实现方式

线程的状态

常见线程池及使用

一个线程结束开始另外一个线程的实现方式

线程原理(ThreadLocal)

start与run的区别

悲观锁乐观锁


IO流

写一个读写文件

事务相关

事务机制

AB分别是一个事务, C里面有A, B, 如果C里A或B失败回滚C是什么状态

什么是事务及使用场景

框架相关

Spring , MVC, MyBatis

介绍下Spring以及其常用的注解, Spring IOC实现原理, AOP实现原理及使用场景, 依赖注入原理

Spring事务传播与隔离级别

MyBatis映射原理


分布式相关架构

系统架构介绍, 架构设计图以及什么场景使用了什么架构

Dubbo机制, Zookeeper机制以及他们的关系

Redis数据类型以及使用场景, 刷新时间间隔

Kafka介绍及使用场景承担的角色

讲述一下Storm

数据库

MySQl

mysql数据库存储类型及其优缺点

分布式分片分库设计, 主从结构


其他

sql优化

索引创建原则(手写一个SQL)

SQL集中DDL, DMl==

建表的规则或者注意事项

数据库隔离级别及原因

设计模式

介绍下常见的设计模式以及使用场景

写一个单例模式实现


通讯

HTTP相关介绍, GET, POST的区别

JVM相关

Java垃圾回收机制

Java内存结构(与回收机制有关)


其他

RBAC权限模型, 分布式Session实现

常见linux命令(如何查看文件第200行, 如何查找文件)

写在最后, 两天面了四家有了3个offer, 其中京东的没过. 总结了一下, 京东这种互联网以技术驱动的公司会更注重个人的基础知识,自学能力以及动手能力, 他们会问的很细, 毫无准备的我, 应对起来相当吃力, 没过是正常.. 因为请假面试先探探行情, 所以并无准备, 很多东西答得不好, 但由于经验在这儿一般公司也就认同了, 不过这种情况下薪资会不是很理想, 建议还是多多准备.

java 开发工程师朋友可以加入我们Java架构交流群:760940986

群内提供 高可用,高并发,spring源码,mybatis源码,JVM,大数据,Netty等多个技术知识的架构视频资料

还有大把大牛在群内交流以及解答面试指导,问题答疑~~

推荐阅读更多精彩内容