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

面试题收集

2015-08-19 20:32 281 查看
一面,主要注重基础,问得很深很广,压力面试。
1.hashmap、concurrenthashmap底层实现和区别

2.spring框架的原理

3.如何写一个orm框架

4.hibernate一级缓存和二级缓存,hibernate其他缓存

5.hibernate事务传播行为种类

6.springmvc原理

7.restful的好处

8.restful有几种请求,表单如何提交put请求

9.web中安全性问题的考虑,如何防止

10.web系统整体架构

11.hibernate如何实现声明式事务

12.java并发包

13.volatile

14.平常都看哪些书

15.spring底层数据结构

16.如何进行反射,如何提高反射的性能

17.如何实现java的代理,为什么需要实现接口

18.TCP协议三次握手

19.springmvc用过哪些注解

20.springAOP可以使用哪些代理,有什么区别

21.为什么要分三层

这面没有准备好,广度很深度压力很大,建议大家多看看三大框架源码、原理。
二面注重于项目

1.什么是restful web service?

2.并发集合包?

3.项目中使用了哪些数据结构?

4.TCP中断连接四次挥手?

5.MD5加盐

6.https

7.支付宝接口开发

8.知道哪些锁?

9.依旧JDK源码

10.项目遇到什么问题,怎么解决?

也许是觉得一面已经问了很多了,这面又答得比较不错,20分钟就结束了,30分钟出了结果。

面试官10点很准时打来电话,首先让我打开collabedit这个在线写代码平台。

然后就随便聊了一下,整个面试气氛很轻松,给人的感觉不像是在面试,而是在聊天。

之后就出了一个算法题目:如何将一个二叉树的结构信息在网络中从一端传输到另一端。

一面:

1.说说C语言中free和malloc区别
2.你知道基数排序么?
3.说说什么是内存溢出和内存泄露
内存溢出:介绍JVM中7个区域,然后把每个区域可能造成内存的溢出的情况说明
内存泄露:介绍GC 和GC Root不正常引用。
4.看来你对JVM蛮熟悉的啊,那你说说JAVA怎么分配直接内存?
A:JAVA不能直接分配内存吧?
Q:我说是分配直接内存不是直接分配内存。
A:是NIO类的直接内存么?
Q:是的。
A:有点不记得了,能提示下么?
Q:sun的一个包。
A:我想起来了,sun.misc.Unsafe类,那个要通过反射获取吧。平常没怎么用过。
Q:不用反射
A:我咋记得要。
Q:不用的,你再回去看看看(面试官记错,后面他自己纠正错误了)
A:好吧。
5.介绍下NIO
6.能介绍下mybatis的原理么?
从configuration类说起,然后MapperStatement,然后SqlNode解析,然后连接池,然后resultMap映射,balala说了10分钟。

7.网络方面熟悉么?
A:熟悉
Q:那说说TCP/IP 三次握手
8.说说http,tcp,udp之间关系和区别。
9.说说浏览器访问www.taobao.com,经历了怎样的过程。
二面、
1.讲讲spring IOC原理以及生命周期。

2.讲讲mybatis的连接池。

3.讲讲IO里面的常见类,字节流字符流。

4.讲讲NIO。

5.讲讲tomcat和你做的httpServer.

6.你是通过哪些途径学习这些技术。

7.你是否有想过把mybatis实现成分布式吗?
8.java的基础类型和字节大小。

1.Java基础
ArrayList,HashMap等集合框架类,重要基础类String等的处理。HashMap的底层存储结构等。

(也可以顺带考察下对接口,继承,重载重写的基本理解;以及异常处理的注意事项)。

2. 数据结构与算法

常见的查找算法及时间复杂度。

常见的排序算法及时间复杂度。

比较重要的数据结构,如链表,队列,栈的基本理解及大致实现。

3. 多线程问题

1)线程安全问题。 HashMap 是否线程安全,为何不安全。 ConcurrentHashMap,线程安全,为何安全。底层实现是怎么样的。

2)J.U.C下的常见类的使用。 ThreadPool的深入考察; BlockingQueue的使用。(take,poll的区别,put,offer的区别);原子类的实现。

4)各种常见锁使用

如果上面这些掌握很好,还可以看看更深一点的 False Sharing,Cache Line,可见性与原子性等;

4. JVM

Java内存分代模型,GC算法,JVM常见的启动参数; CMS算法的过程。

这块回答较好,也可以只是看毕玄的Java分布式开发或网上文章的学习, 可以结合JVM启动参数常见配置,jstat等命令,看下动手能力,意愿;以及实际线上问题排查。

5.Linux使用与问题分析排查

1). grep,awk,sed; 是否自己写过shell脚本;

