自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 收藏
  • 关注

原创 MATLAB学习各类函数归类总结笔记(主要图像处理方面)

A开头B开头C开头D开头E开头F开头G开头H开头I开头J开头K开头L开头M开头N开头O开头P开头polyfit函数在MATLAB中polyfit函数是用来进行多项式拟合的。其数学原理是基于最小二乘法进行拟合的。具体使用语法是:p=polyfit(x,y,n);[p,s]=polyfit(x,y,n);其中x、y为拟合坐标点,n为拟合次数;返回值p表示多项式拟合的系数,系数从高到低排序。矩阵s用于生成预测值的误差估计。polyval函数在MATLAB中po

2020-11-06 14:05:12 1587 1

原创 JVM详解

2、在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。这个算法的基本思想就是通过一系列的称为 “GC Roots” 的对象作为起点,从这些节点开始向下搜索,节点所走过的路径称为引用链,当一个对象到 GC Roots 没有任何引用链相连的话,则证明此对象是不可用的,需要被回收。4、设置对象头:初始化零值完成之后,虚拟机要对对象进行必要的设置,例如这个对象是哪个类的实例、如何才能找到类的元数据信息、对象的哈希码、对象的 GC 分代年龄等信息。

2022-10-12 08:36:16 372 1

原创 I/O模型详解

非同步阻塞IO模型中,应用程序会一直发起 read 调用,等待数据从内核空间拷贝到用户空间的这段时间里,线程依然是阻塞的,直到在内核把数据拷贝到用户空间。NIO (Non-blocking/New I/O),Java 中的 NIO 于 Java 1.4 中引入,对应 java.nio 包,提供了 Channel , Selector,Buffer 等抽象。常见I/O模型:== 同步阻塞 I/O、同步非阻塞 I/O、I/O 多路复用、信号驱动 I/O 和异步 I/O==在IO多路复用模型中,

2022-09-20 20:20:54 434

原创 RabbitMQ面经

跟普通集群模式不一样的是,在镜像集群模式下,你创建的 queue,无论元数据还是 queue 里的消息都会存在于多个实例上,就是说,每个 RabbitMQ 节点都有这个 queue 的一个完整镜像,包含 queue 的全部数据的意思。RabbitMQ 有很好的管理控制台,就是在后台新增一个策略,这个策略是镜像集群模式的策略,指定的时候是可以要求数据同步到所有节点的,也可以要求同步到指定数量的节点,再次创建 queue 的时候,应用这个策略,就会自动将数据同步到其他的节点上去了。那这就是第二个坑了。

2022-09-20 10:05:07 946

原创 Spring事务、设计模式以及SpringBoot自动装配原理

相比于使用继承,装饰者模式更加灵活。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。幻读:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。2、Propagation.REQUIRES_NEW:创建一个新事务,若当前存在事务,则把当前事务挂起,即不管外部方法是否开启事务,Propagation.REQUIRES_NEW修饰的内部方法都会新开启自己的事务,且开启的事务相互独立、互不干扰。

2022-09-13 21:39:20 1100

原创 Spring & SpringBoot

单独使用 @Controller 不加 @ResponseBody的话一般是用在要返回一个视图的情况,这种情况属于比较传统的 Spring MVC 的应用,对应于前后端不分离的情况。使用@ControllerAdvice + @ExceptionHandler 这两个注解统一处理异常,这种异常处理方式下,会给所有或者指定的 Controller 织入异常处理的逻辑(AOP),当 Controller 中的方法抛出异常的时候,由被@ExceptionHandler 注解修饰的方法进行处理。

2022-09-13 16:30:37 347

原创 Redis总结

缓存优势:高性能和高并发。2)数据库的吞吐量(QPS)是有限的,通过将数据库中的部分数据(高频访问)转移到缓存中可以有效减少对数据库的请求,转而从缓存中获取信息,提高系统整体的并发。过期字典的键指向 Redis 数据库中的某个 key(键),过期字典的值是一个 long long 类型的整数,这个整数保存了 key 所指向的数据库键的过期时间。当用户需要请求某个数据时,首先会在缓存中进行查找,若缓存中存在该数据则直接返回,若缓存中不存在该数据则进入数据库进行查找,若数据库中也没有该数据则返回空数据。

