自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Navicat连接本地CentOs7虚拟机中的Mysql数据库

1、准备工作:虚拟机中安装Mysql不会的可以参考:https://blog.csdn.net/m0_66360096/article/details/1340535172、Navicat新建连接虚拟机IP地址是和Xshell连接一样的:https://www.cnblogs.com/Bernard94/p/18097141账号密码是安装Mysql时默认的,当然也可以自己修改,可以参考上...

2024-03-29 16:20:00 750

原创 Springboot项目打包成jar包启动报错:jar中没有主清单属性

试一下在项目中加入<parent>标签版本不唯一,以自己项目需求为准 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>...

2024-03-27 18:00:00 200

原创 Xshell连接Vmware中的CentOs本地虚拟机

1、准备工作:本地安装Vmware+Centos安装Vmware:https://blog.csdn.net/xijinno1/article/details/131178887Vmware安装CentOs:https://blog.csdn.net/qq_54059106/article/details/1313499502、下载Xshell免费版(仅供个人/学校学习使用):https...

2024-03-26 17:24:00 254

原创 多线程限流工具类-Semaphore

Semaphore介绍Semaphore(信号量)是JAVA多线程中的一个工具类,它可以通过指定参数来控制执行线程数量,一般用于限流访问某个资源时使用。Semaphore使用示例需求场景:用一个核心线程数为6,最大线程数为20的线程池执行任务,但是要求最多只能同时运行3个线程代码:public class demo { //创建线程池,核心线程数:6;最大线程数:20;时...

2024-03-03 16:09:00 342

原创 Springboot的starter有什么用以及如何自定义一个starter

SpringBoot的starter是什么我们都知道SpringBoot的目的就是为了让开发者尽可能的减少项目配置专注于程序代码的编写,而'starter'就是SpringBoot简便开发、自动装配的具体实现。以‘mybatis-spring-boot-starter’为例: <dependency> <groupId>org.mybatis.s...

2024-02-26 16:25:00 341

原创 Thread和ThreadLocal、ThreadLocalMap的关系

ThreadLocal是什么ThreadLocal官方注释:翻译过来大致意思是:ThreadLocal可以提供局部变量,通过set和get方法对局部变量进行操作,并且局部变量是每个线程独立的、数据隔离的。ThreadLocal通常作为线程的私有的静态变量,用于和UserId、事务Id相关联。set方法: public void set(T value) { ...

2024-01-30 15:08:00 342 1

原创 多线程sleep、yield、wait、join方法的使用和区别

使用和介绍sleep方法sleep方法的官方注释(翻译后): /** * 根据系统计时器和调度程序的精度和准确性,使当前执行的线程休眠(暂时停止执行)指定的毫秒数。线程不会失去任何监视器的所有权(不释放锁)。 * * @param millis 以毫秒为单位的睡眠时间长度 * @throws IllegalArgumentException ...

2024-01-27 10:12:00 674

原创 (源码分析)线程池里新增一个线程的流程是什么

新增线程的流程:1、先判断新线程是不是为空,为空就报空指针错误否则就往下运行;2、判断是否小于核心线程数,小于则直接新增线程否则就往下运行;3、尝试新增到工作队列中,添加成功就等待调用否则就往下运行;4、再次尝试新增非核心线程,如果当前线程池的线程数大于线程池容量或最大线程数就触发拒绝策略。 public void execute(Runnable command) { ...

2024-01-25 16:01:00 251

原创 ShardingSphere分库分表实战Demo

为什么要分库分表从性能方面来说,一般关系型数据库采用B+树的数据结构,当数据库中的数据量很大时就会增加磁盘的IO次数,当系统使用者少的情况下可能不太明显,但是随着使用者的逐渐增多对数据库的优化需求就会越来越强烈!从运维方面来说,一个数据库的数据量过大会增加数据更新、备份的耗时与风险,而且万一因项目或者服务器出现问题时容易造成系统的崩溃,无法使用。分表分为‘垂直拆分’和‘水平拆分’垂直拆分...

2023-10-11 15:38:00 164

原创 SSM框架学习之MyBatis浅谈(二)

关系型数据库和非关系型数据库关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。非关系型数据库(NoSql,Not Only SQL)用于区别于关系型数据库,它们不保证关系数据的ACID特性。简单来说,关系型数据库一般数据都和系统中的对象有关联,用某个对象的属性去接收数据库的字段,例如:‘tb_...

2023-07-19 14:55:00 110

原创 JAVA设计模式之责任链模式

设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

2023-07-14 13:58:00 104

原创 JAVA设计模式之策略模式

设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

2023-07-13 10:19:00 73

原创 JAVA设计模式之适配器模式

设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

2023-07-12 13:50:00 59

原创 JAVA设计模式之装饰器模式

设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

2023-07-11 10:44:00 43

原创 JAVA设计模式之模板模式

设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

2023-07-07 14:24:00 1214

原创 JAVA设计模式之原型模式

设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

2023-07-06 13:43:00 41

原创 JAVA设计模式之建造者模式

设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

2023-07-05 13:37:00 54

原创 JAVA设计模式之工厂模式

设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

2023-07-03 15:22:00 290

原创 Java学习之Mysql基础问题整理

Mysql常见存储引擎命令:SHOW ENGINES;Mysql版本5.5以后默认引擎是 InnoDB,5.5版本以前的是 MyISAMInnoDB和MyISAM的区别1、InnoDB支持事务,MyISAM不支持。对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;2、InnoDB支持外...

2023-06-25 15:26:00 117

原创 Java学习之Mysql为什么可以实现可重复读

什么是mvccMysql的隔离级别是‘可重复读’,即:事务A在读到一条数据之后,此时事务B对该数据进行了修改操作并提交,那么事务A再读该数据,依然还是原来的内容。它的实现原理是MVCC(Multi-Version Concurrency Control)多版本并发控制,MVCC保证当前查询为快照读,所以不受其他事务影响。什么是当前读和快照读当前读:读取当前版本的数据即最新的数据,并且会对...

2023-06-25 10:51:00 177

原创 Java分布式注册中心之Zookeeper

Zookeeper是什么ZooKeeper是一个用于维护配置信息、命名、提供分布式同步和提供组服务的集中式服务,它常作为一个注册中心服务用于分布式项目。Zookeeper拥有以下几个重要特性顺序一致性:来自客户端的相关指令会按照顺序执行,不会出现乱序的情况,客户端发送到服务的指令1->2->3->4,那个这些指令就会按照顺序执行;原子性:更新只有成功和失败,没有中间状态...

2023-06-21 11:08:00 434

原创 Java分布式框架之Dubbo

分布式与微服务1、传统架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键。存在的问题:代码耦合,开发维护困难无法对不同模块进行针对性优化无法水平扩展单点容错率低,并发能力差2、系统拆分当系统不断的迭代,访问量逐渐增大单一应用无法满足需求,此时为了应对更高的并发和业务需...

2023-06-16 21:43:00 340

原创 SSM框架学习之Spring浅谈(二)

Spring常用注解@Controller : 对应 Spring MVC 控制层,主要用户接受用户请求并调用 Service 层返回数据给前端页面。@Service : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。@Component :通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用@Component 注解标注。@Rep...

2023-06-14 09:48:00 83

原创 JAVA学习JSP和Servlet常见问题整理

什么是JSPJava Server Page 结合 java和html在服务端动态生成web页面的技术。Jsp页面的运行过程1、请求进入Web容器,将JSP页面翻译成Servlet代码2、编译Servlet代码,并将编译过的类文件装入Web容器(JVM)环境3、Web容器为JSP页面创建一个Servlet类实例,并执行jspInit方法4、Web容器为该JSP页面调用Servlet实例的_...

2023-06-13 11:21:00 92

原创 Java学习之基础知识整理

Java介绍Java是由SUN公司在1995年推出的一套编程语言。James ArthurGosling(詹姆斯·高斯林),诞生于加拿大,生于20世纪的笨拙年代,他的职业生涯始于Sun Microsystems。他发明了Java语言,架构了SunSoft,领衔Java团队,最后以副总裁的身份在Sun Microsystems退休。他是Java编程语言的首席设计师,被誉为“Java之父”。J...

2023-06-13 10:54:00 105

原创 Java学习之SpringBoot如何实现自动配置

SpringBoot是Spring全家桶中一个具有‘跨时代’的项目框架,它减去以往传统架构繁琐的配置文件,而且可以内嵌Tomcat,所以项目依赖可以自动配置,一键启动项目。本文主要讲SpringBoot实现自动配置的流程。(个人认为SpringBoot的缺点:很多功能封装的太好了,导致如果想学习,或者解决其中的问题则对技术有了一定的要求。毕竟使用的都是Spring自己封装好的东西,想学习其中的...

2023-06-08 10:58:00 142

原创 Java+Js实现文件下载

Maven依赖 <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> <version>1.9.0</version> ...

2023-06-02 15:18:00 208

原创 Java中间件学习之RabbitMQ

什么是MQ消息队列是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。MQ是消息通信的模型,并不是具体实现。现在实现MQ的有两种主流方式:AMQP、JMS。AMQP:JMS:两者间的区别和联系:JMS是定义了统一...

2023-03-09 10:37:00 100

原创 将博客搬至CSDN

测试博客搬家

2023-03-08 22:55:00 34

原创 JAVA设计模式之单例模式

设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

2023-03-02 11:12:00 46

原创 Java学习之线程池

线程池的种类1、newCachedThreadPoolnewCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。这种类型的线程池特点是:工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。如果长时间没有往线程池中提交任务,即如果工作线程空闲了...

2023-03-01 21:52:00 38

原创 Java中间件学习之Redis

1、Redis是什么Redis是一个基于内存的高性能key-value结构的非关系型数据库。Redis 优势:性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。原子–Redis的所有操作都是原子性的,...

2023-03-01 21:38:00 174

原创 Java深克隆和浅克隆的使用和区别

背景Java中想要复制对象时,需要考虑到一个问题:如果是引用类型对象,如果只是通过一般的“=”赋值,那么因为只是把引用地址给了新对象,所以改变新对象时会因为实际改变的引用地址指向的对象,因此难免出现改变源对象的属性。例如:public class Demo1 { static class People { private String name; p...

2022-11-08 11:23:00 104

原创 Java虚拟机JVM内存模型

JVM介绍JDK:JDK全称为Java Development Kit,顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包。JRE:JRE全称为Java Runtime Environment,顾名思义是java运行时的环境,包含了java虚拟机,java基础类库,是使用java语言编写的程序运行所需要的软件环境。JVM:JVM是JavaVirtual...

2022-10-23 21:45:00 302

原创 Java多线程如何保证线程池里的线程都执行完毕

背景:项目中为了提高性能常常会引入多线程,当我们使用线程池时有时要满足“当线程池里的线程都执行完毕后才能进行下一步”这种业务场景,例如:当多线程操作一个文件时要保证所有线程都运行完毕才能保证文件的完整;当用多线程给一个对象的多个属性进行赋值时要保证线程都运行完毕才将此对象返回,否则就会出现对象属性不全。实现方式:1、使用isTerminated方法2、使用CountDownLatch3...

2022-10-15 23:36:00 1984

原创 Java中for循环中用break是跳出内层循环还是外层循环

背景:我们知道:for循环中常用“continue”跳过当前循环执行下个循环,常用“break”跳出循环,但是在for循环嵌套中break是仅跳出内层循环还是跳出所有循环呢?测试: public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (in...

2022-10-15 20:57:00 1416

原创 Java多线程中start和run方法的区别

背景:多线程相关资料和实现方法请参考:https://www.cnblogs.com/Bernard94/p/12362306.htmlRun:run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码。Start:start()是多线程中真正开启多线...

2022-10-15 20:45:00 81

原创 Java用CompareTo方法实现根据两个或多个属性对对象进行排序

CompareTo方法CompareTo是String类的方法,CompareTo(Object o1,Object o2),就是用o1和o2进行比较o1.compateTo(o2) 大于0 则o1大o1.compateTo(o2) 小于0 则o2大o1.compateTo(o2) 等于0 则一样大升序降序升序: public static void main(String...

2022-09-06 22:19:00 884

原创 Java记录用等号“=”连接多个引用类型对象(对象复制)

问题记录:引用类型对象可以通过等号“=”来实现属性的通用,原理新对象复制老对象的引用地址。举例1: public static void main(String[] args) { StringBuffer buf1 = new StringBuffer("123456"); //复制“buf1”到“buf2” StringBuffe...

2022-07-01 15:58:00 32

原创 try-catch-finally中,在catch里return了,是否还会执行finally

代码:public class Demo { public static int getNum() { int a = 0; try { a = 1 / 0; } catch (Exception e) { System.out.println("catch"); ...

2022-06-17 14:35:00 72

空空如也

空空如也

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

TA关注的人

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