自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

上海市市花的博客

正在加载...

  • 博客(55)
  • 收藏
  • 关注

原创 Git 报错 SSL certificate problem: certificate has expired

SSL certificate problem: certificate has expired

2022-11-25 09:47:22 730 1

原创 @Autowired 对构造函数使用

spring配置默认的bean的scope是singleton,也就是启动后一直有。@Autowired本身就是单例模式,只会在程序启动时执行一次,即使不定义final也不会初始化第二次,为了防止,在程序运行的时候,又执行了一遍构造函数。Spring在实例化对象的时候一旦找到一个它认为合适的构造方法,就会直接实例化对象,不会继续寻找其他构造方法。更容易让人理解的意思,加上final只会在程序启动的时候初始化一次,并且在程序运行的时候不会再改变。

2022-10-09 16:19:26 1724

原创 Mysql Count的区别

Mysql Count() 计数的区别

2022-08-30 10:37:53 790 1

原创 mysql查询结果不包含NULL的值

mysql查询结果不包含null

2022-08-11 13:58:49 1878

原创 spring一次注入接口所有实现类

spring一次注入一个接口的所有实现

2022-07-21 17:14:53 291

原创 JAVA线程池

线程池1. 什么是线程池2. JAVA中线程池种类2.1 newSingleThreadExecutor 单线程的线程池2.2 newFixedThreadPool 固定数量的线程池2.3 newCachedThreadPool 可缓存的线程池2.4 newScheduledThreadPool 支持定时的线程池2.5 newWorkStealingPool 具有抢占式操作的线程池(1.8之后)3. 线程拒绝策略3.1 AbortPolicy策略3.2 CallerRunsPolicy策略3.3 Disca

2022-04-07 14:34:32 422

原创 多线程的实现方式

