京东3.28
springboot有哪些注解?
- @SpringBootApplication
- @Configuration
- @EnableAutoConfiguration
- @ComponentScan
- @Repository
- @Service
- @RestController
- @Controller
- @ResponseBody
- @Component
- @Bean
- @AutoWired
- @RequestMapping
spring、springboot、springmvc的区别?(重点:区别)
springboot > spring > springmvc spring包含了springmvc,springboot包含了spring,在spring基础上做的扩展
怎么解决超卖现象?不是你说的那个hh
怎么设置登录有效时间的?(我没考虑hh)
多线程有关的有哪些类?
- Thread
- Runnable
- Callable
有哪些线程池?
- newFixedThreadPoll:创建固定大小的线程池,
- newCachedThreadPoll:创建一个可缓存的线程池,
- newScheduledThreadPoll:创建一个大小无限的线程池,并且支持周期性执行任务
- newSingleThreadExecutor:创建一个单线程的线程池,
线程池好处:降低资源消耗,提高响应速度,提高线程的可管理性
核心参数:核心线程数、最大线程数
进程同步有哪些方法?(我说互斥量X)
线程同步方式:
临界区:通过多线程串行化来访问公共资源
互斥量:因为互斥对象只有一个,所以可以保证不被多个线程同时访问
信号量:允许同时多线程访问一个资源,但需要控制同一时刻访问此资源的最大线程数量
事件:通过通知的方式保持多线程同步,还可以实现多线程的优先级比较
synchronized和lock的区别?
- synchronized:执行完同步代码后,会自动释放锁;适合少量代码同步;关键字;
- lock:同步需要lock(),结束同步需要unlock();适合大量代码同步;JVM层面,Lock是个Java类;
集合有哪些?线程安全的有哪些?为什么HashMap不是线程安全的?
- List、Set、Map;
- Vector、HashTable、ConCurrentHashMap;
有哪些垃圾回收算法?描述一下标记复制算法
- 引用计数法:引用计数为0时,没有引用,就可以回收,但是不能解决循环引用的问题
- 标记复制算法:把内存分为两块,每次使用其中一块,一块使用完后,把活着的对象复制到另一块去,再把使用的空间一次清理掉
- 标记清除算法:第一次扫描,把活着的对象标记,第二次扫描,把没有标记的对象清除
- 标记压缩算法:对活着的对象标记,然后把所有活着的对象往一端移动,最后清楚边界外的内存
JVM调优可以调什么?有哪些参数可以调?
堆、栈
堆:多少次轻GC后再重GC,默认15次
多少次清除完,压缩一下
新生区和老年区的比值
Survivor区和Eden区的比值
年轻代和老年代的大小
栈:设置线程栈的大小
设计模式了解吗?描述一下懒汉和饿汉?
数据库有哪些索引?
唯一索引、主键索引