摘要: Java锁底层原理 当多个线程需要访问某个公共资源的时候,我们知道需要通过加锁来保证资源的访问不会出问题。java提供了两种方式来加锁, 一种是关键字:synchronized,一种是concurrent包下的lock锁。 synchronized synchronized的作用:保证了原子性、可见 阅读全文
posted @ 2020-09-16 15:50 JavaJayV 阅读(326) 评论(0) 推荐(0)
摘要: 一、基础 maven依赖配置 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</versio 阅读全文
posted @ 2020-09-16 13:37 JavaJayV 阅读(136) 评论(0) 推荐(0)
摘要: 基础 Mybatis是和数据库交互的半自动化的持久化层框架(SQL映射框架),而Hibernate是数据交互框架(ORM对象关系映射框架) Mybatis底层就是对原生JDBC的一个简单封装,只抽取出【写SQL】过程供程序员使用,其他都被Mybatis封装 导包:mysql-connector-ja 阅读全文
posted @ 2020-09-16 13:33 JavaJayV 阅读(214) 评论(0) 推荐(0)
摘要: Nosql:非关系型数据库 分表分库 + 水平拆分 + mysql集群: 在Memcached的高速缓存,Mysql主从复制、读写分离的基础上,由于MyISAM使用表锁,高并发Mysql应用开始使用InnoDB引擎代替MyISAM。现如今分表分库 + 水平拆分 + mysql集群 已经成为解决缓解写 阅读全文
posted @ 2020-09-16 13:31 JavaJayV 阅读(516) 评论(0) 推荐(0)
摘要: 缓存问题 缓存穿透 ​ 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案: 接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截; 从缓存取不到的数据,在 阅读全文
posted @ 2020-09-16 13:29 JavaJayV 阅读(896) 评论(0) 推荐(0)
摘要: Mysql基础 SELECT DISTINCT price FROM product; // 去重查询 truncate与delete的异同: truncate是DDL,操作不会进行存储不能进行事务回滚,而delete是DML,会被回滚 truncate是删除整个表 truncate事务日志少,速度 阅读全文
posted @ 2020-09-16 13:28 JavaJayV 阅读(429) 评论(0) 推荐(0)
摘要: InnoDB两大类索引 聚集索引(clustered index) 也较聚簇索引 普通索引(secondary index) 简单来说,通常主键为聚集索引,其他属性为普通索引 InnoDB规定每个表都必须有聚集索引且只有一个: 如果定义了主键,那么主键就是聚集索引 如果没有定义,第一个非空 uniq 阅读全文
posted @ 2020-09-16 13:24 JavaJayV 阅读(365) 评论(0) 推荐(0)
摘要: 基础知识易错点 面向对象和面向过程的区别 面向过程 :面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。 面向对象 阅读全文
posted @ 2020-09-16 13:22 JavaJayV 阅读(102) 评论(0) 推荐(0)
摘要: Bean的作用域 在Spring的元素的scope属性设置bean的作用域,用来决定bean是单实例还是多实例的 默认情况下Spirng为每个在IOC容器里声明的bean创建唯一一个实例,整个IOC都能共享该实例,且所有getBean() 调用和 bean 引用都将返回这个唯一bean实例,该作用域 阅读全文
posted @ 2020-09-16 13:20 JavaJayV 阅读(188) 评论(0) 推荐(0)
摘要: 一、ThreadLocal是什么 从名字我们就可以看到ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 1、在进行对象跨层传递的时 阅读全文
posted @ 2020-09-16 13:16 JavaJayV 阅读(174) 评论(0) 推荐(0)
摘要: JUC:java.util.concurrent (Java并发编程工具类) 代码:D:\JAVA\Java_Learning\Elipse_Project\workspace200301EE\JUC 一般面试提问:面向对象和高级语法、Java集合类、Java多线程、JUC 和高并发、Java IO 阅读全文
posted @ 2020-09-16 13:13 JavaJayV 阅读(302) 评论(0) 推荐(0)