多线程的实现方式1. 继承Thread类,重写run方法,调用start2. 实现Runnable接口,用新的类创建Thread实例,调用start3. 实现Callable接口,用新的类创建Thread实例,调用start4. 线程池1. 继承Thread类,重写run方法,调用startclass MyThread extends Thread { @Override public void run() { //此处为thread执行的任务内容 System.out.println(Th

2022-04-07 12:32:01 89

原创 为什么SELECT * 效率低

为什么SELECT * 效率低一、效率低的原因1. 不需要的列会增加数据传输时间和网络开销2. 对于无用的大字段,如 varchar、blob、text,会增加 io 操作3. 失去MySQL优化器“覆盖索引”策略优化的可能性二、索引1. 联合索引优势:1. 减少开销2. 覆盖索引3. 效率高建立索引注意事项:一、效率低的原因增加查询分析器解析成本。增减字段容易与 resultMap 配置不一致。无用字段增加网络 消耗,尤其是 text 类型的字段。1. 不需要的列会增加数据传输时间和网络开销

2022-04-06 01:07:53 4011 3

原创 IDEA使用Alibaba Cloud Toolkit部署应用到服务器

IDEA使用Alibaba Cloud Toolkit部署应用到服务器一、安装插件二、使用步骤1.配置服务器2.配置部署信息3.配置完成4.注意一、安装插件市场安装Alibaba Cloud Toolkit插件:二、使用步骤1.配置服务器打开Host控制台:配置服务器信息:2.配置部署信息打开控制面板:打开控制面板:3.配置完成配置完成,后续可以在菜单栏操作4.注意配置是跟着项目走的,如果切换了项目需要重新配置~...

2022-01-25 18:07:25 270

原创 Mysql多条件空值排序

最近Mysql遇到一个问题,按更新时间排序,如果没有更新时间,就按创建时间排序写法一ORDER BY create_time DESC,update_time IS NULL,update_time desc写法二ORDER BY IFNULL(update_time,create_time) DESC

2021-12-06 15:21:04 217

原创 JDK1.8 stream中sorted排序概要

JDK1.8 stream中sorted排序概要// 代表某集合List<类> list = new ArrayList(); // 按照属性一升序list.stream().sorted(Comparator.comparing(类::属性一));// 按照属性一降序// 方法一 先升序后降序list.stream().sorted(Comparator.comparing(类::属性一).reversed());// 方法二 直接降序list.stream().sort

2021-11-29 13:54:21 1512

原创 设计模式的分类和六大原则

设计模式的分类和六大原则设计模式的分类1. 创建型模式(5种)2. 结构型模式(7种)3. 行为型模式(11种)六大原则总原则:开闭原则定义:一个软件实体应该对扩展开放,对修改关闭。1. 单一职责原则定义:有且仅有一个原因引起类的变更优点:临界点:2. 里氏代换原则定义:所有引用基类的地方必须能透明地使用其子类的对象优点:缺点:四层含义:3. 依赖倒转原则定义:处理:4. 依赖倒转原则定义:客户端不应该依赖不需要的接口,类之间的依赖关系应该建立在最小的接口上四层含义:处理:5. 迪米特法则(最少知道原则)定

2021-11-15 17:29:21 230

原创 2.Mysql日志系统

2.Mysql日志系统MySQL日志分类(针对InnoDB)redo logWAL1. checkpoint2. write poscrash-safebinlog与redo log不同点1. 拥有对象2. 记录内容3. 空间大小参考笔记MySQL日志分类(针对InnoDB)物理日志(引擎层) redo log逻辑日志(server层) binlogredo log当有一条记录需要更新的时候,InnoDB引擎就会先把记录写到redo log里面,并更新内存,这个时候更新就算完成了。同时,InnoD

2021-09-12 21:58:30 48

原创 1.MySQL查询语句如何执行

Mysql查询语句如何执行Mysql的逻辑框架Server层1 连接器2 查询缓存(8.0删除)3 分析器4 优化器5 执行器存储引擎参考笔记Mysql的逻辑框架Server层跨存储引擎的功能都在这一层实现,比如存储过程,触发器,视图1 连接器负责和客户端建立连接获取权限维持和管理连接在验证用户名密码之后,查询权限表,之后在本次连接中的权限依赖于此时的表2 查询缓存(8.0删除)请求进入后查看缓存(key-value)有缓存值,直接返回无缓存值,执行sql,将结果存入缓存

2021-08-30 13:59:16 88

原创 java将图片缩放

最近项目里使用算法将图片进行切割,但是获取到的图片太小,无法使用算法接口。突然发现了神器!hutool简介https://www.hutool.cn/docs/Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目

2021-07-02 16:13:03 967

原创 Springboot里@autowired和@resource注解

@autowired和@resource注解区别提供方注入方式@Resource属性nametype装配顺序区别提供方@Autowired是Spring提供的@Resource是J2EE提供的注入方式@Autowired是默认按照byType注入,也就是按bean的类型来传入。如果需要指定名字,那么需要使@Qualifier(“bean的名字”),在使用的地方加入@Qualifier(“bean的名字”)@Resource默认按 byName自动注入@Resource属性nameSpri

2021-04-05 16:51:30 1646

原创 Java的抽象类

什么是抽象类包含抽象方法的类称为抽象类,但抽象类中不仅仅只能有抽象方法,它和普通类一样,都可以拥有成员变量和普通的成员方法。抽象类和普通类的区别1)抽象方法必须为public或者protected(因为private,不能被子类继承,子类便无法实现该方法),默认为public。2)抽象类不能被实例化,只能用来继承;3)如果一个类继承于一个抽象类,则子类必须实现父类的所有抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract(抽象)类。在其他方面,抽象类和普通的类并没有区

2021-04-04 16:39:45 114

原创 单例模式

单例模式概述介绍目的意图解决什么时候使用如何解决关键代码实现饿汉式懒汉式双重校验锁(double-checked locking)概述介绍单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。目的意图保证一个类有且只有有一个实例,并提供一个全局

2021-04-04 14:53:57 82

原创 java中Collections.sort()排序详解

java中Collections.sort排序详解概括数据对象使用对数据排序对对象排序总结概括数据对数据排序直接使用这个方法就行,但是要保证集合中的对象是 可比较的。对象对对象排序需要该对象实现 Comparator接口,然后重写里面的compare()方法。使用对数据排序public static void main(String[] args) { Integer[] testNum = {4, 2, 6, 1, 7, 9, 3, 3, 5}; List<Integ

2021-04-02 16:39:43 754

原创 Java中静态代码块、代码块和构造函数执行顺序

Java中静态代码块、代码块和构造函数执行顺序概念静态代码块代码块执行顺序与继承共用时的执行顺序父类子类运行结果概念静态代码块特点:随着类的加载而执行,而且只执行一次。执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。代码块特点:随着类的加载而执行,而且只执行一次。执行的时候如果有静态初始化块,先执行静态初始化块再执行非静态初始化块,在每个对象生成时都会被执行一次,它可以初始化类的实例变量。非静态初始化块会在构造

2021-04-02 15:14:44 265

原创 SpringMvc执行流程

点击跳转Process On SpringMVC执行流程1、用户发送请求至前端控制器DispatcherServlet2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成) 一并返回给DispatcherServlet。4、DispatcherServlet调用HandlerAdapter处理器适配器5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫

