-
请你说说内存管理?
- linux操作系统采用段页式内存管理方式
- 页式内存管理方式可以有效的提高内存利用率
- 段式内存管理能反映程序的逻辑结构并有利于段的共享
- 段页式存储管理方式就是先建好用户程序分为若干个段,再把若干段分为若干页,并为每个段赋予一个段名
-
请你说说IO多路复用(select、poll、epoll)?
- IO多路复用指的是单个进程或者线程能同时处理多个IO请求,select、poll、epoll是linuxAPI提供复用的方式
- 本质上是由操作系统内核缓存IO数据,使得单个线程能监视多个文件描述
- select是将装有文件描述符的集合从用户的空间拷贝到内核空间,底层是数组,poll和select差距不大,但是底层是链表,这就代表没有上线,但select有上限,而select是有上限的
- epoll则是回调形式,底层是红黑树,避免轮询,时间复杂度O(1)
-
请你说说MySQL的事务隔离级别
- 事物隔离级别是为了解决脏读、不可重复读、幻读、脏读
- 脏读:一个事物读取了另一个事物未提交的数据
- 不可重复读:事物A两次读取的数据不一致,读第二次之前可能有其他事物修改了这个数据并提交了
- 幻读:事物A两次读取数据库,两次查询结果的条数不同(行数变了就是幻读,数据变了就是不可重复读)
- 事物隔离级别有:读未提交、读已提交、可重复读、串行化
- 读未提交:以上的三个问题都不能解决
- 读已提交:只能解决脏读
- 可重复读:mysql默认隔离级别、能解决脏读和不可重复读
- 串行化:都可以解决
-
请说说你对反射的了解?
- 反射就是在程序运行期间动态获取对象的属性和方法的功能叫,spring的xml就运用了动态代理
- 获取Class的三种方法:getClass();xx.Class();Class.forName();
- 优点:运行期间动态获取类,提高代码灵活性
- 缺点:性能比直接的代码差