自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (4)
  • 收藏
  • 关注

原创 【ZooKeeper】什么是ZooKeeper

文章目录ZooKeeper简介ZooKeeper的应用场景集群ZooKeeper简介官网:https://zookeeper.apache.org/什么是 ZooKeeper?官网解释:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

2020-10-31 10:06:52 1669

原创 Java学习路线及文章汇总

持续更新中文章目录JavaSE环境搭配基础语法面向对象数组集合常用APIIO流反射机制多线程与并发异常网络编程数据库关系型数据库非关系型数据库前端技术(Javaweb)HTML5CSSJavaScriptJQueryAjaxwebpackelementUIVue微信小程序ServletJSPELJSTLCookieSessionFilterListenter编程强化设计模式JVM优化数据结构与算法多线程高级MINANettyNIO软件项目管理MavenSVNGit码云JenkinsSonar热门框架S.

2020-10-29 21:20:21 1434

原创 ABA问题

文章目录什么是CAS什么是ABA问题什么是CASCAS(Compare And Swap)指比较并交换。CAS算法CAS(V, E, N)包含3个参数,V表示要更新的变量,E表示预期的值,N表示新值。在且仅在V值等于 E值时,才会将V值设为 N,如果 V值和 E值不同,则说明已经有其他线程做了更新,当前线程什么都不做。最后,CAS返回当前V的真实值。CAS的特性:乐观锁CAS操作采用了乐观锁的思想,总是认为自己可以成功完成操作。在有多个线程同时使用CAS操作一个变量时,只有一个会胜出并

2020-10-29 12:22:00 652

原创 Java中的线程调度

文章目录抢占式调度协同式调度Java线程调度的实现线程让出 CPU 的情况抢占式调度抢占式调度指每个线程都以抢占的方式获取CPU资源并快速执行,在执行完毕后立刻释放CPU资源,具体哪些线程能抢占到CPU资源由操作系统控制,在抢占式调度模式下,每个线程对CPU资源的申请地位是相等,从概率上讲每个线程都有机会获得同样的CPU执行时间片并发执行。抢占式调度适用于多线程并发执行的情况,在这种机制下一个线程的堵塞不会导致整个进程性能下降。协同式调度协同式调度指某一个线程在执行完后主动通知操作系统将CP

2020-10-28 12:12:00 374

原创 Java并发关键字

文章目录CountDownLatch(线程计数器)CyclicBarrier(循环屏障)CountDownLatch(线程计数器)CountDownLatch 类位于 java.util.concurrent 包下,利用它可以实现类似计数器的功能。比如有一个任务 A,它要等待其他 4 个任务执行完毕之后才能执行,此时就可以利用 CountDownLatch来实现这种功能了。CountDownLatch基于线程计数器来实现并发访问控制,主要用于主线程等待其他子线程都执行完毕后执行相关操作。其使

2020-10-27 18:35:31 381

原创 如何在两个线程之间共享数据

文章目录前言方法一方法二前言Java 里面进行多线程通信的主要方式就是共享内存的方式。共享内存主要有三个关注点:可见性、有序性、原子性。Java内存模型(JVM)解决了可见性和有序性的问题,而锁解决了原子性的问题。在理想情况下,我们希望做到同步和互斥来实现数据在多线程环境下的一致性和安全性。常用的实现多线程数据共享的方式有将数据抽象成一个类,并将对这个数据的操作封装在类的方法中;将Runnable对象作为一个类的内部类,将共享数据作为这个类的成员变量。方法一将数据抽象成一个类,并将对这个

2020-10-26 21:52:39 6877 3

原创 Java并发编程(Java阻塞队列)

文章目录Java阻塞队列Java阻塞队列队列是一种只允许在表的前端进行删除操作,而在表的后端进行插入操作的线性表。阻塞队列和一般队列的不同之处在于阻塞队列是“阻塞”的,这里的阻塞指的是操作队列的线程的一种状态。在阻塞队列中,线程阻塞有如下两种情况。...

2020-10-25 17:03:26 338

原创 Java并发编程(线程上下文切换)

文章目录线程上下文切换进程上下文寄存器程序计数器PCB:切换桢上下文切换引起线程上下文切换的原因线程上下文切换巧妙地利用了时间片轮转的方式, CPU 给每个任务都服务一定的时间,然后把当前任务的状态保存下来,在加载下一任务的状态后,继续服务下一任务,任务的状态保存及再加载, 这段过程就叫做上下文切换。时间片轮转的方式使多个任务在同一颗 CPU 上执行变成了可能。进程(有时候也称做任务)是指一个程序运行的实例。在一个进程内部可以有多个线程在同时运行,并与创建它的进程共享同一地址空间(一段内存区域)

2020-10-24 23:15:10 764

原创 Java并发编程(Java中的锁)

文章目录Java锁乐观锁悲观锁自旋锁自旋锁的优缺点自旋锁的时间阈值synchronizedsynchronized的作用范围Synchronized 核心组件synchronized的用法简介Java锁Java锁的作用?Java中的锁主要用于保障多并发线程情况下数据的一致性。怎样保障数据的一致性?在多线程编程中为了保障数据的一致性,我们通常需要在使用对象或者方法之前加锁,这时如果有其他线程线程也需要使用该对象或者该方法,则首先要获得锁,如果某个线程发现锁正在被其他线程使用,就会进入阻塞队列等待