2022-09-07 15:13:52 312

原创 数据库MYSQL

因为事务A还未提交,所以事务B读到这个数据是脏数据,依据“脏数据”所做的操作可能是不正确的(比如事务A因为异常回滚,此时事务B使用的数据就是错误的)表级锁: MySQL 中锁定粒度最大的一种锁,是针对非索引字段加的锁,对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会出现死锁。3、隔离性 ( I ): 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。InnoDB存储引擎对行级锁和表级锁都是支持的,默认为行级锁。

2022-09-06 16:49:54 463

原创 MySQL精简复习

外连接,返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接)、右表(右外连接)或两个边接表(全外连接)中的所有数据行。(RIGHT指出的是OUTER JOIN右边的表,选择右边表的所有行)(LEFT指出的是OUTER JOIN左边的表,选择左边表的所有行)IN的功能与OR相当,但执行一般比OR更快,IN的最大优点是可以包含其他SELECT语句,能够更动态的建立WHERE子句。19、自联结:假设某物品(ID为DTNTR)存在问题,因此想知道生产该物品的供应厂商生产的其他物品是否有问题。

2022-09-06 15:43:22 746

原创 操作系统(Linux)

5、mv 目录名称 目录的新位置: 移动目录的位置—剪切(改)。步骤: vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q!注意:rm 不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆, 无论删除任何目录或文件,都直接使用rm -rf 目录/文件/压缩包。2、ls/ll(ll 是 ls -l 的别名,ll 命令可以看到该目录下的所有目录和文件的详细信息):查看目录信息。...

2022-08-31 21:34:43 503

原创 计算机网络

TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,提供了两台计算机之间的可靠无差错的数据传输。当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在接收到数据时,也不会向发送端进行反馈是否接收到数据。该协议的通信过程如下:服务器80端口等待请求----》浏览器向服务器发起TCP连接----》服务器接收TCP连接----》浏览器与Web服务器交换HTTP消息----》关闭TCP。...

2022-08-31 20:32:11 537

原创 Java八股整理--java基础

LinkedList 采用链表存储,所以,如果是在头尾插入或者删除元素不受元素位置的影响(add(E e)、addFirst(E e)、addLast(E e)、removeFirst() 、 removeLast()),时间复杂度为 O(1),如果是要在指定位置 i 插入和删除元素的话(add(int index, E element),remove(Object o)), 时间复杂度为 O(n) ,因为需要先移动到指定位置再插入。它是支持面向缓冲的,基于通道的 I/O 操作方法。...

2022-08-31 19:50:30 372

原创 项目笔记---秒杀商城

秒杀商城项目:(1)首先做了登录系统,用户传入的密码会经过两次MD5加密,目的是加强数据安全,然后将用户信息与数据库进行匹配实现一个登录功能;若登录成功则跳转到商品页面,若登录失败提示登录失败并重新跳转到登录页面。(2)登录成功后,展示商品详情页,前端技术:thymeleaf、Bootstrap、JQuery后端技术:SpringBoot、JSR303(服务端的验证框架)、Mybatis中间件 RabbitMQ(消息队列)、Redis(缓存)、Druid(数据连接池)如何应对大并发:1、利用缓存,

2022-08-24 16:09:43 875

原创 RabbitMQ安装(linux)

首先使用xfpt将需要的安装包上传到Linux系统中,然后先安装erlang语言,因为rabbitMQ是用erlang语言编写的。检测erlang是否安装成功:输入erl命令,出现OTP 23和eshell便是安装成功;安装成功后Ctrl+C强制退出。查看rabbitMQ是否启动,显示active就是启动了。安装完成后,继续安装rabbitMQ管控台的插件。安装玩erlang后继续安装rabbitMQ。启动成功后就可以进行访问了,访问路径为。RabbitMQ安装。启动rabbitMQ。

