记2020-10 面试知识点总结 应届生

面经基础(仅针对应届)

仅把自己最近的面试亲历为主,做以记录,用作后续复习之用,也仅可只供他人参考。还请大家以自身实际院校水平,个人能力,应聘公司规模做具体调整。
本文偏重基础,指导大体方向,在细节上不会过多赘述。拔高的 jvm 缓存 cloud redis 分布式 集群 负载均衡 等技术待n年后再总结。

面试注重技能

在面试过程中遇到最多的问题:

  1. java基础
  2. 数据库
  3. 设计模式
  4. 框架
  5. linux指令

个人参加面试使用的项目 : 在线书城.
仍有部分不够完善,只可参考。

java基础

初级部分

  1. 八大类型
  2. java三大特性

封装 继承 多态

  1. 对面向对象的理解

个人认为面向对象核心是 封装。提到代码复用性

  1. 对多态的理解

建议参考c++中的虚函数
碰到笔试手写虚函数实现多态的

  1. String 常用的方法
  2. String StringBudiler StringBuffer 区别

String 拼接字符串会浪费资源,
StringBudiler StringBuffer 大体实现方法相似,节约内存资源。最大区别:Budiler实现方法是有同步锁的,Buffer没

  1. java跳出多层循环

return 返回 跳出循环
定义loop1: break loop1;跳转到指定的循环层次

高级部分

  1. 集合
  • List

  • Set
    List Set 区别:

    随机存取,元素重复性

    ArrayList linklist 区别:

    底层实现,内存结构。

  • Map
    List 和 Map 区别
    HashMap 底层源码的一些问题

在理解集合时建议深入源码。

  1. io流
  • 流的分类:

字符流 字节流

  1. 反射机制
    反射的好处

可参结合ioc思想进行解答

  1. 获取类对象的方法

Class.forName(Xxx)
Class cls = Xxx.class;
Class cls = xxx.getClass();

  1. 多线程
    如何写一个线程类:

`继承Theard 类
实现Runnable() 接口

启动线程的方法:

theard.start( )

线程实现同步方法。

数据库

mysql oracle

  1. 基础增删改查语句

记2020-10 面试知识点总结 应届生

  1. 脏读,不可重复读,幻读记2020-10 面试知识点总结 应届生

  2. 查询时间函数

记2020-10 面试知识点总结 应届生

  1. 查询同名的人(不清楚那个名字重复)

使用 group by name 粗略实现

  1. 事务

了解一下事务特性及机制

  1. 动态sql

用的是 mybatis 标签 where if 等。
#{ } 实现预编译,防止sql注入。记2020-10 面试知识点总结 应届生

  1. 分页

记2020-10 面试知识点总结 应届生

四大隔离级别

读未提交
读已提交 – 多数数据库默认
可重复读 – mysql默认级别
串行化

设计模式

单例懒汉饿汉模式
工厂模式
动态代理

这些简单的基础设计模式建议熟悉。

框架

常用的 ssm = spring+ spring mvc + mybatis; spring boot

  1. pom文件作用
  2. spring 和spring boot 区别

spring boot 是对spring框架的精简和集成。精简配置文件,集成各种约定。

  1. ioc aop 思想
  2. spring好处
  3. mybatis框架本质是jdbc工具

GC

守护(精灵)线程。
我们可以调用System.gc()方法建议gc过来清理垃圾,但绝不是指示gc过来清理垃圾。gc会判断当前垃圾量,不达到gc的阈值,gc不会清除。故,调用方法,不等于gc一定会干活。

了解 强引用,弱引用。

常见的垃圾清理方法

标记清除
复制
标记整理

常见的linux指令

这里了解常用指令,会是一个加分点。建议熟悉 :

ll ls vi cd cp rm cat tail su sudo man pwd touch mkdir ps top kill 等