- 博客(15)
- 收藏
- 关注
原创 Redis 理解
基于内存、可持久化的key-value非关系型数据库。功能丰富:缓存、数据持久化、支持事务、消息队列等。 数据类型 ①String、②List、③Hash、④Set、⑤ZSet。 适用场景 缓存:减轻数据库压力,提高服务性能; 排行榜:Sortset数据格式实现; 计数器:原子性的自增操作(点赞访问量等); 集合关系:交并补集合的关系,共同兴趣点等; 消息队列:自身的发布订阅模式; session共享:通过保存服务器文件,集群服务中,哪台服务器登入都可以获取服务器信息。 线程机制 单线程,redis6.0后
2022-02-15 11:00:51
663
原创 线程池 理解
一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。 什么是线程,线程和进程的区别是什么? 线程:程序执行流的最小执行单位,是行程中的实际运作单位。 进程:动态的执行过程,活动的实体。 区别:一个应用程序的运行就可以被看做是一个进程,而线程,是运行中的实际的任务执行者。进程中包含了多个可以同时运行的线程。 线程生命周期 ①:new(新建)、②:Runnable(就绪)、③:Running(运行)、④:Blocked(阻塞)、⑤:Terminated(结束) 为什么使用线
2022-02-14 11:36:20
195
原创 JVM 理解
什么是JVM? Java虚拟机。执行java字节码(二进制的形式)的虚拟计算机。 1)编写:编写代码,形成.java后缀的源文件; 2)编译:通过编译器(javac命令)进行错误排查后,编译生成以.class为后缀名的字节码文件,即二进制文件; 3)运行:获取二进制文件后,通过解释器(javap命令),根据不同的系统编译成相应的机器代码。 内部结构 类装载器 加载所有的类,被载入内存中的类生成一个java.lang.Class实例对象。一个类被加载如JVM中,同一个类就不会被再次载入了。正如一个对象有一个
2022-02-12 17:06:26
304
原创 SpringMVC
SpringMVC 一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。在23种设计模式中,是观察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和组合模式(Composite)的一个整合。 直观来说:程序分层、分工合作,既互相独立、又协同合作。 组件 DispatcherServlet:中央控制器,把请求给转发到具体的控制类 Controller:具体处理请求的控制器 HandlerMapp
2021-10-18 11:43:40
100
原创 MySQL
RDBMS 术语 数据库: 数据库是一些关联表的集合。 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。 外键:外键用于关联两个表。 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。 索引:
2021-10-08 14:27:48
155
原创 Mysql——索引
Mysql——索引 作用 海量数据情况下,提高查询效率 分类 存储结构 (注:这里指存储时的保存形式) BTree索引(B-Tree或 B+Tree索引) Hash索引 full-index全文索引 R-Tree索引 应用层次 普通索引 唯一索引 复合索引 物理顺序与键值的逻辑(索引)顺序关系 聚集索引 非聚集索引 普通索引:即一个索引只包含单个列,一个表可以有多个单列索引; 唯一索引:索引列的值必须唯一,但允许有空值; 复合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并;
2021-10-08 14:09:35
153
原创 Spring事务传播机制
Spring事务传播机制 注:该篇文章所测试的皆是运行addEmpByRequired方法。 Propagation.REQUIRED 当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中 /**************************************员工******************************************/ @Service public class EmployeeServiceImpl implements EmployeeServ
2021-09-15 16:43:16
240
原创 Mybatis
Mybatis 支持定制化 SQL、存储过程以及高级映射的半自动轻量级持久层框架。 步骤 ①创建session工厂;->②通过session工厂创建session对象;->③通过session对象获取mapper代理对象;->④通过mapper代理执行crud;->⑤执行成功,使用session提交事务;->⑥执行失败,回滚;->⑦关闭会话。 动态sql执行原理 使用OGNL表达式,从Sql对象中计算表达式值,根据表达式值动态完成拼接Sql。 Mapper接口方法能重载
2021-07-03 15:58:14
168
原创 SpringBoot 理解
SpringBoot 快速开发框架,能够帮助我们快速的整合各种第三方框架(通过maven依赖的方式将比较繁琐的固定包依赖关系通过maven继承的方式全部依赖起来),完全采用注解化,在使用Springboot的过程中基本上没有使用过XML,以简化XML的配置,其内置HTTP服务器(tomcate,jetty),默认嵌入的是tomcate服务器,最终以Java应用程序进行执行,当然也可以部署为传统的war包。 优势 便于搭建基于Spring工程;自动配置;简化配置和依赖管理;内置Tomcat及多种快发框架(My
2021-07-03 15:48:33
267
1
原创 Spring 理解
Spring 个人理解 1.概念 一个轻量级开源框架,拥有多个组件(Spring JDBC 、Spring MVC 、Spring Security(可用作单点登入)、 Spring AOP 、Spring ORM 、Spring Test),主要解决业务逻辑层与其他各个层的耦合问题,因此将面向接口编程贯彻整个系统应用,核心即控制反转Ioc与面向切面编程Aop,最为典型的当属数据库事务的使用,还能整合开源世界众多著名的第三方框架和类库,应该说Spring框架已经融入到了Java EE的各个开发领域。 2.优
2020-09-18 10:39:46
3643
原创 java8 新特新学习
标题:数组中判断同一字段是否重复 List<String> stringList = orderGoodsQueries.stream().map(OrderGoodsQuery::getGname) .collect(Collectors.toList()); long count = stringList.stream().distinct().count(); if (stringList.size() != count) {
2020-08-21 14:07:33
112
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人