core每月释放提币时间(core 币)
java面试题有哪些?
SpringMVC
- 什么是Spring MVC ?简单介绍下你对springMVC的理解?
- SpringMVC的流程?
- Springmvc的优点
- SpringMVC和struts2的区别有哪些?
- 如何解决POST请求中文乱码问题,GET的又如何处理呢?
Spring
- AOP(面向切面编程)的原理
- AOP的使用场景
- IOC(控制反转)的原理
- Spring框架中的单例bean是线程安全的吗?
- 常用的注解
- 用到的设计模式
- Spring的优点(解耦、很多主流框架的集成 低侵入式设计,代码的污染极低 等等)
- SpringBean的作用域
- 事务机制
- Spring的核心类,及作用 如BeanFactory、ApplicationContext、BeanWrapper
- Spring支持的ORM?
- BeanFactory 接口和 ApplicationContext 接口有什么区别 ?
- 依赖注入的方式有几种:接口注入、Setter注入、构造方法注入
Mybatis
- 什么是mybatis?
- MyBatis与Hibernate有哪些不同?
- Mybait的优缺点
- 常见的标签
- 分页及常用的分页插件
- #{}和${}的区别是什么?
- 一对一、一对多的关联查询 ?
- Mybatis的一级、二级缓存:
- Mybatis比IBatis比较大的几个改进是什么?
- IBatis和MyBatis在核心处理类分别叫什么?
- IBatis和MyBatis在细节上的不同有哪些?
- 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
- MyBatis与Hibernate有哪些不同?
Hibernate
- Hibernate工作原理
- Hibernate是如何延迟加载(懒加载)?
- 缓存机制(一级缓存、二级缓存)
- Hibernate的查询方式有几种Hibernate中save、persist和saveOrUpdate这三个方法的不同之处?
- get()与load()的区别
- Hibernate中的SessionFactory有什么作用? SessionFactory是线程安全的吗?
SpringBoot
- 常用的starter有哪些
- Spring Boot 的配置文件有哪几种格式?它们有什么区别?
- Spring Boot 的核心注解是哪个?常用的注解(如@EnableEurekaClient
- @EnableFeignClients @FeignClient @EnableTransactionManagement
- @RestController @Configuration @Order @ControllerAdvice等)
- Spring Boot 需要独立的容器运行吗?( 可以不需要,内置了 Tomcat/ Jetty 等容器。)
- 运行 Spring Boot 有哪几种方式?
- SpringBoot与SpringCloud的关系
- SpringCloud的各类组件(Feign、Eureka、Hystrix等)的理解及使用
Nginx
- Nginx作用
- 常用命令
- 负载均衡的几种常用方式?
- session不同步怎么办
- 前端服务器集群后做负载均衡和动静分离
其他
Thymeleaf、freemarker等模板引擎
NoSQL:Redis、Memcache和MongoDB等的区别、使用
xml解析(DOM解析、SAX解析、JDOM解析、DOM4J解析)
POI实现Microsoft Office格式档案读和写的功能
多线程、线程池的原理及实现
设计模式
Kafka、MQ等消息机制
Sql优化
jvm原理
常用搜索引擎Elasticsearch等
扎实的java基础
程序猿,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。
1.HashMap底层 扩容
JDK1.8的HashMap的底层是数组 链表 红黑树,发生hash碰撞采用拉链法解决冲突。数组中存放的是链表。链表的每一个节点是一个Entry,每个Entry中存放了Key,Value,hash值,还有指向下一个元素的引用。
当hashMap中的元素个数超过 [数组大小*负载因子] ,并且新的Entry落在了非空的位置,就会进行数组扩容,将会创建原来HashMap大小的两倍的数组,将原来的对象放入新的位置上。默认情况下,数组的大小为16,负载因子的默认值是0.75。
需要注意的是,hashmap扩容的判断,不一定是数量占比超过0.75就会扩容,如果初始数组16的时候,直接插入8个hashcode一样的不同的元素,此时链表并不会转换成红黑树,而是扩容,直到容量至少扩容到了64。
参考文章:
2.MySQL索引数据结构
MySQL中是使用B 树作为索引。它是B树的变种,因此是基于B树来改进的。
- B 数的特性B 树索引的所有数据全部存储在叶子节点,并且数据是按照顺序排列的。B 树非叶子节点上不存储数据,仅存储索引。因为数据是按照顺序排列的。所以B 树在范围查找,排序查找,分组查找以及去重查找这些操作上效率很高。
参考文章:
3.索引失效的情况
- 如果条件中有or,即使其中有条件带索引也不会使用(要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引)
- 对于多列索引,不是使用的第一部分(第一个),则不会使用索引(最左前缀原则)
- like查询以%开头
- 如果列类型是字符串,没有加单引号会导致失效
- 如果mysql估计使用全表扫描要比使用索引快,则不使用索引
- 索引列上做计算、函数、类型转换等操作
参考文章
4.最左匹配原则(abcd联合索引,查bcd可以吗)
- 最左匹配原则就是指在联合索引中,如果你的 SQL 语句中用到了联合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个联合索引去进行匹配。
5.数据库并发事务产生的问题
- Read uncommitted 读未提交
- Read committed 读提交
- Repeatable read 重复读
- Serializable 序列化
参考文章
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。