做为程序员,免不了要经历面试这关,虽然平时工做勤勤恳恳,可是面试上面未必能展现的出来,好比平时都是作增删改查的业务系统,面试官非要问你如何处理高并发大数据,原本是写java代码,非要问你大型网站架构,这些问题防不胜防,本文就本身的面试经验来总结一下,抛砖引玉。html
最近阿里集团代码开发规约又一次火爆朋友圈,其实进来了才能体会到开发规约插件的好处,因此这里总结了一下面试官常问的问题,被问到了就大赚,但愿你们能来杭州和北京一块儿工做!java
这是本人面试了三年获得的面试题库:node
heap:
先进先出,没有结构,查询慢,线程共享的,存储数值,等待垃圾回收程序员
方法区, 存储static惟一变量, 被全部线程共享web
http://image.beekka.com/blog/201311/bg2013112905.jpg面试
http://www.cnblogs.com/lewis0077/p/5143268.htmlredis
快速排序:
http://baike.baidu.com/li nk?url=pqzkGbx5-idKz3_VJ1FtAS2O3SJZhsNWset3-0Tcme_d1XlFErKA50VexUcLCxW46cD8VaxhoQHkiHX6-4sJrYbP5aj77RiCCHd09uJQR0_NQoLMTwS6vxTrC-6Ti-ZDJquSjF3VoUzm9Cnoq3blGK算法
单例模式(单例三个)
http://www.cnblogs.com/yinxiaoqiexuxing/p/5605338.html 方法4数据库
枚举实现单例模式:
http://www.cnblogs.com/yangzhilong/p/6148639.html设计模式
StringBuffer 线程安全和 StringBuilder非线程安全
Builder 设计模式
适配器模式(好比实体类装换):
http://blog.csdn.net/jiangxishidayuan/article/details/51050431
Composite组合模式: 树形
http://blog.csdn.net/jiangxishidayuan/article/details/51045451
Observer观察者模式: 区别对待观察者, java默认的观察者接口
http://blog.csdn.net/jiangxishidayuan/article/details/51045236
装饰器模式(装饰器和被装饰对象接口相同):
http://blog.csdn.net/jiangxishidayuan/article/details/51965416
桥接模式:
http://blog.csdn.net/jiangxishidayuan/article/details/51944928
短信邮件 发送 紧急消息, 普通消息, 进行桥接
责任链模式:
Shiro的权限框架
http://blog.csdn.net/jiangxishidayuan/article/details/51953648
Iterator 模式:
本身写的分段List,Set迭代器
http://blog.csdn.net/jiangxishidayuan/article/details/51954773
Command 命令模式:
http://blog.csdn.net/jiangxishidayuan/article/details/51957617
策略模式:
http://blog.csdn.net/jiangxishidayuan/article/details/51967015
工厂方法:导出不一样格式的文件
一个产品的时候, 返回不一样的工厂
抽象工厂:不一样格式的文件,前 缀也不一样
多个产品,返回不一样的工厂
代理模式:
java 动态代理
http://blog.csdn.net/jiangxishidayuan/article/details/51942658
状态模式:
Spring 状态框架
http://blog.csdn.net/jiangxishidayuan/article/details/52003154
JVM 垃圾回收算法:
计数器法, 标记清除, 标记整理, copy 算法 (对象区和空闲区互相换),
java中可做为GC Root的对象有
1.虚拟机栈中引用的对象(本地变量表)
2.方法区中静态属性引用的对象
3. 方法区中常量引用的对象
4.本地方法栈中引用的对象(Native对象)
分代算法:
年轻代,年老代, 永久代
http://www.cnblogs.com/andy-zcx/p/5522836.html
类加载机制:
http://www.cnblogs.com/ITtangtang/p/3978102.html
AOP:
http://www.jb51.net/article/81788.htm
依赖注入:
http://blog.csdn.net/u010330043/article/details/51287113
排序算法(jdk sort):
http://blog.csdn.net/hguisu/article/details/7776068/
https://img-blog.csdn.net/20170205225535033?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDg1MzI2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
ln A B B是连接, A是实质文件
java内存模型:(调试工具)
http://blog.csdn.net/u012152619/article/details/46968883
tomcat调优:
http://blog.csdn.net/jiangguilong2000/article/details/12523771
jvm参数, 链接数, 线程数,缓冲池,数据库链接池
自旋锁:
http://blog.csdn.net/sunmenggmail/article/details/8105279
@transanal
http://blog.csdn.net/gdfgdfk/article/details/50329859
数据结构:
树形遍历: http://www.cr173.com/html/18891_1.html
堆排序:
AVL:
红黑树:
B-树:
乐观锁和悲观锁(CAS):
http://www.javaweb1024.com/java/JavaWebzhongji/2015/09/06/847.html
版本号和时间戳实现乐观锁
Volatile 原理:
http://www.cnblogs.com/zhengbin/p/5654805.html
JVM 卡顿调优:
-Xincgc
开启增量gc(默认为关闭);这有助于减小长时间GC时应用程序出现的停顿;但因为可能和应用程序并发执行,因此会下降CPU对应用的处理能力
java 8:
http://www.cnblogs.com/moonandstar08/p/5001914.html
分布式锁: 略
ConcurrentHashMap:略
TreeMap:
http://blog.csdn.net/chenssy/article/details/26668941
java发现死锁:
jstack -l pid 列举出线程
线程状态:
java.lang.Thread.State
线程池:
http://blog.csdn.net/sd0902/article/details/8395677
kafka 和 redis
http:三次握手
http://www.cnblogs.com/maybe2030/p/4781555.html
负载均衡, 断路器, 服务注册原理
Spring 循环依赖:
Spring cache
http://note.youdao.com/noteshare?id=845baac77faa10ec21932a7b3eb0063f
//应聘阿里系请将简历发送到以下邮箱:
//wwh144953@antfin.com
应聘阿里系请加微信: 13820802870
应聘头条系请发送到邮件: wangwenhan@bytedance.com
###微信公共号: codog代码狗