自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决show-overflow-tooltip跨行生效的问题

当内容出现特殊字符(空格换行)会占据几行的空间后再显示...

2024-02-27 09:06:41 362

原创 mysql插入特殊字符报错问题

ALTER TABLE 表名 MODIFY COLUMN 列名 varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' NOT NULL COMMENT '列1';ALTER TABLE 表名 DEFAULT CHARSET=utf8mb4;修改表和对应字段的编码。

2024-02-26 17:45:28 176

原创 springboot Actuator未授权访问漏洞

Spring Boot 2.X 中,Actuator 默认开放 health 和 info 两个端点,如果需要配置开放所有端点(配置值为 "*" 代表所有)

2023-08-29 11:40:37 465

原创 nvm安装和切换node版本

1、nvm list查看已安装的node版本。2、查看当前使用的npm和node版本。3、安装某版本的node。4、 切换node版本。

2023-08-02 11:38:31 229

原创 理解面向对象

Java面向对象

2023-02-11 17:16:46 517 1

原创 Java程序运行机制

Java程序运行机制

2023-02-11 14:17:23 3160 1

转载 UML类图关系(泛化、实现、依赖、关联、组合、聚合)

UML类图关系(泛化、实现、关联、依赖、组合、聚合)

2022-10-29 17:58:33 527

原创 MQ简单入门案例

mq简单入门案例

2022-07-01 16:52:11 1050

原创 RabbitMQ安装

rabbitmq的安装

2022-06-22 22:14:00 182

原创 Vue项目运行内存溢出(errno 134)

Vue项目运行内存溢出(errno 134)

2022-06-21 15:14:39 2186 1

原创 消息中间件MQ概述

消息中间件MQ概述

2022-06-21 15:13:28 326

原创 各种环境安装

jdk安装JDK-8u221安装教程关注微信公众号“软件管家”(公众号ID:softgj)\x0a免费获取各类软件安装包和安装教程https://mp.weixin.qq.com/s/3EcxAYyq4dBxnjC-8sQqEQMaven安装IDEA配置Maven_ペ深秋。的博客-CSDN博客_idea配置maven文章目录一、Maven下载&环境配置1.下载Maven2.解压3.配置环境变量4.测试二、更改Maven中的设置1.编辑settings.xml2.配置本地仓库3.更换默认更

2022-04-14 17:18:47 813

转载 vscode提交码云/笔记提交Git

VsCode提交码云1.首先在你的码云新建一个仓库注意:(此教程是手动创建仓库,并利用终端以命令形式提交代码)最后点击创建就OK!2.来到VSCode里面的终端3.Git 全局设置,依次输入命令:git config --global user.name "早晚会胖" //你的名字(随意)git config --global user.email "[email protected]" //Git绑定的邮箱git init /...

2022-04-08 11:14:29 1548

原创 力扣分类刷题

数组一维数组是连续的,二维数组不是。二维数组本质还是一位数组,其中每个元素存储的是一个一维数组的地址。数组的元素是不能删的,只能覆盖。二分查找的应用1、搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,.

2022-02-16 16:37:08 465

原创 Arrays.asList()注意事项

Arrays是一个工具方法,其asList(T..a)方法可以将数组转为集合List,但使用该方法有以下两点需要注意:(1)元素个数public static void main(String[] args) { int[] datas = new int[]{1,2,3,4,5}; List list = Arrays.asList(datas); System.out.println(list.size()); }---------...

2021-12-23 23:24:20 678

原创 java-剑指offer-7重建二叉树