2021-04-01 16:58:37 57

原创 JAVA中过滤器(Filter)与拦截器(Interceptor)

JAVA中过滤器(Filter)与拦截器(Interceptor)概述过滤器(Filter)拦截器(Interceptor)区别与联系区别联系总结FilterInterceptor概述过滤器(Filter)过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理。拦截器(Interceptor)拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执

2021-04-01 14:31:35 479

原创 升级Mac BigSur后 IDEA 报错 Can‘t use Subversion command line client:svn

升级Mac bigsur后 IDEA 报错 Can‘t use Subversion command line client:svn简述解决方法操作步骤一 安装 CommandLineTools二 安装 Homebrew三 安装 subversion简述之前的macOS版本只用更新 CommandLineTools 就可以使用,但是在新版本BigSur在 CommandLineTools中没有提供svn,导致更新后还是不能用。解决方法使用Homebrew来安装subversion操作步骤一 安

2020-12-19 12:56:55 546 6

原创 MySQL解决幻读

MySQL解决幻读事务的隔离级别幻读1.什么是幻读?2.为什么要解决幻读?3.mysql是怎么解决幻读的?3.1 next-key原理是什么?3.2 next-key锁包含什么?4.mysql的INNODB引擎RR隔离级别怎么解决幻读的?小结事务的隔离级别读未提交读已提交可重复读串行化幻读1.什么是幻读?幻读一个实务里,多次查询后,结果集的个数不一样叫做幻读.幻行多出来或者少掉的那一行叫做幻行.2.为什么要解决幻读?并发数据库中,需要保证事务与事务之间的隔离性和数据本身的一致性

2020-11-29 20:16:03 132

原创 设计模式七大原则

设计模式七大原则设计模式的目的设计模式七大原则概述1.单一职责原则2.接口隔离原则3.依赖倒转原则4.里氏替换原5.开闭原则(ocp)6.迪米特法则7.合成复用原则设计模式的目的代码重用性(相同的代码,不用多次编写)可读性(编程规范,便于其他人阅读)可扩展性(需要增加新功能时,方便扩展,称为可维护)可靠性(增加新功能后,对原来的功能没有影响)是程序呈现高内聚,低耦合设计模式七大原则概述1.单一职责原则注意事项和细节降低类的复杂度,一个类只负责一项职责提高类的可读性,可维护性降低

2020-11-29 17:09:10 89

原创 新版CSDN-markdown编辑器使用说明

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-11-29 17:06:32 170

原创 CentOS7安装MySQL5.7

一、安装YUM Repo1、由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。下载命令:wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm2、然后进行repo的安装:rpm -ivh mysql57-community-release-el7-9.noarch.rpm执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件m

2020-08-09 22:53:44 70

原创 Nginx部署一个vue项目

第一步:将项目打包demo地址:https://github.com/RenlyWen/vue-init.git终端输入命令:cnpm install && npm run build之后会生成一个dist文件夹第二步:配置Nginx修改server-location路径worker_processes 1;# 以上是全局模块# worker_processes的值越大,Nginx并发能力越强events { worker_con...

2020-08-09 13:19:01 19272

原创 Linux,CentOS7安装Nginx

第一步:安装所需环境Nginx 是 C语言 开发,建议在 Linux 上运行,当然也可以安装 Windows 版本,本篇则使用CentOS7作为环境。1. gcc 安装安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:终端输入:yum install gcc-c++2.CRE pcre-devel 安装PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼

2020-08-08 20:49:35 106

原创 Linux CentOS CentOS7 安装JDK