2020-10-24 00:04:15 1070 1

原创 【算法】分治算法

文章目录基本思想复杂度分析二分搜索:有序数列快速排序随机快速排序归并排序基本思想定义:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。总体思想:将待求解的较大规模的问题分割成k个更小规模的子问题对这k个子问题分别求解如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归进行下去直到问题规模足够小、可以直接求出其解为止将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解适用条件:分治法所能解决的问题一般具有

2020-10-22 22:49:06 1713

原创 Java并发编程(线程 的生命周期和基本方法)

文章目录线程的生命周期(状态)新建状态(NEW)就绪状态(RUNNABLE)运行状态(RUNNING)阻塞状态(BLOCKED)线程死亡(DEAD)终止线程的4种方式线程的生命周期(状态)当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead) 5 种状态。尤其是当线程启动以后,它不可能一直"霸占"着 CPU 独自运行,所以 CPU 需要在多条

2020-10-21 16:00:53 292 1

原创 Java并发编程(线程池原理)

文章目录线程池的工作原理线程复用线程池的核心组件和核心类线程池工作流程线程池拒绝策略1.AbortPolicy2.CallerRunsPolicy3.DiscardOldestPolicy4.DiscardPolicy5.自定义拒绝策略5种常用的线程池线程池的工作原理为什么要有线程池?Java线程池主要用于管理线程组及其运行状态,以便Java虚拟机更好地利用CPU资源。什么是线程池?线程池其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作, 无需反复创建

2020-10-19 21:27:04 206

原创 Java并发编程(线程)

文章目录并发与并行进程与线程线程的创建方式继承Thread类实现Runnable接口通过ExecutorService和Callable并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。而在多个 CPU 系统中,

2020-10-18 22:11:25 135 2

原创 【算法】递归算法

