本人第一次写文章,本人本科软件学院一个综合性专业,所以不算科班出身,研究生期间暂不讲,所以后端开发基础不是很好,现在刚刚毕业,面试了一阵子,写这篇文章,首先是总结一下我这阵子的面试,也是给未毕业的萌新一些资料(可能仅适合部分人,所以如果觉得我总结的不对,或者是哪里有问题,很乐意接受并指正,但是不要骂我,可以给我发邮件讲,邮箱jonychan95@outlook.com,不是说为了面试走捷径,而是最近的总结)。网络平台是自由的,是互相学习的一个平台,请轻喷。
作为Java后端开发,面试时候必不可少的一部分是Java基础,这一块包含很多细小的技术点;第二块就是关于并发(线程方面);第三块是关于数据库;第四块是关于计算机网络的;另外就是关于你的简历中你做的项目以及熟悉的技术栈,还有基础的Git命令和Linux命令。
首先,Java基础,这一块分为好多的技术栈。
一. 数据类型:8中基本的数据类型,所占的字节数以及长度,还有他们对应的封装类型。(float分的有0-23位,24-46,是为了保证在计算中避免由精度引起的准确性问题)
二. Collection:
1. 3种接口,接口以及实现类。(list,set,map)
2. 每个接口的实现类的底层的原理,功能区别。(ArrayList/LinkedList/hashmap)(数组链表的区别,队列,红黑树,hashcode等数据结构方面)
3. 每一种实现是否是线程同步,为什么不是线程同步,原因。如何将线程不同步的实现类改为线程同步
4. ArrayList是个坑,注意他的add和remove方法,以及ArrayList的自动扩容机制
5. collection和collections两个接口的区别
三. 面向对象的三大特征,自己的理解
四. overwrite和overload的区别
五. String,StringBuilder和StringBuffer的区别
六. 单例模式,分为三种,可实现单例模式功能是有5种,单例模式的三种(懒汉+饿汉+双检索)+static内部类+枚举
七. JDK,JRE,JVM三者分别是什么,三者之间的联系
八. JVM
1. 工作原理
2. 分的几块(堆栈)等等,每一块存储的对象,以及功能。
3. 实现可跨平台
4. 4种引用类型
5. 工作内存,主内存
6. 类加载
7. 垃圾回收/GC机制(可以判断对象是否可回收的算法,什么时间回收,回收用到的算法)
九. 接口和抽象类的区别,用法
十. throw和throws的区别
十一. 未完待续
其次,是关于线程方面。
一. 并发与并行,进程与线程
二. 线程的状态
三. synchronized和ReentrantLock的底层实现以及区别
四. 线程池的参数,以及每一个参数的含义,工作原理
五. volatile,ThreadLocal,join 底层实现以及原理
六. 死锁,死锁的形成条件以及解决方法
七. 锁的分类(公平锁,非公平锁,独享锁,共享锁,乐观锁,悲观锁, 可重入锁)
八. 保证线程安全的方法
九. 未完待续
这一块是关于数据库
一. 关系型数据库和非关系型数据库
二. 事务
三. 索引(这一块是我的弱势,就不做过多的分析,不误导)
四. SQL 语句(涉及一些分类以及条件查询)
五. 对比你用过的数据库
六. 未完待续
关于计算机网络
一. 一些基础的名词,域名,IP,等等
二. Http,TCP等等
三. get和post的区别
四. 未完待续(这一块是我最弱是的一块,我需要多看一些这方面的技术点,如果您浏览到了这里,请去查阅其他资料,我这个帮不上太多忙,不好意思)
其他
一. git冲突的解决办法
二. 后端开发肯定是要问一下关于主流框架的知识点,Spring,SpringBoot,SpringCloud等等的技术栈
三. 手写递归代码,死锁例子,生产者消费者例子,二叉树,链表,单例模式,二分查找,排序等等
四. 几种排序
还有好多是根据你自己得简历提到的技术栈询问
写在最后:
面试时候,可以在纸上记录一下面试官都问你的问题,如果自己能答上来,下来可以巩固一下,答不上来的,也许就是自己需要准备的技术栈。
这篇文章没有写具体的答案,只是一些问题,只是我自己的总结,如果有大佬觉得弱智,请轻喷,或者帮忙添加,或是指正,我也是一枚菜鸡,哈哈!
大家面试一定要放好心态,有的面试官可能态度不是很友好,那就不要多和他争辩,前两天一个四大的某一公司的面试,第二轮总监面,首先我不是很优秀的programmer,我有的问题的确回答不上来,但是我也在很配合的面试,他就一直很不礼貌,凶来凶去的,问一些刁钻的,几乎对于初学者不会注意到的问题,我答不上来,我根据自己的理解说了我的想法,最后加了一句,这个问题我不是很懂,这是我的想法,我回去再去看看,他凶的说,这是有一个固定答案的,不是你想怎么样就怎么样,天啊,我。。。。。每个人每天为了生活都不容易,希望每个人都相互尊重,相互理解!
加油@ each interviewee