第一步:卸载系统自带的JDK1.终端输入命令(最好用root用户登录):java -version可以看到系统自带的是Open JDK2.终端输入查询命令rpm -qa|grep java命令说明:rpm: 管理套件 -qa: 使用询问模式,查询所有套件grep: 查找文件里符合条件的字符串java: 查找包含java字符串的文件可以将open jdk这几个文件删除java-1.8.0-openjdk-headless-1.8.0.242.b08-

2020-08-08 19:44:11 205

原创 JDK和Open JDK的区别

历史上的原因是,openjdk是jdk的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,openjdk已经成为jdk7的主干开 发,sun jdk7是在openjdk7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。使用JRL(JavaResearch License,Java研究授权协议)发布。至于openjdk6则更是有其复杂的一面,首先是openjdk6是jdk7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。关于JDK和OpenJDK的

2020-08-08 18:47:16 514

原创 解决IDEA的插件中心连接不上网络

IDEA的插件中心连不上网很烦人,下载不了自己想要的插件打开:设置-插件选择:设置按钮-HTTP代理设置勾选自动设置输入https://plugins.jetbrains.com/或者http://127.0.0.1:1080重启再次打开插件中心:已经可以使用啦...

2020-08-08 18:36:02 5733 3

原创 JS时间和时间戳的转换

时间转为时间戳timeToTimestamp(time){ let timestamp = Date.parse(time) return timestamp;},时间戳转为UTC时间timestampToUtc(timestamp){ let date = new Date(timestamp); var YY = date.getUTCFullYear() + '-'; var MM = (date.getUTCMonth() + 1 <

2020-07-27 14:09:11 293

原创 SpringBoot启动报错java.nio.charset.MalformedInputException: Input length = 2解决方案

最近新搭的一个项目,启动时,会爆MalformedInputException出现这个的原因,就是解析yml文件时,中文字符集不是utf-8的原因找了很久问题,使用idea测试,最终发现,是maven在项目编译时,默认字符集编码是GBK所以只需要在pom文件中设置,并且将编辑器的编码改为utf-8,这样编译时编码就会变成utf-8,这样这个问题就解决了<properties> <project.build.sourceEncoding>UTF-8</p

2020-05-29 16:13:51 1928 2

原创 序列化和反序列化

一 基本概念1.什么是序列化:Java序列化就是指把Java对象转换为字节序列的过程。2.什么是反序列化:Java反序列化就是指把字节序列恢复为Java对象的过程。3.序列化的作用:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。4.反序列化的最重要的作用:根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。总结:核心作用就是对象状态的保存和重建。(整个过程核心点就是字节流中所保存的对象状态及描述信息)二 什么情况下

2020-05-24 18:11:22 143

原创 springboot异步调用@Async

1.使用场景在项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能够并行执行,我们可以使用多线程来并行的处理任务,也可以使用spring提供的异步处理方式@Async。2.异步处理方式调用之后,不返回任何数据。 调用之后,返回数据,通过Future来获取返回数据3.@Async不返回数据使用@EnableAsync启用异步注解@Config...

2020-04-12 14:05:14 357

原创 多线程与线程池

一、进程与线程线程都是在进程基础上并发执行。如果现在运行多个任务,则说有的资源被所有线程共用。二、Java的多线程实现继承thread类 (1)thread类在java.lang包中,一个类继承了这个类,就叫做多线程操作类,并且必须明确的覆写run()方法。(2)调用start()方法才是真正的启动线程。(3)java允许java程序访问操作系统的函数,...

2020-03-30 22:29:49 222

原创 Java反射机制,暴力反射

定义Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射是框架设计的灵魂 *框架 : 半成品软件,可以在框架的基础上进行软件开发,简化代码。 *反射 : 将类的各个组成部分封装为其他对象。 *好处 : ...

2020-03-13 14:20:06 250

原创 vue-cli2.x版本升级方法

首先卸载原来的版本sudo npm install -g @vue/cli安装新的,此处使用cnpmsudo cnpm install -g @vue/cli验证版本vue -V

2020-03-12 11:51:29 448

原创 drop、truncate和delete的用法区别

一、SQL中的语法1、drop table 表名称 eg: drop table name2、truncate table 表名称 eg: truncate table name3、delete from 表名称 where 列名称 = 值 eg: delete from name where test=‘test’二、drop,truncate,delete区别1、drop (删...

2020-03-08 21:23:55 174

空空如也

空空如也

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

TA关注的人

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