自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java知识学习与总结

Java_Study_Think

2022-03-14 19:41:22 4193

原创 计算机仿真程序模拟新型冠状病毒扩散

新型冠状病毒还在不断地扩散,感染者的人数还在不断地增加,请大家相互转发下面的视频,提高人们的病毒防范意识!!!!! 计算机仿真程序告诉你为什么现在还没到出门的时候!!! 下面展示两张病毒扩散的照片-源码链接(不是我写的,我也是在往上找的,互相学习一下)-...

2020-02-06 21:09:02 2873

原创 并发编程艺术之2.java并发机制的底层实现原理

2.1 volatile的应用在多处理器的情况下,为了保证数据一致性,实现缓存一致性协议,处理器通过嗅探在总线上传播数据来检查自己缓存的值是否还有效volatile的两条实现原则:(1)Lock前缀指令会引起处理器缓存回写到内存lock指令可以让处理器独占内存,锁定这块内存区域的缓存并回写到内存,(它会锁住总线,导致其他cpu不能访问总线)缓存一致性协议会保证原子性,会阻止同时修改由两个以上处理器缓存的内存区域数据Lock前缀指令+缓存一致性协议(2)一个处理器的缓存回写会导致其他处理器的缓存

2021-05-03 07:56:08 183

原创 剑指Offer(二):替换空格

一.前言本系列文章为《剑指offer》算法讲解。共享资源:资源链接二.题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。1.题目分析(1)首先我们看到这个题目时,我们应该想到,我们如何对一个字符串里面的字符进行操作,如果直接对字符串进行操作的话,那么我们能做的只是对字符串进行拼接,转换等一系列整体的操作,无法对里面单独的字符进行操作。(2)所以我们只能把字符串转换成我们能操作的数据.

2020-12-22 23:14:58 203

原创 剑指offer(一):二维数组中的查找

一.前言本系列文章为《剑指offer》算法讲解。共享资源:网址二.题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。1.题目分析(1)首先分析一下二维数组的特点:从左到右是递增的,从上到下是递增的。(2)其次我们对二维数组采用“大事化小,小事化了”的思想,就是我们把复杂的问题简单化,我们可以先把二维数组简化为一维数组,因为我们每次对里面数组的操作都是从一维数组开始的。.

2020-12-22 07:48:35 195 3

原创 曹先生之剑指offer算法题刷题笔记

前言由于自己在算法方面比较弱,所以想在这个平台借助《剑指offer》做一次系统的算法学习,本系列的文章主要是利用Java进行编写,里面会包含我个人对算法的理解,我尽量描述的让所有人都能看的懂。如果本系列文章能够帮助大家的话,后续会出一个Python版本的。自己的学习资源分享给大家1.就是我在一个大佬的公众号里面下载一个算法总结,很好,都是干货,感兴趣的可以下载,下面有链接(书籍链接:算法小抄,labuladongsa算法小抄的Github的地址)2.就是我在CSDN里面看到目前对《剑指offer》

2020-12-10 07:40:56 176

原创 spring aop 统一进行日常及异常的处理