2). 常见的cpu load过高,us过高,一般是什么问题。引申出是否用过top,jstat,jstack等。

常见的内存问题一般有哪些。 引申出是否用过free,top, jmap等。

6. 框架使用

spring aop的底层实验原理。 aop与cglib,与asm的关系。

spriong ioc的生命周期,(init-method,intilizingbean接口方法afterPropertiesSet的先后顺序)等。

Hibernate对一二级缓存的使用,Lazy-Load的理解;

7. 数据库相关:

1. mysql存储引擎中索引的实现机制;

2.数据库事务的几种粒度;

3.行锁,表锁;乐观锁,悲观锁

8.网络协议:

HTTP协议;

HTTPS协议,SSL协议及完整交互过程;

9. redis

redis,memcache底层客户端使用一致性Hash,看是否了解;

redis的事件驱动多路复用底层实现;引申到NIO编程, 看对Netty,或mina是否了解。

如果候选者同时用过memcache,redis,看下是否了解两者在使用场景上的区别。以考察使用深度,以及是否有好奇精神。

10. 设计模式与重构

常见设计模式,如singlen,factory,abstract factory,strategy,chain,adaptor,decorator,composite,template,absever等。

重构:重构书籍

11. 学习与进取心

最近上过上哪些技术站点; 最近在看哪些书。

12. 抗压能力及抗压意愿

了解加班情况,了解是否愿意在一段时间996等;

13 稳定性考察

了解家庭婚姻状况, 了解购房及居住地,籍贯情况,了解目前薪资,评估稳定性;

=======

1.进程和线程的区别

2.什么叫线程安全?举例说明

3.OSI七层模型,包括TCP,IP的一些基本知识

4.数据库的锁

5.DFS,BFS算法

6.还有一些诸如collection framework的Java基础

7、http中,get post的区别

其他的面试,感觉问的很有代表性:

 第一面(只记得这么多了)

  1、笔试题第四题实现又口述了下

  2、有个每秒钟5k个请求,查询手机号所属地的笔试题(记得不完整,没列出),如何设计算法?请求再多,比如5w,如何设计整个系统?

  3、比较熟悉什么技术?我说jvm和oracle,就让我画jvm的体系结构,画了之后说各个部分的职责,并扯到运行期优化。

 第二面(没有技术细节,都是泛泛的,但是我回答的比较保守,只觉得能滔滔不绝的说上半小时才敢说看过或了解)

  1、是否愿意去杭州

  2、熟悉各种技术框架么?源码读过么?

  3、数据库了解什么?mysql了解么

  4、前台技术,看我用的ExtJS,就问是否了解JQuery

  5、进现在的公司,觉得对技术是否有提升?

 第三面,此面没有技术问题

 第四面HR(感觉这面问题回答的有点扯,毕竟是这么几年来首次面HR,之前面过2、3个公司,要么很早就挂了,要么感觉流程太长,自己不愿意面下去)

  1、愿意去杭州发展么?我说要考虑,hr就问主要考虑什么问题

  2、从技术角度来说,你觉得你跟你同学比怎么样

  3、你的父母怎么看待你的

1、jvm性能调优都做了什么

  2、高并发情况下,我们系统是如何支撑大量的请求的

  3、集群如何同步会话状态

  4、负载均衡的原理

  5、数据库事务属性

  6、二叉树的遍历算法

  7、hashtable和hashmap的区别

  8、并发、同步的接口或方法

  9、string、stringbuilder、stringbuffer区别

  10、https处理的一个过程,对称加密和非对称加密

  11、线程的几种状态

  12、了解手机开发么

  13、个人优势

  14、与同事沟通的时候,如果遇到冲突了如何解决

  15、工作中觉得哪方面欠缺?

  16、有问题要问么?

  17、期望薪水

  18、为什么要离开现在的公司

  * struts1.2和webwork的区别

  * hibernate和ibatis的区别

  * spring工作机制,IOC容器

  * servlet的一些相关问题

  * webservice相关

  * java基础:jvm,HashSet等等

  * 考察学习新技术的能力

其他:

1. 店铺相关的业务特点决定,有前后端知识是加分项。 如果候选者熟悉javascript。

可以考察:

1) 前后端优化的基本常识,比如js放在后面不阻塞等;原生js的理解,正则,时间冒泡等。

2)firebug,fiddle等调试工具;

3)如果是基本使用,看下ext框架,jquery等熟悉程度。jquery插件机制,sizzle选择器。

如果以上都不错,可以再深入考察

1)作用域链, 闭包的理解。

2)看下是否了解最新的技术。 augularJS, nodejs,cmd规范,amd规范等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: