2017面试遇到的面试题

答案自行百度,本文只记录我不会的问题:

1.mybatis 一级缓存与二级缓存区别

答:一级缓存是sqlsession级别,每个不一样,保存sql语句 默认开启,二级缓存是mapper级别,多个sqlsession可共用一个mapper(二级缓存),保存查询结果 默认不开启  当sql语句查询时,先去一级缓存查是否有相同的sql语句查询过。

2.mybatis #{}与${}区别  

答:前者把传入值当成一个字符串就是在外面再加“”,后者是直接拼入sql语句,前者防止sql注入.

3.mysql查询原理

答:当mysql收到查询语句时,先调用mysql的api进入一级缓存查询是否有相同的语句已执行,如果没有,进行语句的解析,排列,验证,执行。并把结果放到二级缓存

4.hashmap的原理,list和likelist 的区别 肯定会问

5.线程创建的方法

6.notify与notifyAll()区别

答:故名思意 all就是唤醒所有的,但是前者不能指定唤醒哪一个,只唤醒当前线程,就是放到哪个线程,就唤醒哪个线程.

7.spring mvc 原理

8.spring加载类的原理

9.aop和ioc原理

答:动态代理和反射

10.静态代理和动态代理的区别

答:前者在程序运行之前就把类或方法进行代理完毕,而后者是在程序运行时,进行代理。

11.静态变量和实例变量的区别。

12.sleep()方法和yield()方法和wait()方法之间的区别 

答:sleep()释放资源不释放锁 抛出异常

wait()放锁放资源  抛出异常

yield()都不释放  不抛出异常 只是暂停一下本线程执行

13.ArrayList 初始大小 为10    扩容底层是新建一次  HashMap 初始大小是16 

14.三次握手协议 

 

第一次
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

15.TCP与UDP区别

16.HashMap是 线程安全的吗  为什么   String是吗  为什么

17.类的加载过程   从查找说起

18.spring是线程安全的吗

19.ACID  MVCC

20.你在浏览器上输入一个地址进行访问,中间都发生了什么

21.Synchronized和lock的区别  高级一点的就是Synchronized和ReentrantLock的区别

22.介绍一下java虚拟机内存模型,然后继续讨论volatile

22.微服务的优缺点

23.分布式事物     二段提交  本地消息表   消息中间件

24. 分布式锁  主要redis

25.dubbo 的服务降级  拒绝策略  集群容错性

26.索引分类   聚簇索引与非聚簇索引   B树  B+树

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值