1.Spring 事务 分别有哪些?最好知道些原理。
2.网页头文件里面keyword 字段动态添加。
3.mysql 事务是怎么处理的。mysql引擎是什么?
- a.Innodb引擎,Innodb引擎提供了对数据库ACID事务的支持。并且还提供了行级锁和外键的约束。它的设计的目标就是处理大数据容量的数据库系统。它本身实际上是基于Mysql后台的完整的系统。Mysql运行的时候,Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是,该引擎是不支持全文搜索的。同时,启动也比较的慢,它是不会保存表的行数的。当进行Select count(*) from table指令的时候,需要进行扫描全表。所以当需要使用数据库的事务时,该引擎就是首选。由于锁的粒度小,写操作是不会锁定全表的。所以在并发度较高的场景下使用会提升效率的。
- b.MyIASM引擎,它是MySql的默认引擎,但不提供事务的支持,也不支持行级锁和外键。因此当执行Insert插入和Update更新语句时,即执行写操作的时候需要锁定这个表。所以会导致效率会降低。不过和Innodb不同的是,MyIASM引擎是保存了表的行数,于是当进行Select count(*) from table语句时,可以直接的读取已经保存的值而不需要进行扫描全表。所以,如果表的读操作远远多于写操作时,并且不需要事务的支持的。可以将MyIASM作为数据库引擎的首先。
- c.大容量的数据集时趋向于选择Innodb。因为它支持事务处理和故障的恢复。Innodb可以利用数据日志来进行数据的恢复。主键的查询在Innodb也是比较快的。
- d.大批量的插入语句时(这里是INSERT语句)在MyIASM引擎中执行的比较的快,但是UPDATE语句在Innodb下执行的会比较的快,尤其是在并发量大的时候。
- e.两种引擎所使用的索引的数据结构都是B+树。
- f.MyIASM引擎,B+树的数据结构中存储的内容实际上是实际数据的地址值。也就是说它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非聚集索引。
Innodb引擎的索引的数据结构也是B+树,只不过数据结构中存储的都是实际的数据,这种索引有被称为聚集索引。
4.网站抗压测试,怎么处理并发问题。
5.你觉得你做的项目中有哪些特别难的地方?
1)当查询数据量较大的时候有时可以考虑分批查询while(true) 循环查询50-100条数据。
6.什么是浮点型?什么是单精度和双精度?为什么不能用浮点型表示金额?
7.正向代理和反向代理 一句话概括。
正向代理代理的是客户端,代表客户端发送请求。反向代理代理的是服务器端,代表服务器端接收请求。
8.HashMap是无序的,LinkedHashMap是有序的。
9.Lombok中@Builder的用法。
10.jdk各版本特性。
11.spring boot 配置http和https
12.HashMap和HashTable的区别。
Hashtable键值都不许为空,HashMap键值都可为空,为空的键只有一个在首位。HashTable直接取对象的hashCode,求位置索引时用取模运算,HashMap是重新计算hash值,求位置索引时求位置索引。HashTable在不指定容量的情况下的默认容量为11,而HashMap为16,Hashtable不要求底层数组的容量一定要为2的整数次幂,而HashMap则要求一定为2的整数次幂。Hashtable扩容时,将容量变为原来的2倍加1,而HashMap扩容时,将容量变为原来的2倍。
13.线程和线程池
14.抽象类和普通类的区别
15.拦截器和过滤器
16.forward和redirect
17.generic array creation 由于Java 的泛型是基于擦除实现,所以Java禁止创建泛型数组。
HashMap<Integer,Integer>[] rows=new HashMap[9]; // 对的
HashMap<Integer,Integer>[] rows=new HashMap<Integer,Integer>[9];// 错的,报错