2017年9月面试

JAVA

1.集合
ArrayList,LinkedList,Vector等区别
HashMap,LinkedMap,HashTable,SortMap,TreeMap等区别
2.代理
答:a.静态代理:
优点:不修改目标对象的前提下,对目标功能进行处理。
缺点:代理对象与目标对象实现相同的接口
b.JDK动态代理:
实现:生成接口的代理类,将AOP逻辑写入代理类,在运行时动态织入AOP,通过反射调用逻辑。
优点:代理对象不需要实现接口,利用static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces,InvocationHandler h )方法生成代理类
缺点:目标对象需要实现接口
c.Cglib动态代理:
实现:在运行期间,目标类的字节码加载后,生成目标类的子类,将切片逻辑加入到子类中。
优点:不需要实现接口
代理工厂需要实现MethodInterceptor接口
缺点:final类不能实现代理
3.线程
1.ThreadLocal:用ThreadLocal修饰的变量,都会为每一个线程创建一个副本。yi空间换时间,保障不发生并发问题。
2.ThreadLocal内存泄漏原因:ThreadLocalMap的生命周期与线程相同,若没有remove()key的话则会导致内存泄漏。
4.锁
答:synchronized原理:
a.当同步对象时,通过monitorenter和monitorexist指令实现;
b.当同步方法时,通过方法修饰符ACC_SYNCHRONIZED实现,在字节码中没有体现,但是在class文件的方法表中,将access_flags字段中的synchronized设置为1,锁的对象为此方法的类对象,调用此方法的对象;
c.当同步代码块时,monitorenter插入在开始,monitorexist插入在结束位置。

redis

1.redis有那些数据类型?
答:a.字符串类型 - 可以存储字符串,json字符串等,最大容量为512MB
b.HashMap -已key ,value 形式存储,key,value都只能为字符串,hashMap大小为2^31-1
c.list - 为一个双向链表,向两端添加元素的复杂度为O(1),通过索引访问就需要从第一个开始查询
d.set - 集合,元素不能重复
e.sortset - 有序集合

2.redis持久化
答:1.filesnapshotting:设置一个save n m ,也就是每过m/n秒后,redis fork一个子进程,子进程会将redis中的数据写入一个RDB的临时文件中,当写完之后,覆盖原来的RDB文件。这样的好处就是copy-on-write。
2.Append-only:当有数据修改时,就会将修改命令记录到AOF文件中。只要设置appendonly yes
appendfsync everysec //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐使用BGREWRITEAOF.

spring

1.spring 容器

2.springMVC
1.多例:@scope,但是多例下普通属性不会公用,静态属性会公用。
2.SpringMVC核心处理流程: a.DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器
b.HandlerMapping处理器映射器,根据请求路径找到相应的HandlerAdapter处理器适配器(处理器适配器就是那些拦截器或Controller)
c.HandlerAdapter处理器适配器,处理一些功能请求,返回一个ModelAndView对象(包括模型数据、逻辑视图名)
d.ViewResolver视图解析器,先根据ModelAndView中设置的View解析具体视图
e.然后再将Model模型中的数据渲染到View上
3.spring AOP
答:1.before
2.afterretruning
3.around
4.spring IOC
答:对于spring来说,就是为了控制对象的生命周期以及依赖。过程:初始化的时候,将对象分解成beanid,beanType,properties.查找的时候就通过反射去创建这个对象实例,并将properties注入到对象属性。
5.spring 事务
一、传播属性:
1.PROPAGATION_REQUIRED :支持当前事务,如果没有,新建
2.PROPAGATION_SUPPORTS :支持当前事务,如果没有,以非事务执行
3.PROPAGATION_MANDATORY : 支持当前事物,没有,抛出异常
4.PROPAGATION_REQUIRES_NEW : 新建事务,存在,挂起当前事务
5.PROPAGATION_NOT_SUPPORTED : 以非事务执行,存在,挂起当前事务
6.PROPAGATION_NEVER : 以非事务执行,存在,抛出异常
7.PROPAGATION_NESTED : 存在,则在嵌套的事务中执行。否则,创建。
二、隔离级别:
1.DEFAULT:默认隔离级别
2.READ_UNCOMMITTED:最低的隔离级别,允许一个事务看到另外一个事务未提交的数据,产生脏读,不可重复读,幻象读取。
3.READ_COMMITTED:提交后才能读。
4.REPEATABLE_READ:可能出项幻象读。
5.SERIALIZABLE:花费最高,最可靠,事务为顺序执行。

分布式

1.分布式锁
redis分布式锁:1.setNx命令,成功获取,失败
2.查询时间是否超时,超时则重新getSet超时时间

2.分布式事务
a.两阶段提交协议:首先需要一个协调器。1.客户端发请求到协调器;2.协调器记录prepare日志。然后将prepare信息发送给事务执行器;3.事物执行器记录prepare日志,执行本机事务,但是不commit。执行成功发送yes,否则no;4.然后协调器根据所以事务执行器的返回结果来确定是commit,还是rollback.
缺点:多次多节点通信,通信时间太长;相对的事务执行时间变长,锁定的资源也变长;
b.三阶段提交协议:比两阶段提交协议增加了1.cancelCommit,协调器发请求确认是否能执行事务;2增加了超时处理;
c.利用消息队列实现两阶段提交协议;

mysql

1.数据库引擎
答:innerDB ,MyISAM,
区别:innerDB有事务,MyISAM没有事物;innerDB支持行级锁,MyISAM不支持;innerDB支持外键,MyISAM不支持;
2.数据库索引

3.数据库优化

协议

1.http/https
https需要CA证书,是SSL安全加密,默认端口443;
cookies:保存在客户端,内容:名称,值,过期时间,域和路径。不安全,可以篡改。保存数据大小不能超过4k.
session:保存在服务端,有服务端产生。
Http1.x:同一时间对单一的域名访问数量有限制;
Http2.x:使用了多路复用,对单一的http链接发起多重的请求,相应。在应用层(Http2)与传输层(TCP/UDP)中间增加了一个二进制分帧。
Http2:1.单链接多资源的方式,减小服务端的压力。内存占用更少,吞吐量更高
2.TCP/IP
组成:1.连路层:
3.RESTFUL

RPC框架

设计模式

秒杀系统

1.对现有业务的冲击
2.对数据库的负载
3.对带宽的要求
4.直接下单

Rabbitmq

a.生产者确认:
1.通过事务保证一致性:channel.txSelect();channel.txCommit();
2.设置channel的confirm模式:channel上的消息都会生成一个唯一id(从1开始),一旦消息推送到队列上,broker代理服务器就会像生产者推送一条消息,保护消息的唯一id
b.消费者确认:令noAck=false,当消费者调用完业务逻辑后,会显示的调用basicAck,这样mq就会将队列中的消息删除。如果此时消费者断开,mq会将消息重新放入队列安排下一次消费。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,717评论 6 342
  • 什么是Spring Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Jav...
    jemmm阅读 16,438评论 1 133
  • 今天终于可以不用等到快睡觉时才写了。文章最开始,感谢科技的发展,现在已经在北京的地铁上了,才有时间悠哉悠哉的写东西...
    贝贝向前冲阅读 198评论 0 0