1.list区别
2.聚族索引
3.策略模式
4.AOP失效
5.事务传播机制,实现
6.设计模式
7.反射
8.redis
9.jvm
10.jmm
11.线程池原理
12.sql调优
数据库
13.MyISAM和InnoDB存储引擎的区别
MyISAM和InnoDB是两种不同的数据库存储引擎,它们在多个方面存在显著差异。
以下是它们之间的一些主要区别:
- 数据存储方式不同。MyISAM将数据和索引存储在不同的文件中,数据文件为.MYD,索引文件为.MYI;InnoDB将数据和索引存储在同一个文件中,即.ibd文件。
- 事务支持不同。MyISAM不支持事务处理;InnoDB支持事务处理,并且具有ACID兼容的事务处理能力。
- 锁定机制不同。MyISAM只支持表级锁,这意味着当对一个表进行更新操作时,整个表会被锁定;InnoDB支持行级锁,这意味着锁定的粒度更小,提高了并发性能。
- 外键支持不同。MyISAM不支持外键;InnoDB支持外键,这有助于维护数据的一致性和完整性。
- 性能和优化方式不同。MyISAM适合于执行大量的SELECT查询,因为它支持不加锁的读取;InnoDB适合于执行大量的INSERT、UPDATE操作,因为它支持行级锁定。
- 存储空间不同。MyISAM存储引擎通常需要较少的存储空间;InnoDB由于其事务支持和数据锁定机制,通常需要更多的存储空间。
- 缓存机制不同。MyISAM仅缓存索引,数据读取依赖于操作系统的文件系统缓存;InnoDB有自己的缓存(buffer pool),不仅缓存索引,还缓存表数据。
选择哪种存储引擎取决于具体的应用场景和需求。例如,对于需要事务处理、数据一致性和较高并发性能的应用,InnoDB是更好的选择;而对于执行大量SELECT查询的场景,MyISAM可能更为合适。
14.JAVA中拆箱和装箱
Integer i = 10; //装箱
int n = i; //拆箱
装箱:自动将基本数据类型转换成包装器类型
拆箱:包装器类型自动转换成基本数据类型
装箱过程是通过调用包装器的valueOf方法实现的,
而拆箱过程是通过调用包装器的 xxxValue方法实现的。(xxx代表对应的基本数据类型)。
包装器的缓存范围:
Integer (-128~127缓存)
Boolean: (全部缓存)
Byte: (全部缓存)
Character (
Short (-128~127 缓存)
Long (-128~127 缓存)
Float (没有缓存)
Doulbe (没有缓存)