仅把自己最近的面试亲历为主,做以记录,用作后续复习之用,也仅可只供他人参考。还请大家以自身实际院校水平,个人能力,应聘公司规模做具体调整。 本文偏重基础,指导大体方向,在细节上不会过多赘述。拔高的 jvm 缓存 cloud redis 分布式 集群 负载均衡 等技术待n年后再总结。
在面试过程中遇到最多的问题:
java基础;数据库 ;设计模式;框架 ;linux指令个人参加面试使用的项目 : 在线书城. 仍有部分不够完善,只可参考。
封装 继承 多态
对面向对象的理解个人认为面向对象核心是 封装。提到代码复用性
对多态的理解建议参考c++中的虚函数 碰到笔试手写虚函数实现多态的
String 常用的方法String StringBudiler StringBuffer 区别String 拼接字符串会浪费资源, StringBudiler StringBuffer 大体实现方法相似,节约内存资源。最大区别:Budiler实现方法是有同步锁的,Buffer没
java跳出多层循环return 返回 跳出循环 定义loop1: break loop1;跳转到指定的循环层次
List
Set List Set 区别:
随机存取,元素重复性
ArrayList linklist 区别:
底层实现,内存结构。
Map List 和 Map 区别 HashMap 底层源码的一些问题
在理解集合时建议深入源码。
io流 流的分类:字符流 字节流
反射机制 反射的好处可参结合ioc思想进行解答
获取类对象的方法Class.forName(Xxx) Class cls = Xxx.class; Class cls = xxx.getClass();
多线程 如何写一个线程类:`继承Theard 类 实现Runnable() 接口
启动线程的方法:
theard.start( )
线程实现同步方法。
mysql oracle
基础增删改查语句脏读,不可重复读,幻读
查询时间函数
查询同名的人(不清楚那个名字重复)使用 group by name 粗略实现
事务了解一下事务特性及机制
动态sql用的是 mybatis 标签 where if 等。 #{ } 实现预编译,防止sql注入。
分页四大隔离级别
读未提交 读已提交 – 多数数据库默认 可重复读 – mysql默认级别 串行化
单例懒汉饿汉模式 工厂模式 动态代理 … 这些简单的基础设计模式建议熟悉。
常用的 ssm = spring+ spring mvc + mybatis; spring boot
pom文件作用spring 和spring boot 区别spring boot 是对spring框架的精简和集成。精简配置文件,集成各种约定。
ioc aop 思想spring好处mybatis框架本质是jdbc工具守护(精灵)线程。 我们可以调用System.gc()方法建议gc过来清理垃圾,但绝不是指示gc过来清理垃圾。gc会判断当前垃圾量,不达到gc的阈值,gc不会清除。故,调用方法,不等于gc一定会干活。
了解 强引用,弱引用。
常见的垃圾清理方法
标记清除 复制 标记整理
这里了解常用指令,会是一个加分点。建议熟悉 :
ll ls vi cd cp rm cat tail su sudo man pwd touch mkdir ps top kill 等
