快手1轮面经 20180910
-
个人介绍
- 学校经历(课程、考研、成绩)
- 项目经历(时间段、项目介绍)
- 个人爱好(体育、特长)
-
实习项目
- 项目介绍说辞
- 项目背景
- 采用技术
- 项目周期
-
WEB基础
- 介绍什么是restful?
- 什么是restful API(what)
- 为什么使用restful API (why)
- 优点、缺点(advantages、disadvantages)(attribute)
- 主要用哪些http动词(get、put、post、delete)
- responsebody是用web接收还是对象接收?
- 用什么东西接收从前端接收的参数
- 单个值使用?号来传参
- get和post的区别?(difference)回答4点
- 是否了解httprequest的组成?(constitute,make up )
- http状态码(404、500、301、302、403、500)
- 介绍什么是restful?
-
java基础
- 讲解类加载的过程(load、link、initation)
- 详细展开加载(3步)、链接(文件格式验证、字节码验证、元数据验证、符号引用验证)、初始化
- 有哪些类加载器(ClassLoader)
- BootstrapClassLoader
- ExtClassLoader
- ApplistcationClassLoader
- CustomerClassLoader
- 加载器加载顺序
- 重载和重写的区别?overload & overwrite
- 重载的指标
- 参数列表
- 参数个数
- 参数顺序
- 返回值不能作为指标
- 重写
- 重载的指标
- equals和==的区别?(difference)
- 接口和抽象类区别?(difference)7大点
- 抽象类定义一个非抽象方法,可以在当前类可以写方法体吗?
- java集合类了解哪些?
- list
- ArrayList
- Linkedlist
- set
- HashSet
- Map
- HashMap
- ConcurrentHashmap
- HashMap的原理、是否线程安全
- 如何实现HashMap线程安全
- list
- synchronized的作用
- 解决同步
- 能否写在类上面
- 了解垃圾回收吗?
- 什么是垃圾回收(what)
- 如何进行垃圾回收(how)
- 垃圾回收算法
- 垃圾回收器在什么时候对什么东西做了什么事?
- 进程和线程的区别?(difference)three points
- 线程的实现方式?(implementation)
- Thread
- Runnable
- Callable
- ThreadExecutorPool
- 讲解类加载的过程(load、link、initation)
-
数据结构和算法
- 了解的数据结构有哪些?
- linkedlist
- stack
- queue
- binaryTree
- 算法手撕题1
- 实现带min函数的栈采用两个栈来实现
- 先讲解思路
- 代码实现
- 设计测试用例
- 实现带min函数的栈采用两个栈来实现
- 了解的排序算法有哪些?
- 讲解快速排序
- 快排的时间复杂度
- 了解的数据结构有哪些?
-
数据库
- 什么的是哪个数据库(mysql)
- 数据库mysql分页limit
- mysql事务
- 什么是事务(what)
- 为什么需要事务(why)
- 事务的特性(character)ACID
- Atomic
- Consistence
- Isolation
- Duration
- 数据库索引
- 创建索引(create index)
- 索引分类:普通索引、主键索引
- 索引数据结构
-
设计模式
- 了解哪些设计模式
- 单例模式、装饰者模式
- 面试手撕代码题2
- 线程安全的单例类
- 恶汉式
- 懒汉式
- 双重加锁
- 静态类部类
- 枚举(enumration)
- 线程安全的单例类
- 了解哪些设计模式
-
框架
- SpringMVC工作原理
- DispatcherServlet
- 11 step
- Spring AOP和IOC原理
- SpringMVC工作原理
-
finally
- 面完直接通知等二面,hr会约二面的面试时间