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

Java面试总结

2016-06-26 13:21 337 查看

一、语言基础:

分为三个等级:

1、初级:语法考察

a,如一段代码是否能够成功编译,输出结果是什么;

b,不同关键字的含义,某关键字的用法

常见问题:

1)Inner Class,Static Nested Class的使用;

2)final,finally,finallized关键字的区别;

3)volatile ,synchronized关键字的使用;

4)static关键字都有哪些使用场景(说出static block及格,说出import static加分)。

2、中级:库或框架的使用,或者Java语言技术栈的使用层面

a,库的使用(Java语言标准库)

1)关于jdk中常见的framework,比如IO,Collection,juc并发框架等;

2)注意HashMap和ConcurrentHashMap的实现原理;

3)juc,JDBC,servlet等;

b,框架的使用【Spring ,SpringMVC和MyBatis(Hibernate)使用,原理】

1)对Spring,IOC和AOP的实现原理重点;

2)AOP掌握动态Proxy和CGLB两种实现方式;

3)对ORM框架,掌握MyBatis和Hibernate的实现原理和不同;

3、高级:语言的底层实现或设计思想

a,Java是以JVM为基础的,会问jvm的运行时内存区域,jvm内存模型,GC机制,jvm的性能调优,类加载器机制,JIT技术等;

b,为什么oracle 的Java虚拟机叫做HotSpot;

c,了解Java每个大版本都有哪些重大更新。

二,手写代码:

分为三类:

1,算法题:a,排序;b,查找(二分查找,快排);c,斐波那契(中等)

2,数据结构题:a,单链表的反转;b,判断单链表是都相交,c中等难度(二叉树,反转二叉树,二叉树的层级遍历)

3,手写JDBC查询,生产者消费者原型,单例

手写代码特点:我们写出来以后,面试官往往会追问,你有没更优的写法,所以,平时的学习积累一定要学会举一反三。

三、设计模式

23中设计模式,能说出10中以上的模式及其思想,算及格,下面举例:

1、创建类的模式:

a,单例模式:线程安全的单例,在Java中双重检查加锁为什么会失效?

b,工厂方法,抽象工厂:工厂方法和抽象工厂的区别;

2、结构类模式:Adapter适配器,代理模式Proxy,装饰器模式,外观模式;

3、行为类模式:观察者模式,状态模式,模板方法,策略模式,责任链模式(在jetty中的体现)

四、扩展学习:

1、Linux Shell编程;

2、Python脚本编程;

3、SQL关系数据库;

4、Http TCP网络协议;

5、反向代理;

6、分布式缓存

下面按照客户端数据的流入先后,介绍:

1、Nginx、Tomcat、Apache、Hetty等web服务器

a,Nginx可以作为反向代理,所以位于整个服务器的最前端;

b,Tomcat或者Apache可以负责转发请求给应用服务器;

c,Jetty可以在分布式集群中帮助服务器间通讯;

需掌握Nginx与Apache的原理及不同,Jetty的原理。

2、线程池、NIO框架等

掌握java处理高并发的原理,并了解其他的常见方式,或Node.js的基于event的方式以及Python,golang的协议方式,由于应用服务器的性能瓶颈往往在IO上,所以还需要掌握java常见的NIO框架,如Netty等

3、消息中间件及分布式框架

熟悉常见的消息中间件,如kafka,以及常见分布式框架Zookeeper等

4、缓存

缓存是应用服务器(集群)与数据服务器之间的桥梁,常见的有MemCacheD和Redis,掌握MemCacheD和Redis的原理及不同,Redis持久化方式。

5、数据

1)关系型数据库:常见的SQL语句,及性能调优,(关系型数据库也可以做分布式,即单表超过百万记录后的分库分表)

2)NoSQL:掌握Hadoop,Spark的知识(数据库工程师可以好好学习)

五、HR面试

1、考察内容:

HR主要考察你技术之外的素质,比如:

a,性格是否能够融入公司;

b,是否认同企业文化;

c,与人沟通交流会不会有问题;

d,面对困难的应对方法和态度。

2、向HR该问的和不该问的

a,薪资最好不问,等拿到offer再问;

b,多问一些企业文化方面的东西,可以加分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息