AOP就是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP使得业务逻辑各个部分的耦合度降低,提高程序的可重用性。为什么使用AOP?我们写的代码难免有些运行错误,通常情况下,我们需要对错误进行包装,不能直接返回异常信息发给前端。但是我们的前端很容易臃肿,就像我在公司里面写的一样 @GetMapping(value = "kmp") public BaseResponse kmp(@RequestParam String big, @RequestParam String .

2020-12-08 06:41:36 490

原创 SpringBoot默认使用HikariDataSource数据源

定义:数据源:存储了所有建立数据库连接的信息。通过提供正确的数据源名称,你可以找到相应的数据库连接。数据源负责维持一个数据库连接池,当程序创建数据源实例时,系统会一次性的创建多个数据库连接,并把这些数据连接保存在连接池中。当程序需要进行数据库访问时,无须重新获得数据库连接,而是从连接池中取出一个空闲的数据库连接,当程序使用数据库连接访问结束后,无须关闭数据库连接,而是将数据库连接归还给连接池即可。通过这种方式可以避免频繁的获取数据库连接,关闭数据库连接所导致的性能下降。全局配置文件applicati

2020-12-08 06:41:04 4124

原创 spring事务管理

Spring中的@Transactional(rollbackFor = Exception.class)属性详解事务管理方式:事务管理对于企业应用来说至关重要,即使出现了数据异常,也可以保证数据的一致性。spring支持编程式事务管理和声明式事务管理两种方式:(1)编程式事务管理:使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。但是对于编程式的事务管理,spring推荐使用Transactiontemplate。(2)声明式事务.

2020-12-06 14:56:25 65

原创 使用spring框架实现数据库事务处理

事务对于数据库来说是,是对sql语句的一系列操作,这些操作被组织成为一个事务。事务具有原子性的,要么全部执行,要么不执行。若事务中sql语句发生错误,事务需要对已经执行的sql进行回滚操作,撤销先前对数据库的操作,防止数据库出现错误状态。JDBC对数据库事务处理的支持jdbc本身提供了对数据库处理的支持,使用java.sql.Connection对象完成事务的提交。使用Connection提交数据库事务处理如下:发现里面有一个方法叫setAutoCommit(),设置为true时,就是自动提交sql.

2020-12-06 14:53:04 484

原创 spring事务的传播属性是什么?它会影响什么?

所谓spring事务的传播属性,就是定义在存在多个事务同时存在的时候,spring应该如何处理这些事务的行为。什么是事务传播行为?事务传播行为用来描述由某一个事务传播行为修饰的方法被嵌套进另一个方法时,事务如何传播?例如下面的代码:@Transaction(Propagation=XXX)public void methodA(){ methodB(); //doSomething}public void methodB(){ //doSomething}m.

2020-12-06 14:47:23 505

原创 NIO是什么?适用于何种场景?

NIO与IO的最大区别就是:当读取数据的时候,NIO读取之后需要缓冲,是面向缓冲区的,而IO不需要缓冲,是面向流的。IO是阻塞的:就意味着当一个线程调用read()或write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程在此期间不会做任何事情。NIO的非阻塞模式,使一个线程从某通道发送请求数据,但是它仅能得到目前可用的数据,如果没有适用的数据,就不会读取数据,而不是保持线程阻塞。线程通常将非阻塞IO的空闲时间用于在其他执行IO操作,所以一个单独的线程可以管理多个输入和输出通道。.

2020-12-06 14:42:29 1733

原创 rpm安装jdk上线项目(将自己的项目发布到服务器上)

下载jdk rpm ,去oracle官网下载即可。安装java环境检查当前系统是否存在java环境,java-version如果有的话,就需要卸载rpm -qa|grep jdk //检查jdk版本信息rpm -e --nodeps jdk_ //强制移除rpm -ivh jdk-8u221-linux-x64.rpm //安装jdk配置环境变量: /etc/profile (和windows配置一样)vim /etc/profile让这个配置文件生效, so.

2020-12-06 14:37:49 101

原创 Linux中进程管理

命令ps 查看当前系统中正在执行的各种进程的信息。-a : 显示当前终端运行的所有的进程信息(当前进程)-u : 以用户的信息显示进程-x : 显示后台运行的参数ps -ef|gref mysql #看父进程我们一般可以通过目录树结构来查看#进程树pstree -pu-p 显示父id-u 显示用户组...

2020-12-06 14:34:54 70

原创 Linux中磁盘管理

df(列出文件系统整体的磁盘使用量),du(检查磁盘空间使用量)Mac或者想使用Linux挂载我们的一些本地磁盘或者文件挂载:mount卸载:umount -f [挂载位置] 强制卸载

2020-12-06 14:32:28 60

原创 Linux账号管理学习

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进行系统。添加用户 useradd命令useradd -选项 用户名-m: 自动创建这个用户的主目录 /home/qinjiang理解一下本质:Linux中一切皆文件,这里的添加用户说白了就是往某一个文件中写入用户的信息了。cat /etc/password删除用户 userdeluserdel -r qinjiang :删除用户的时候,也要删除它们的文件.

2020-12-06 14:29:46 100

原创 Linux中文件属性与修改学习

在linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。如:实例中,boot文件的第一个属性,也就是第一个字母用"d"表示。“d”在linux中代表该文件是一个目录文件。当为[d]则是目录当为[-]则是文件若是[l]则表示为链接文档接下介绍一下chmod:更改文件9个属性(必须掌握)你没有权限操作此文件chmod [-R] xyz 文件或目录进行测试一下:...

2020-12-06 14:21:51 187

原创 将本地项目上传到github的仓库中

mkidr test 创建一个本地文件夹(这里比如创建一个名为Test的文件夹)cd test通过git init来将将要上传的项目变成git可管理的仓库git status 产看状态git add .将该目录下的所有文件添加到仓库git commit -m "first commit"把项目提交到提交到仓库中在github上面创建一个仓库git remote add origin 仓库地址:在github创建好仓库之后与本地仓库进行关联git push -u origin master:.

2020-12-06 14:12:27 99

原创 微服务雪崩

一:服务雪崩导致服务雪崩的原因有如下三种:1.由于服务自身的原因,比如缓存击穿,大量的请求,程序bug,硬件故障等导致服务不可用,导致雪崩2.由于用户或者代码逻辑重试,加大了流量,导致服务雪崩3.由于资源耗尽,导致服务调用者不可用,就是下面的雪崩效应的情况。二:什么是雪崩效应?雪崩效应就是因为一个服务宕机后,另外的服务还在相继的调用它,导致其他的服务也宕机,这就是雪崩效应。这个图就是对雪崩效应的说明,刚开始微服务A宕机,但是微服务B还在调用它,由于微服务A已经挂了,所以微服务B调用微服务A必

2020-12-05 14:27:48 734

原创 java中空指针异常情况以及解决办法

概述:出现空指针异常,常常是因为我们调用的对象是空的而抛出的异常。问题描述:第一种: out.println(request.getParameter("username")); 如果request里面并没有username的值,这时无法对空对象进行操作的,就会抛出异常。第二种:String userName = request.getParameter("username");   If (userName.equals("root"))   {....} 如果没有username

2020-12-05 13:42:54 9496

原创 redis为什么需要连接池?

首先redis是单线程的,但是当我多个同时连接redis时是不是要排队吗?然后执行命令,和我们执行单个全局连接直接去一个执行redis指令,感觉差不多吗?此言差异,虽然redis是单线程的,但这并不表示使用连接池不能提高效率,只是不能通过多线程的方式提高效率。redis连接池单连接的效能提高很多,要了解为什么redis连接池能够这么大幅的提高性能,就要了解单连接的性能瓶颈在哪里?单线程不是redis的性能瓶颈,对redis而言,有两个性能所在,一个是计算机执行命令的速度,另一个是网络通信性。很显然,执

2020-12-05 13:36:30 2219

原创 Nacos源码学习笔记

1.源码入口在spring.factories文件中,首先进入EnableAutoConfiguration=\下面的NacosDiscoveryAutoCOnfiguration类2.开始分析在NacosDiscoveryAutoConfiguration中有三个Bean,首先进入NacosAutoServiceRegistration----》进入该类只会,会发现它继承一个AbstractAutoServiceRegistration父类----》在父类中,它实现了一个Application

2020-12-05 11:21:37 432

原创 Spring中的spring.factories文件(Spring如何加载第三方Bean)

引言在springBoot中,它自动扫描包的时候,只会扫描自己模块下的类。问题如果我们不想被Spring容器管理的Bean的路径下不再SpringBoot的包扫描路径下,怎么办呢?如何加载别的第三方Bean呢?解决首先我们创建一个工程,另外创建一个与启动类不在一个级别的目录。第一种方法就是使用在启动类上加上@Import注解。@Import(value = {Test.class})第二种方法就是创建spring.factories文件现在我们将其改造一下,采用spring.fac

2020-12-05 09:16:39 3691

原创 pom文件中parent标签的作用

好文章-依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version></parent>它的作用就是:1.使用它之后,常用的包依赖可以省去version标签。.

2020-08-30 17:45:18 3149

原创 EnableEurekaServer注解

个人觉得注解介绍的好文章首先看注解的源码注意到里面的EurekaServerMarkerConfiguration类:向容器中注入EurekaServerMarkerConfiguration.Marker()类,作用是激活配置类

2020-08-30 17:42:14 959

原创 MQ消息封装工具类---Message

public class Message implements Serializable{ //执行的操作 1:增加,2:修改,3:删除 private int code; //数据 private Object content; //发送的routkey @JSONField(serialize = false) private String routekey; //交换机 @JSONField(serialize = fa

2020-08-30 17:38:54 808

原创 每秒能产生26万个ID的工具类----IdWorker

/** * <p>名称:IdWorker.java</p> * <p>描述:分布式自增长ID</p> * <pre> * Twitter的 Snowflake JAVA实现方案 * </pre> * 核心代码为其IdWorker这个类实现,其原理结构如下,我分别用一个0表示一位,用—分割开部分的作用: * 1||0---0000000000 0000000000 0000000000 0000000000 0 -.

2020-08-30 17:27:49 247

原创 快速搭建PSringboot项目并继承swagger视频链接(非常好)

https://www.bilibili.com/video/BV1NC4y1W7uH?from=search&seid=17792002969687656173

2020-08-26 21:33:07 183

原创 Failed to load class “org.slf4j.impl.StaticLoggerBinder“.

当我们运行程序时会发现控制台出现 “Failed to load class “org.slf4j.impl.StaticLoggerBinder”.”,(见下图),这种错误就是由于缺失日志依赖。只要加上依赖就可以了,依赖有:slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar,slf4j-jdk14.jar或 logback-classic.jar,但是我们只能加一个,多加一个就会出现冲突。但是为什么会出现冲突呢?因为我们可以通过源码可以看到,在spri.

2020-08-17 07:50:43 176

原创 在idea中查看某一个类的子类的快捷键

使用ctrl+Alt+B快捷键查看某个类的子类

2020-07-26 07:30:32 5536

原创 使用postman踩过的最大的坑

当大家使用postman调用接口时,没有调用成功,修改之后,千万不要在原来的地方重新调用,因为有缓存作用,大部分情况下,即使你修改正确了,你还是调用失败的,建议大家在postman中重新创建一个窗口,重新输入进去,在输入的过程中会有提示,建议不要选,自己动手完全输入进去。我自己在做文件上传模块时,一直上传不成功,修改之后,还是上传不成功,最后没办法了,重新创建一个窗口,调用一下,居然成功了,哎,浪费了我几个小时。...

2020-07-25 21:39:16 2533

原创 解决spring-boot-starter-logging与log4j冲突

使用excusions来排除spring-boot-starter对spring-boot-starter-logging的依赖,然后引入log4j-slf4j-impl <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> .

2020-07-25 20:47:17 777

原创 docker报错Get https://registry-1.docker.io/v2/: x509: certificate has expired or is not yet valid

在docker拉取镜像时出现上面的错误,原因注意有两个:拉取的镜像有错误,我们使用docker search +要拉取的镜像的名称比如说,我们拉取fastdfs镜像首先查询镜像docker search fastdfs然后进行拉取本地系统时间错误导致报错证书过期,输入下面语句同步一下时间,ntpdate cn.pool.ntp.org 然后使用date查看一下就可以了date...

2020-07-23 07:41:51 4514

原创 Mapper中的insert()和insertSelect()的选择

首先选择使用通用方法中Mapper.insertSelective(T)实现增加原因如下:方法中但凡带有Selective,会忽略空值比如:brand中name有值, letter有值1)使用insertSelective()方法 Mapper.insertSelective(brand)-->SQL语句:insert into tb_brand(name,letter)values(?,?)其他属性为空,这时就不会出现在SQL语句中,动态拼接2)使用insertSel.

2020-07-22 21:30:28 1820

原创 IDEA 报错 LoggerFactory is not a Logback LoggerContext but Logback is on the classpath,如何排除依赖冲突

D:\software\LeaningSoftware\JDK\JDK1.8Install\bin\java.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=49833 -Dcom.sun.management.jmxremote.authenticate=false -Dco

2020-07-22 07:05:41 380

原创 对maven 本地仓库中有jar包,但还是总是找不到,打包失败和无法引用的问题的解决方法(IDEA)

我通过阿里运公共仓库下载下来的jar放在了我本地仓库中,我在项目中也添加依赖引用了,pom.xml文件也没有出错,也能打包,但是在maven projects栏中总是报错,不能引用。上面标红的地方在没修改之前总是爆红,但是将项目中的 .iml文件删除,重启idea,刷新maven就会好了,就可以引用了。...

2020-07-21 06:34:33 4657 1

原创 Mybatis-plus之条件构造器(Wrapper)

测试一运行结果为:测试二结果为:测试三:结果为:测试四:结果为:

2020-07-19 22:10:40 726

原创 Mybatis-Plus之性能分析插件

我们平时开发过程中,会遇到一些慢的sql,性能分析插件有助于我们了解我们的sql执行时间。作用:性能分析拦截器,用于输出每条sql语句,及其执行时间。MP也提供性能分析插件,如果超过这个时间就停止运行。导入插件注意:我们mybatis_plus插件不要太高,不然它会不识别上面的setMaxTime表示sql语句执行超过1毫秒的话,就会执行错误。测试时就会出现如下错误:如果我们将时间设置为100毫秒的话:测试结果为:这时我们要在properties文件中设置我们的环境为.

2020-07-19 22:06:19 1868

原创 Mybatis-Plus之逻辑删除

物理删除:从数据库中直接移除逻辑删除:在数据库中没有被删除,而是通过一个变量来让他失效比如没有删除之前deleteId=0, 删除之后deleteId=1应用场景:管理员可以查看被删除的记录,防止数据丢失,类似于回收站测试一下:1)在数据库表中添加一个deleted字段2)在pojo中添加一个字段3)配置properties文件配置:就是1表示该数据已经被删除,0表示该数据没有被删除4)测试一下:删除id为1的数据:删除之后,deleted字段的值变为1:当我们再次.

2020-07-19 22:01:29 790

原创 Mybatis-Plus之分页查询

1.原始的limit进行分页2.pageHelper第三方插件3.MP其实也内置了分页插件如何使用?1)配置拦截器组件即可@EnableTransactionManagement@Configuration@MapperScan("com.baomidou.cloud.service.*.mapper*")public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterc

2020-07-19 21:56:33 1174

空空如也

空空如也

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

TA关注的人

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