第七日八股文

1.mysql常见的存储引擎有哪些

        InnoDB:支持事务、外键、行级锁,是mysql默认的存储引擎,适用于并发环境下;

        MyISAM:不支持事务和外键,使用的是表级锁,适用于读多写少的场景;

        MEMORY:使用内存存储,速度快,但是关机数据就会丢失。

2.mysql的事务隔离级别有哪些?

        读未提交:一个事务能够读取到另外一个事务未提交的数据,会存在脏读现象;

        读已提交:一个事务只能看到另外一个事务已经提交的修改,这样可以避免脏读,但是会出现不可重复读;

        可重复读:这个级别下,可以确保一个事务的多个查询操作查询到的数据都是一致的,可以避免不可重复读,但是会出现幻读;这个是mysql默认的隔离级别

        串行化:这个级别可以避免上述的所有问题,但是开销大,速度慢

3.什么是脏读、不可重复读、幻读

        脏读:就是A事务可以读取到另外一个B事务未提交的修改,如果这个时候B事务发生了回滚,没有完成修改操作,这时候A事务读取到的数据就是不一致的;

        不可重复读:就是A事务中有多个相同的查询操作,如果这时候有另外一个B事务对数据进行了修改,就会使得A事务之前读取的数据和之后读取的数据不一致;

        幻读:就是A事务进行查询操作,本来应该只查询到一条数据,但是这时候有另外一个B事务添加了相同查询条件的数据,就会使得A事务再次查询时会看到不同的记录数量。

4.java中的反射是什么?

        反射就是在运行的过程中动态的获取类的结构信息(方法、字段、构造函数等)

        获取Class类的方法:类名.class     Class.forName("类的全路径")    类名.getClass()

5.泛型

        泛型的作用就是在编译时检查类型安全

        泛型擦除:就是在编译的时候,把所有的泛型信息删除,泛型参数在运行时会被替换为其上界(一般是Object)。为什么会有泛型擦除?因为java5之前的版本是没有泛型的,泛型擦除是为了向下兼容之前的版本。

        泛型的上下鉴定符:

                上界限定符: 表示通配符必须是T或者是T的子类

                下届限定符:表示通配符必须是T或者是T的父类

        

你可能感兴趣的:(八股文,java)