2022-08-22 21:32:50 648

原创 Redis设置失效时间

设置存在值的失效时间:expire/pexpire(秒/毫秒) code+时间(数值)-----------》expire code 10 (code10秒后失效)set code test ex/px(秒/毫秒) + 时间(数值)----------》set code test ex 10 10秒后失效。NX和XX:NX表示key之前不存在的情况下,才能设置成功;查询是失效:ttl code------》-1表示永不失效;code不存在时,第一个语句设置失败,第二个设置成功。...

2022-08-16 14:00:56 6145

原创 redis操作五种数据类型

添加数据:zadd score 1 zhangsan 5 lisi 3 wangwu 8 zhaoliu-----------------》添加后的数据会被进行排序。删除数据: hdel user age----------》 hdel+需要删除对应的redis的key+需要删除对应的hash的key。获取数据(左边开始获取):lrange students 0 3-----》数字表示获取数据所对应的索引。获取hash值:hget user name-----》取值时需要redis和hash的两个key。.

2022-08-16 13:40:59 349

原创 MybatisX快速开发插件安装教程

MybatisX功能:实现接口和映射的xml文件之间的跳转;连上数据库逆向生成代码以及语法提示等等。

2022-08-13 21:18:31 442

原创 SpringBoot2.0数据访问之整合Mybatis

SpringBoot中要整合第三方应用Mybatis,就需要先找到Mybatis对应的starter1. 引入starter

2022-08-13 20:34:50 181

原创 SpringBoot2.0数据访问之整合数据源(Druid)

1. SQL1.1 数据源的自动配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency>为什么导入JDBC场景,官方不导入驱动?官方不知道我们接下要操作什

2022-08-13 16:12:38 609

原创 SpringBoot2.0---------------15、SpringBoot定制化原理

○ 4、WebMvcAutoConfiguration 里面的配置要能生效 必须 @ConditionalOnMissingBean(WebMvcConfigurationSupport.class)○ 2、一旦使用 @EnableWebMvc 、。○ 1、WebMvcAutoConfiguration 默认的SpringMVC的自动配置功能类。○ 3、DelegatingWebMvcConfiguration 的 作用,只保证SpringMVC最基本的使用。+ @Bean替换、增加容器中默认组件;..

2022-08-11 15:31:04 110

原创 SpringBoot2.0---------------14、SpringBoot中Web原生组件注入

● @ServletComponentScan(basePackages = “com.atguigu.admin”) :指定原生Servlet组件都放在那里,改注解放在SpringBoot主程序中。● @WebServlet(urlPatterns = “/my”):效果:直接响应,没有经过Spring的拦截器。1、使用Servlet API (Servlet、Filter过滤器、Listener监听器)多个Servlet都能处理到同一层路径,精确优选原则。● 默认映射的是 / 路径。...

2022-08-11 15:07:58 169

原创 SpringBoot2.0---------------10、SpringBoot普通参数与基本注解

cookie每次发请求都会携带,若cookie没有被禁用,通过cookie中的jsessionid就可以找到session对象,而后通过session对象的get方法就能找打session里面的内容。@PathVariable:映射 URL 绑定的占位符,通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的传入参数中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx”) 绑定到操作方法的传入参数中;例如:通过URL重写:/abc;...

2022-08-08 16:24:45 216

原创 SpringBoot2.0---------------9、SpringBoot请求映射使用与原理

如:@RequestrianMapping及其衍生注解,@GetMapping(处理get请求)、@PostMapping(处理post请求)、@PutMapping(处理put请求)、@DeleteMapping(处理delete请求)● Rest风格支持(使用HTTP请求方式动词来表示对资源的操作)○ 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户。...

2022-08-08 10:31:27 160

原创 SpringBoot2.0---------------8、SpringBoot之Web开发

