您的位置:首页 > 职场人生

Java研发方向如何准备BAT技术面试

2018-03-02 21:13 405 查看
最近BAT等各大互联网巨头们的校招陆陆续续都准备开始了,可能对于在校的大多数学生来说,不知道如何正确衡量自己掌握的技术,更不知道BAT这样的公司会要求自己必须具备什么样的技术能力。对于Java研发方向的技术面试,这里总结了一些你必须要掌握的技术知识点,考察的内容会比这里总结的多,所以如果想要有一个很不错的offer,下面的知识点需要都具备。社招考察的内容会在此基础上增加项目经验、技术实战经验、热门技术的使用及理解。更多精彩内容请关注我的微信公众号:JavaQ。

Java基础:

面向对象和面向过程的区别Java的四个基本特性(抽象、封装、继承,多态)Overload和Override的区别构造器Constructor是否可被override访问控制符public,protected,private,以及默认的区别是否可以继承String类String和StringBuffer、StringBuilder的区别hashCode和equals方法的关系抽象类和接口的区别自动装箱与拆箱什么是泛型、为什么要使用以及泛型擦除Java中的集合类及关系图HashMap实现原理(看源代码)HashTable实现原理(看源代码)HashMap和HashTable区别HashTable如何实现线程安全(看源代码)ArrayList和vector区别(看源代码)ArrayList和LinkedList区别及使用场景Collection和Collections的区别Concurrenthashmap实现原理(看源代码)Error、Exception区别Unchecked Exception和Checked Exception,各列举几个Java中如何实现代理机制(JDK、CGLIB)多线程的实现方式线程的状态转换如何停止一个线程什么是线程安全如何保证线程安全Synchronized如何使用synchronized和Lock的区别多线程如何进行信息交互sleep和wait的区别(考察的方向是是否会释放锁)多线程与死锁如何才能产生死锁什么叫守护线程,用什么方法实现守护线程Java线程池技术及原理java并发包concurrent及常用的类volatile关键字Java中的NIO,BIO,AIO分别是什么IO和NIO区别序列化与反序列化常见的序列化协议有哪些内存溢出和内存泄漏的区别Java内存模型及各个区域的OOM,如何重现OOM出现OOM如何解决用什么工具可以查出内存泄漏Java内存管理及回收算法Java类加载器及如何加载类(双亲委派)xml解析方式Statement和PreparedStatement之间的区别JavaEE:servlet生命周期及各个方法servlet中如何自定义filterJSP原理JSP和Servlet的区别JSP的动态include和静态includeStruts中请求处理过程MVC概念Spring mvc与Struts区别Hibernate/Ibatis两者的区别Hibernate一级和二级缓存Hibernate实现集群部署Hibernate如何实现声明式事务简述Hibernate常见优化策略Spring bean的加载过程(推荐看Spring的源码)Spring如何实现AOP和IOCSpring bean注入方式Spring的事务管理(推荐看Spring的源码)Spring事务的传播特性springmvc原理springmvc用过哪些注解Restful有几种请求Restful好处Tomcat,Apache,JBoss的区别memcached和redis的区别有没有遇到中文乱码问题,如何解决的如何理解分布式锁你知道的开源协议有哪些json和xml区别

设计模式:

设计模式的六大原则常用的设计模式用一个设计模式写一段代码或画出一个设计模式的UML如何理解MVC高内聚,低耦合方面的理解

算法:

深度优先、广度优先算法排序算法及对应的时间复杂度和空间复杂度写一个排序算法查找算法B+树和二叉树查找时间复杂度KMP算法、hash算法常用的hash算法有哪些如何判断一个单链表是否有环?给你一万个数,如何找出里面所有重复的数?用所有你能想到的方法,时间复杂度和空间复杂度分别是多少?给你一个数组,如何里面找到和为K的两个数?100000个数找出最小或最大的10个?一堆数字里面继续去重,要怎么处理?

数据结构:

队列、栈、链表、树、堆、图编码实现队列、栈

Linux:

linux常用命令如何查看内存使用情况Linux下如何进行进程调度

操作系统:

操作系统什么情况下会死锁产生死锁的必要条件死锁预防

数据库:

范式数据库事务隔离级别数据库连接池的原理乐观锁和悲观锁如何实现不同数据库的数据查询分页SQL注入的原理,如何预防数据库索引的实现(B+树介绍、和B树、R树区别)SQL性能优化数据库索引的优缺点以及什么时候数据库索引失效Redis的存储结构

网络:

OSI七层模型以及TCP/IP四层模型HTTP和HTTPS区别HTTP报文内容get提交和post提交的区别get提交是否有字节限制,如果有是在哪限制的TCP的三次握手和四次挥手session和cookie的区别HTTP请求中Session实现原理redirect与forward区别DNSTCP和UDP区别安全:如果客户端不断的发送请求连接会怎样DDos攻击DDos预防那怎么知道连接是恶意的呢?可能是正常连接

其它:

说一个你参与的项目、其中作为什么角色遇到最困的问题是什么,怎么解决的你认为自己有那些方面不足平常如何学习的如何评价自己

智力题:

给你50个红球和50个黑球,有两个一模一样的桶,往桶里放球,让朋友去随机抽,采用什么策略可以让朋友抽到红球的概率更高?从100个硬币中找出最轻的那个假币?以上这些考察的知识点,在强大的互联网上都可以搜索到答案,有些答案可能不是很全,所以需要自己去总结,但是对于一些需要知道原理的知识点,还是推荐看源代码或者对于的书,然后总结得到自己的东西,这样既学到真东西,还不会很容易忘。Java基础的知识点推荐《Java编程思想》,JVM的推荐《深入理解Java虚拟机》,Spring原理的推荐《Spring源码深度解析》,对于网站架构的推荐《大型网站技术架构核心原理与案例分析》。欢迎关注Java技术分享微信公众号:JavaQ,获取更多精彩技术分享。
作者:JavaQ
链接:http://www.jianshu.com/p/05f42258850b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: