一:OSI七层模型以及各部分功能:
物理层,主要作用:二进制与电信号相互转换
数据链路层:主要作用:下层信号封装为数据报,工作物件交换机
网络层:主要作用:下层信号封装为数据包,工作物件路由器
传输层:主要作用:建立链接传输,主要内容:TCP、UDP协议于此层工作
会话层:主要作用:发起回话和接受请求(通过MAC地址或者IP来认识)
表示层:主要作用:对接收的数据进行加密、解密,压缩与解压缩等。
应用层:主要作用:终端应用,人们所看到的的具体应用,如QQ,浏览器等
二:栈与堆的区别(java)
1.从线程共有私有上来讲,堆是线程共有,而栈,虽然分为本地方法栈和虚拟机栈,但是都是线程私有的。
2.从进出顺序来讲,堆同于队列,先进先出,后进后出,栈先进后出,后进先出
3.从存储数据类型来讲,栈存储的是对象的引用和基本类型变量(变量指向堆内存中的变量),而堆存储的是New出来的真实对象和数组
三:Mybatis中一级缓存与二级缓存的区别?如何清除一级缓存?
1.一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。
2.二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的
3.清除一级缓存:更新即可清除,使用(update语句执行commit提交)。
四:HashMap能嵌套吗?最多嵌套几层?
能嵌套,理论可以无限嵌套,上图如下:
五:String为什么不可变?能被继承吗?
因为底层由final修饰,无法被修改,也因为底层由final修饰,无法被继承。
(补充:final修饰方法,可以被继承,但是继承之后无法被重写)