如图所示:favicon.ico (图标文件)放在静态资源目录下即可,该方法在配置静态资源前缀时,会导致图标无法显示。

2022-08-04 20:35:44 106

原创 创建SpringBoot项目时修改Server URL(下载路径)

使用spring initializr创建Springboot项目时,IDEA默认的Server URL为:https://start.spring.io/将Server URL下载路径修改为阿里云镜像仓库:https://start.aliyun.com/1)从中央仓库进行下载,下载速度慢。

2022-08-04 16:31:05 14091

原创 SpringBoot2.0---------------7、SpringBoot配置文件

将配置类加入容器中(使用@Component),然后绑定配置文件@ConfigurationProperties(prefix = “person”),当配置文件中使用person.xxx是就会进行绑定;由于使用配置处理器只是方便开发,对于开发的业务并无影响,因此在打包时不要把配置处理器打包进去,配置 spring-boot-maven-plugin 以防止重新打包目标将依赖项添加到 fat jar 中。自己写的类中会提示SpringBoot 配置的注释处理器没有在类中找到,解决方法参考官方文档。...

2022-08-04 15:30:50 310

原创 SpringBoot2.0---------------6、SpringBoot开发小技巧

1)引入场景依赖,各个场景的依赖使用可参考2)查看自动配置了那些:第一种方法:自己分析,引入场景对应的自动配置都生效了;第二种方法,在application.properties配置文件里写debug=true进行查看,Negative都是不生效的自动配置,positive是生效的自动配置。3)是否需要修改:● 参照文档修改配置项:第一种,根据Springboot官方文档中的描述进行配置;第二种,自己分析,查询xxxProperties绑定了配置文件的那些进行配置。...

2022-08-04 13:37:50 120

原创 SpringBoot2.0---------------5、SpringBoot自动配置原理

3)第三个合成注解:@EnableAutoConfiguration注解,该注解本身也是一个合成注解@AutoConfigurationPackage+@Import。● 每个自动配置类按照条件进行生效,默认都会绑定配置文件指定的值。@Configuration注解:表示当前是一个配置类,即@SpringBootApplication注解也表示当前的类也可以作为一个配置类。2)第二个合成注解:@ComponentScan注解功能为包扫描,指定扫描路径,即将那些路径中的组件添加到容器中。...

2022-08-03 20:03:23 163

原创 SpringBoot2.0---------------4、SpringBoot底层注解之配置绑定

ConfigurationProperties注解用于自动配置绑定,可以将属性文件(application.properties)中的值注入到bean对象上,该注解使用必须将对象注入到IOC容器中才有配置绑定的功能。方式1:application.properties文件:@ConfigurationProperties+@Component ,@Component 注解用于将类中的对象注入到IOC容器中,@ConfigurationProperties用于将配置文件数据自动填充到bean中。...

2022-08-02 20:34:09 104

原创 SpringBoot2.0---------------4、SpringBoot底层注解之原生配置文件引入

ImportResource注解用于导入Spring的xml配置文件,传统的Spring项目包含大量的xml配置,若将重写为配置类是非常麻烦的事情,因此通过@ImportResource让该配置文件中定义的bean对象加载到Spring容器中。之所以使用该注解是因为在Springboot环境中无法识别Spring的xml配置文件,从而无法将配置文件中的对象加载到容器中。...

2022-08-02 19:55:51 108

原创 SpringBoot2.0---------------4、SpringBoot底层注解之添加组件

Configuration注解用于告诉Springboot这是一个配置类,从而取代了配置文件;在Spring中要需要通过配置文件将属性配置到Spring容器中。两者配置方式如下:

2022-08-02 17:11:11 116

原创 SpringBoot2.0---------------3、SpringBoot自动配置原理

1)父项目做依赖管理

2022-08-02 14:42:43 138

原创 SpringBoot2.0---------------2、SpringBoot入门

在使用maven时,一般不使用idea中默认的maven版本,而是自己下载需要的版本,并在setting配置文件中增加镜像仓库(阿里云)和使用jdk1.8进行编译以及本地仓库的存放位置,具体maven配置可参考

2022-08-02 10:18:19 97

原创 SpringBoot2.0---------------1、Spring与SpringBoot

针对不同版本的SpringBoot其maven版本要求会随之改变,且必须使用java8及以上版本。

2022-07-19 20:10:15 291

原创 MyBatis-----11、MyBatis分页插件

#分页插件使用步骤1、pom.xml中添加依赖2、配置分页插件在mybatis的核心配置文件mybatis-config.xml中配置插件3、使用使用mybatis的分页插件实现分页功能:需要在查询之前开启分页 PageHelper.startPage(int pageNum, int page)在查询功能之后获取分页相关信息PageInfo< Emp> page = new PageInfo(list,5); list表示分页数据,5表示当前导航分页的数量常用数据:pageNum:当..

2022-07-13 21:48:36 203

原创 MyBatis-----10、MyBatis逆向工程

正向工程:先创建java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的逆向工程:先创建数据库表,由框架根据数据库表,反向生成如下资源:Java实体类Mapper接口Mapper映射文件1、在pom.xml中添加依赖和插件2、创建mybatis的核心配置文件mybatis-config.xml3、创建逆向工程配置文件文件名必须是:generatorConfig.xml4、执行MBG插件的generate目标执行之后,逆向...

2022-07-13 20:59:43 579

原创 MyBatis-----9、MyBatis整合第三方缓存EHCache

按照缓存的用途将缓存分为两种,一种是本地缓存;一种是分布式缓存。  本地缓存指的是程序级别的缓存组件,它的特点是本地缓存和应用程序会运行在同一个进程中,所以本地缓存的操作会非常快,因为在同一个进程内也意味着不会有网络上的延迟和开销。本地缓存适用于单节点非集群的应用场景,它的优点是快,缺点是多程序无法共享缓存。  分布式缓存将应用系统和缓存组件进行分离的缓存机制,这样多个应用系统就可以共享一套缓存数据了,它的特点是共享缓存服务和可集群部署,为缓存系统提供了高可用的运行环境,以及缓存共享的程序运行机制。 

2022-07-13 19:26:42 386

原创 MyBatis-----8、MyBatis一级缓存和二级缓存

缓存可以将数据保存在内存中,是互联网系统常常用到的。目前流行的缓存服务器有 MongoDB、Redis、Ehcache 等。缓存是在计算机内存上保存的数据,读取时无需再从磁盘读入,因此具备快速读取和使用的特点.一级缓存是基于 PerpetualCache(MyBatis自带)的 HashMap 本地缓存,作用范围为 session 域内。当 session flush(刷新)或者 close(关闭)之后,该 session 中所有的 cache(缓存)就会被清空。默认情况下Mybatis只开启一级缓存。缓

2022-07-12 21:41:21 354

原创 MyBatis-----7、MyBatis动态SQL

mybatis框架的动态sql技术是一种根据特定条件动态拼装sql语句的功能,存在的意义是为了解决拼接sql语句字符串时的痛点问题。动态sql本质上是映射文件中的一系列标签。接口方法映射文件select * from t_emp where 1=1,该语句中的1=1为恒成立条件,通过恒成立条件可以更好的拼接后续的其余条件(如果后续条件都不成立就不会多出where关键字,或者后续只有某些条件成立不会多出and关键字)且不影响最终的查询结果 where标签中有内容时,...

2022-07-12 19:45:56 274

原创 Java 知识点整理(八股)-------面向对象与面向过程

面向对象与面向过程:面向对象的优点是具有封装、继承、多态的特性,因此容易维护、复用和扩展,可以设计出低耦合的系统;缺点是需要实例化对象,因此性能比面向过程低 面向过程优点是不需要实例化对象,性能高;缺点是不易维护复用和扩展。 类和对象:...

2022-07-11 21:34:20 150

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除