package com.areio.offer;public class TreeNode { //每一个结点要包含左指针,右指针,当前结点的值 int val; TreeNode left = null; TreeNode right = null; //把左右节点设为null,构造新结点时不用自己设置 public TreeNode(int val){ this.val=val; }}package ...

2021-12-23 13:09:01 567

原创 java-二叉树遍历(前中后层次)

package com.areio.offer;public class TreeNode { //每一个结点要包含左指针,右指针,当前结点的值 int val; TreeNode left = null; TreeNode right = null; //把左右节点设为null,构造新结点时不用自己设置 public TreeNode(int val){ this.val=val; }}package com.a.

2021-12-23 09:42:40 106

原创 java单链表的操作

package com.areio.offer;public class _6A_LinkList { //结点 public class Node { //当前结点的值 int val; //下一个结点 Node next; public Node(){} public Node(int val){ this.val=val; } .

2021-12-21 23:14:55 662

原创 I/O家族

按流的方向划分输入流:InputStream 、Reader 输出流:OutputStream、Writer按传输的数据单位划分字符流:Reader,Writer 字节流:InputStream,OutputStream

2021-12-19 21:12:01 65

转载 IO模型详解(堵塞、同步、多路复用)

此文为转载,但做出补充及个人总结

2021-12-17 16:01:01 568

原创 红黑树自旋

红黑树特点数据项只能存储在内部结点中(internal node)。我们所指的"叶结点"在其父结点中可能仅仅用一个NULL指针表示,但是将它也看作一个实际的结点有助于描述红黑树的插入与删除算法,叶结点一律为黑色。定义详解:根据性质 5:红黑树从根节点到每个叶子节点的路径都包含相同数量的黑色节点,因此从根节点到叶子节点的路径中包含的黑色节点数被称为树的“黑色高度(black-height)”。性质 4 则保证了从根节点到叶子节点的最长路径的长度不会超过任何其他路径的两倍。假如有一棵黑色高度为 3 的

2021-12-16 22:26:12 702

转载 堵塞队列BlockingQueue

阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示:在concurrent包发布以前,在多线程环境下,我们每个程序员都必须去自己控制这些细节,尤其还要兼顾效率和线程安全,而这会给我们的程序带来不小的复杂度。强大的concurrent包横空出世了,而他也给我们带来了强大的BlockingQueue。(在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤醒)作为BlockingQueue的使用者,我们再也不需要关心什么时候需要阻塞

2021-12-16 18:02:51 91

原创 Spring之AOP

有没有可能不编写实现类,直接在运行期创建某个interface的实例呢?这是可能的,因为Java标准库提供了一种动态代理(Dynamic Proxy)的机制:可以在运行期动态创建某个interface的实例。什么叫运行期动态创建?听起来好像很复杂。所谓动态代理,是和静态相对应的。我们来看静态代码怎么写:还有一种方式是动态代码,我们仍然先定义了接口Hello,但是我们并不去编写实现类,而是直接通过JDK提供的一个Proxy.newProxyInstance()创建了一个Hello接口对象。这种没有实现

2021-12-12 14:47:42 276

原创 声明式事务

事务的四大特性事务具有4个特征,分别是原子性、一致性、隔离性和持久性,简称事务的ACID特性;一、原子性(atomicity)一个事务要么全部提交成功,要么全部失败回滚,不能只执行其中的一部分操作,这就是事务的原子性二、一致性(consistency)事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处于一致性状态。如果数据库系统在运行过程中发生故障,有些事务尚未完成就被迫中断,这些未完成的事务对数据库所作的修改有一部分已写入物理数据库,这是数据库就处于一种

2021-12-12 14:41:25 80

原创 SSL/TLS

SSL/TLSTLS原名是SSLHTTPS=HTTP+SSL/TLSSSL介于应用层和TCP层之间。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。SSL协议实现的安全机制包含:传输数据的加密:利用对称密钥算法和非对称加密算法对传输的数据进行加密。——混合两种加密算法身份验证机制:基于证书利用数字签名方法对server和client进行身份验证,当中client的身份验证是可选的。——摘要算法,非对称加密算法消息完整性验证:消

2021-12-09 15:25:01 210

原创 Java基础八股文

1、面对对象三大特征(1)继承指的是当子类继承父类后,子类能够获得父类的成员属性和成员方法,不过,对于私有的成员属性和方法,子类虽然继承了但是没有权限访问。此外,继承(和组合都)是实现复用的重要手段,也是实现多态的基础。(2)封装封装是指将对象的实现细节隐藏起来,然后通过一些公共的方法来暴露出该对象的功能。(3)多态多态指的是子类对象可以直接赋值给父类变量,但运行时仍表现出子类的行为特征,这样使得同一个类型的对象在执行同一个方法时,可能会表现出多种行为特征。2、访问修饰符private:在当

2021-12-08 15:25:59 382

原创 mybatis缓存

使用缓存, 我们可以避免频繁的与数据库进行交互mybatis 也提供了对缓存的支持, 分为一级缓存和二级缓存。 在默认的情况下, 只开启一级缓存(一级缓存是对同一个 SqlSession 而言的)。一级缓存(sqlSession)同一个 SqlSession 对象, 在参数和 SQL 完全一样的情况下, 只从数据库查询一次,后期从缓存拿(如果缓存没有过期)同一个sqlSession@Testpublic void oneSqlSession() { SqlSession sqlSes.

2021-12-06 11:02:25 994 1

原创 通用mapper使用注意点

本文由 通用mapper使用归纳而来通用Mapper虽然方便,终于不用手写XML,但仍然要写POJO和Mapper接口。如果你们公司出于效率考虑,只允许增删改使用TkMapper,查询语句要自己手写XML(如果不需要手写sql则可以不用xml文件),那么你还要手动创建mapper.xml,工作量还是有一些的。建议简单的增删改可以交给通用Mapper提供的接口,而查询最好自己手写SQL,做到接口和SQL分离,方便后期SQL优化及维护。使用通用mapper需要注意的是 , 只能在一张表行进行操作!!!如

2021-12-05 16:31:42 1543

原创 spring相关注解

这里写目录标题@Component(被视为Spring bean)@Component@Controller@Service@Repository总结@Component 和 @Bean@Component@Bean总结@ComponentScan与@MapperScan@ComponentScan@MapperScan@Component(被视为Spring bean)@Component用@Component来表示一个通用注释用于说明一个类是一个Spring容器管理的类。即该类已经拉入到Spri

2021-12-05 14:04:18 437

原创 最小覆盖子串-Java版本

package com.areio.suanfa.zifuchuan;/*最小覆盖子串 * 给定两个字符串S和T,在S中找出包含T中全部字母的最短子串,如果S中没有这个子串,则返回空字符串,如果存在这样一个字符串,则可认为答案是唯一的 * * S="EBBANCF",T="ABC" 返回BANC * 第一次窗口扩大到valid=need.size()是子串为EBBANC,此时left=0,right=6,窗口区间[0,6) * 而need={A=1,B=1,C=1},window={A=1,

2021-12-04 21:06:54 157

原创 寻找所有字母异位词-java版本

package com.areio.suanfa.zifuchuan;/*寻找所有字母异位词* 给定一个字符串S和一个非空字符串T,找到S中所有是T的 字母异位词 的子串,并返回这些子串的起始索引** "cba"是"abc"的异位词* 这意味着题目要求在S中找到所有是T的全排列的子串* S="cba eba bac d",T="abc" 返回0和6** */import java.util.ArrayList;import java.util.HashMap;import jav

2021-12-04 20:32:40 95

原创 Java内存模型 JMM 高并发原子性可见性有序性简介

原文地址: Java内存模型JMM 高并发原子性可见性有序性简介 多线程中篇(十)JVM运行时内存结构回顾在JVM相关的介绍中,有说到JAVA运行时的内存结构,简单回顾下整体结构如下图所示,大致分为五大块而对于方法区中的数据,是属于所有线程共享的数据结构而对于虚拟机栈中数据结构,则是线程独有的,被保存在线程私有的内存空间中,所以这部分数据不涉及线程安全的问题不管是堆还是栈,他们都是保存在主内存中的线程堆栈包含正在执行的每个方法的所有局部变量(调用堆栈上的所有方法)。线程只能访.

2021-12-01 23:47:16 275

原创 多线程各种锁(乐观\公平\独占\可重入锁\自旋\同步)

独占锁(写锁/X/排他)每次只能有一个线程能持有该锁,持有锁的线程能对该数据进行读和写,其他线程均不可读写Synchronized和ReentrantLock共享锁(读锁/S)允许多个线程同时获取该锁,多个线程只能对其加读锁,不能加写锁,所有持有读锁的线程只能对数据进行读不能写独占锁和共享锁案例/** * 多个线程同时读一个资源类没有问题,所以为了满足并发量,读取共享资源应该同时进行 * 但是如果有一个线程想去写共享资源,就不应该再有其他线程可以对资源进行读或取 * *

2021-12-01 20:50:54 155

原创 线程池的使用

线程和数据库连接这些资源都是非常宝贵的资源。那么每次需要的时候创建,不需要的时候销毁,是非常浪费资源的。那么我们就可以使用缓存的策略,也就是使用线程池。public class ThreadPoolTest { //1、不用线程池 //函数式接口实现,重写run public static void noPool(){ Runnable target=()->{ for (int i=0;i<10;i++){

2021-12-01 12:49:40 771

原创 多线程通信

线程通信虽然无法准确控制线程轮换执行,但我们还是可以通过一些机制来保证线程协调执行。比如让AB交替执行,而不能连续执行A或B。使用synchronized关键字来保证线程同步为实现这种功能,可以借助Object类的wait(),notify(),notifyAll(),这三个方法必须由同步监视器来调用(同步代码块是括号里的对象,同步方法是调用者)使用Lock对象来保证同步如果程序不使用synchronized关键字来保证线程同步,而是直接用Lock对象来保证同步。那么就没有同步监视器了,也就

2021-12-01 11:08:18 96 1

原创 多线程入门总结

常见方法sleep()sleep让当前正在执行的线程暂停,进入阻塞态,时间结束进入就绪态让出cpu时不理会其他线程的优先级sleep的方法声明抛出了interruptedExceptiin,调用者必须处理,捕获或抛出不释放同步监视器yield()yield让当前正在执行的线程暂停,立马进入就绪态,因此没有时间参数。yield在让出cpu时只会给同优先级或更好优先级方法声明没有抛出异常不释放同步监视器suspend()线程通信常用方法下面是使用synchronized关键字来

2021-11-30 23:45:39 76

转载 IO - 同步,异步,阻塞,非阻塞区别(通俗易懂)

同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同。所以,为了更好的回答这个问题,我先限定一下本文的上下文。 本文讨论的背景是Linux环境下的networ.

2021-11-30 22:44:29 316

原创 ApplicationContext和BeanFactory区别

ApplicationContext我们说应用程序上下文ApplicationContext其实就是一个bean工厂,继承BeanFactory接口,而我们通过加载配置文件可以拿到应用上下文,配置文件里面描述了很多个bean的配置信息只有配置文件里面配置了相关的bean,才能从applicationContext里面拿出对应的实例共同点接口 BeanFactory 和 ApplicationContext 都是用来从容器中获取 Spring beans 的区别两者装载bean的区别BeanF

2021-11-28 23:07:48 190

原创 IOC&DI&AOP含义、区别及应用

IOC控制反转生活的例子:我想做一件事,但是我不想自己做,所以委托给第三方。家里清洁卫生,委托家政公司,家政公司派清洁阿姨,我只是暂时把清理卫生权利给阿姨,但是我还拥有对我家的所有控制器,阿姨只是暂时打扫,打扫完把干净的家给我。控制反转:控制的什么被反转了?就是获得依赖对象的方式反转了。(由主动new–>被动注入)IOC概念:创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,比如转移交给了IOC容器,它是一个专门用来创建对象的工厂,你要什么对象

2021-11-28 11:07:47 330

原创 fail-fast快速失败

简介fail-fast 机制,即快速失败机制,是java集合(Collection)中的一种错误检测机制。当在迭代集合的过程中该集合在结构上发生改变的时候,就有可能会发生fail-fast,即抛出 ConcurrentModificationException异常。fail-fast机制并不保证在不同步的修改下一定会抛出异常,它只是尽最大努力去抛出,所以这种机制一般仅用于检测bug。fail-fast出现场景import java.util.ArrayList;import java.util.It

2021-11-20 15:56:18 303

空空如也

空空如也

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

TA关注的人

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