递归算法详解一、递归算法递归的概念:直接或间接地调用自身的算法称为递归算法。递归的要素包括:递归表达式和递归结束条件。阶乘函数求某个数的阶乘:递归表达式:n!= n * (n-1)!递归结束条件:n=0时 0!=1实现代码public class Blog { public static void main(String[] args) { //测试: Sy

2020-10-17 09:52:45 966

原创 Java集合

文章目录前言一、List集合:可重复1.ArrayList集合2.LinkedList集合3.Vector集合二、Queue三、Set集合:不可重复1.HashSet 集合:HashTable实现,无序2.TreeSet集合:二叉树实现3.LinkedHashSet集合:HashTable实现数据存储,双向链表记录顺序四、Map集合1.HashMap:数组+链表存储数据,线程不安全2.ConcurrentHashMap:分段锁实现,线程实现3.HashTable:线程安全4.TreeMap:基于二叉树数据结

2020-10-16 09:15:01 308 1

原创 【算法】冒泡排序 选择排序 插入排序

文章目录一、冒泡排序二、选择排序三、插入排序一、冒泡排序实现思想:比较相邻的两个元素,第一个比第二个大,就交换他们,第一轮交换下来,最大的数一定在最后一个,第二轮下来,第二大的数就会在倒数第二的位置…例如对数组[2,1,4,8,6,3]进行冒泡排序:相邻数的比较,左边大,交换两个数第一轮:1,2,4,6,3,8 ==》找出了最大的数第二轮:1,2,4,3,6, 8 ==》找出了第二大的数第三轮:1,2,3,4,6, 8 ==》找出了第三大的数第四轮:1,2,3,4,

2020-10-15 12:36:01 152 1

原创 【Spring Boot】Dubbo和Zookeeper

文章目录一、分布式系统二、RPC三、Dubbo1.Dubbo环境搭配ZookeeperDubbo-admin安装检查2.使用服务提供者(Provider)服务消费者(Consumer)一、分布式系统分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升

2020-10-15 12:02:20 446 3

原创 【Spring Boot】异步任务 定时任务 邮件发送

文章目录一、异步任务二、定时任务三、邮件发送一、异步任务步骤:在需要异步的方法前加上注解:@Asyncspringboot启动类加上开启异步的注解:@EnableAsync例子:一个service类:有一个test异步方法,停顿6s后输出XX在控制台。@Servicepublic class TestService { //告诉Spring===》这是一个异步的方法:@Async @Async public void test(){

2020-10-14 12:37:49 175

原创 【Spring Boot】Swagger集成springboot

文章目录一、环境配置一、环境配置配置springboot-web项目,参考文章:【Spring Boot】快速上手SpringBoot导入swagger相关依赖: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> &

2020-10-13 09:43:27 135

原创 【Spring Boot】Shiro在SpringBoot的使用

文章目录一、环境配置二、Shiro使用三、配合数据库使用Shiro一、环境配置一般springboot环境配置文章指路:【Spring Boot】快速上手SpringBoot导入shiro整合spring的依赖: <!--shiro整合spring--> <!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-spring --> <dependen

2020-10-12 09:13:53 410

原创 【Spring Boot】Spring Security的使用

文章目录一、配置Spring Security环境二、Spring Security1.怎样配置Security2.授权3.认证4.注销5.自定义登录页面6.RememberMe功能一、配置Spring Security环境新建工程:参考文章【Spring Boot】快速上手SpringBoot导入Spring Security的依赖pom.xml: <dependency> <groupId>org.springframework

2020-10-11 09:41:01 340

原创 【Spring Boot】整合Mybatis

文章目录一、配置环境二、整合Mybatis一、配置环境参考文章:【Spring Boot】快速上手SpringBoot在选择 dependencies的是增加两个SQL依赖,JDBC API和MySQL Driver(还要添加Web依赖)3.在pom.xml中mybatis和springboot的依赖: <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-sta

2020-10-10 09:08:51 299

原创 【Spring Boot】数据库连接和Druid使用

文章目录一、配置环境二、配置数据库信息并测试三、Druid数据源1. 简介2. 使用步骤一、配置环境参考文章:【Spring Boot】快速上手SpringBoot在选择 dependencies的是增加两个SQL依赖,JDBC API和MySQL Driver二、配置数据库信息并测试springboot的默认配置文件是application.properties,可以换成YAML配置,具体操作参考文章:【Spring Boot】配置文件之YAMLapplication.yam

2020-10-09 08:46:57 724

原创 【Spring Boot】登录拦截器

文章目录一、登录验证二、登录拦截器一、登录验证简单登入界面:login.html<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title>Login in</title></head><body><form action

2020-10-06 11:19:03 777

原创 【Spring Boot】页面国际化实现

文章目录一、什么是国际化?二、如何实现国际化?一、什么是国际化?例如我们的dubbo.apache.org ,进入是一个默认英文的网站,右上角有个中字,点一下就会帮我们切换成中文网站,这就是国际化。二、如何实现国际化?确保我们的File Encodings都是UTF-8在resource目录下新建一个 i18n目录(i18n是internationalize国际化的简写)新建几个properties文件,然后就会自己建立Resource Bundle…目录XXX.properti

2020-10-05 12:21:30 525

原创 【Spring Boot】装配扩展SpringMVC

文章目录前言1.视图跳转2.视图解析器前言可以查看官方文档:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-spring-mvc-auto-configuration保持上面的特性,扩展MVC,可以写一个class,加上注解@Configuration和接口WebMvcConfigurer,并且不能加@EnableWebMvc,如果加上@EnableWebMvc,就不是扩展了,而

2020-10-04 11:00:59 264

原创 【Spring Boot】Thymeleaf模板引擎

文章目录一、前言二、Thymeleaf模板引擎三、Thymeleaf语法1. th:text&th:utext2.遍历一个集合3.表达式一、前言为什么要使用模板引擎?SpringBoot是以jar的方式,不是war方式,那么什么是JAR和WAR?JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。WAR是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目

2020-10-04 10:57:51 257

原创 【Spring Boot】静态资源导入和首页设置

文章目录一、静态资源导入1.源码分析2.小结二、设置首页1.源码分析一、静态资源导入1.源码分析查看源码:WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter中有关资源处理的方法addResourceHandlers如下: public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProper

2020-10-03 16:11:58 454

原创 【Spring Boot】JSR303校验

文章目录基本的校验规则基本的校验规则空检查注解应用@Null验证对象是否为null@NotNull验证对象是否不为null, 无法查检长度为0的字符串@NotBlank检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.@NotEmpty检查约束元素是否为NULL或者是EMPTY.Booelan检查注解应用@AssertTrue验证 Boolean 对象是否为 true@A

2020-10-03 11:10:16 217

原创 【Spring Boot】配置文件之YAML

文章目录一、配置文件二、application.yaml配置文件一、配置文件配置文件的作用:修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了SpringBoot使用一个全局的配置文件,配置文件名称是固定的(二者选其一)1)application.properties:语法结构key=value(默认)server.port=80812)application.yaml:语法结构key:空格valueserver: port: 80

2020-10-02 14:25:36 739

原创 【Spring Boot】快速上手SpringBoot

文章目录一、微服务架构二、SpringBoot三、Idea创建一个SpringBoot项目四、SpringBoot自动装配原理一、微服务架构微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。all in one的架构方式,我们把所有的功能单元放在一个应用里面。然后我们把整个应用部署到服务器上。如果负载能力不行,我们将整个应用进行

2020-10-01 22:22:37 2152

jdk-8u351-windows-x64.exe.zip

jdk-8u351安装环境

2024-08-20

neo4j-community-3.5.31-windows

neo4j-community-3.5.31-windows,社区免费版,windows使用,版本号3.5.31

2022-03-27

PD15.1.rar

PowerDesigner15.1安装包

2021-01-20

dubbo-admin-0.0.1-SNAPSHOT.jar

Dubbo:搭建管理控制台(dubbo-admin),可以直接在CMD下运行,用户密码(注意:root用户的密码是root,guest用户的密码是guest)

2020-10-15

NavicatforMySQL.rar

Navicat 是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。

2020-04-30

空空如也

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

TA关注的人

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