自定义博客皮肤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多线程基础高级篇(详解下)面试必备1、容器1.1、容器类关系图1.2、HashMap实现分析1.2.1、JDK1.8之前并发问题1.2.2、JDK1.8并发问题1.3、HashMap并发问题解决方案2、同步容器2.1、同步容器介绍2.2、HashTable3、并发容器3.1、并发容器简介3.2、ConcurrentHashMap数据结构3.2.1、Java7基于分段的数据结构3.2.2、Java8基于CAS的数据结构3.3、ConcurrentHashMap同步原理3.3.1、Java7同步实现分析

2021-01-11 23:08:19 588

原创 java多线程基础高级篇(详解上)面试必备

java多线程高级篇(详解)1、Java内存模型1.1.Java程序执行流程回顾1.2、Java内存模型2、多线程特性3、多线程控制类3.1、ThreadLocal3.2、原子类3.2.1、非原子性操作问题演示3.2.2、原子类解决非原子性操作问题3.2.3、原子类CAS原理分析3.2.4、CAS的ABA问题及解决3.3、Lock类3.3.1.Lock接口关系图3.3.2、可重入锁CPU多级缓存1、Java内存模型Java内存模型是每个java程序员必须掌握理解的,这是Java的核心基础,对我们编写代码

2021-01-11 23:07:57 645

原创 java多线程基础(二)线程死锁及线程通讯!!面试必备

学习多线程基础(二)线程死锁及线程通讯1、线程死锁1.1、什么是死锁1.2、死锁产生的必要条件互斥条件不可剥夺条件请求与保持条件循环等待条件1.3、死锁示例代码1.4、死锁处理死锁预防1.5、死锁避免有序资源分配法银行家算法顺序加锁限时加锁死锁检测死锁恢复2、线程通讯2.1、为什么要线程通信2.2、线程通讯方式休眠唤醒方式2.3、CountDownLatch方式2.4、CyclicBarrier方式2.5、Semaphore方式小结sleep和wait区别wait和notify区别1、线程死锁1.1、什

2021-01-04 14:56:14 578

原创 java多线程基础(一)面试必备

学习高并发多线程基础必备(超详细)1、什么是并发与并行2、什么是进程、线程3、线程创建3.1、继承Thread类3.2、实现Runnable接口3.4、实现Callable接口3.5、线程池-Executor3.6、小结4、线程生命周期5、线程安全问题5.1、什么是线程安全5.2、问题演示5.3、问题分析5.4、问题解决-线程同步同步代码块(synchronized)同步方法(synchronized)同步锁(ReentrantLock)5.5、小结6、线程死锁6.1、什么是死锁6.2、死锁产生的必要条件互

2021-01-03 22:57:20 297

原创 RabbitMQ整合 SpringCloud实战

RabbitMQ整合 SpringCloud实战注意一点,在发送消息的时候对template进行配置mandatory=true保证监听有效生产端还可以配置其他属性,比如发送重试,超时时间、次数、间隔等消费端核心配置首先配置手工确认模式,用于ACK的手工处理,这样我们可以保证消息的可靠性送达,或者在消费端消费失败的时候可以做到重回队列、根据业务记录日志等处理可以设置消费端的监听个数和最大个数,用于控制消费端的并发情况@RabbitListener注解的使用消费端监听@RabbitListe

2020-12-31 18:43:21 200

原创 RabbitMQ消息模式(下)

这里写目录标题消费端限流什么是消费端的限流?消费端限流RabbitMQ提供的解决方案消息的ACK与重回队列消费端手工ACK与NACK消费端的重回队列TTL消息死信队列阶段性小结消费端限流什么是消费端的限流?假设一个场景,首先,我们RabbitMQ服务器有上万条未处理的消息,我们随便打开一个消费者客户端,会出现下面情况:巨量的消息瞬间全部推送过来,但是我们单个客户端无法同时处理这么多数据!消费端限流RabbitMQ提供的解决方案RabbitMQ提供了一种qos(服务质量保证)功能,即在非自动确认消

2020-12-31 16:44:27 126

原创 RabbitMQ消息模式(上)及幂等性概念

RabbitMQ消息模式(上)及自定义消费者消息100%的投递消息如何保障100%的投递成功?幂等性概念Confirm确认消息Return返回消息自定义消费者消息100%的投递消息如何保障100%的投递成功?什么是生产端的可靠性投递?保障消息的成功发出保障MQ节点的成功接收发送端收到MQ节点(Broker)确认应答完善的消息进行补偿机制BAT/TMD互联网大厂的解决方案:消息落库,对消息状态进行打标消息的延迟投递,做二次确认,回调检查幂等性概念幂等性是什么?我们可以借鉴

2020-12-29 22:58:27 240 1

原创 RabbitMQ入门详解

RabbitMQ入门详解RabbitMQ简介各大主流中间件对比初识RabbitMQ哪些大厂在用RabbitMQ,为什幺?RabbitMQ高性能的原因?应用场景流量削锋二级目录三级目录RabbitMQ简介Rabbit=兔子、MQ=Message queue=消息队列代表想做最快处理吞吐量的中间件各大主流中间件对比MQ选型指标图MQ 衡量指标:服务性能、数据存储、集群架构ActiveMQActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线,并且它一个完全支持 J M S

2020-12-28 20:41:44 911

原创 python入门简单函数

python入门简单函数定义函数函数返回值函数嵌套调用测试变量范围递归:函数内部调用函数本身lambda表达式定义函数1.不带参数语法: def 函数名():def say(): print("世界真美好")调用函数: 注1:必须放到定义函数的后面def test(): print("世界真美好")test()2.带一个参数的函数 注2:函数和函数之间空格两行语法: def 函数名(参数): def say(what): print(f"{what}

2020-12-24 22:50:25 517

原创 Docker数据卷实现数据共享

Docker数据卷实现数据共享Docker宿主机和容器之间文件拷贝docker copy数据卷数据卷容器Docker宿主机和容器之间文件拷贝docker copy前言:Docker 数据管理在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作容器中的管理数据主要有两种方式:数据卷 Data Volumes 容器内数据直接映射到本地主机环境;数据卷容器(Data Volume Containers 使用特定容器维护数据卷

2020-12-23 16:46:58 1238

原创 Docker网络配置部署SpringCloud项目

Docker网络配置部署SpringCloud项目Docker网络配置桥接模式仅主机模式下载tomactDocker网络模式介绍问题Docker部署SpringCloud项目Docker网络配置桥接模式仅主机模式下载tomactsudo docker pull tomcatDocker网络模式介绍Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用–net去指定,其他三种模式需要在创建容器时使用–net去指定1.br

2020-12-20 19:45:37 397 1

原创 Docker镜像上传至阿里云及镜像瘦身

Docker镜像上传至阿里云及镜像瘦身alpine制作jdk镜像Alpine制作jre镜像Docker镜像上传至阿里云前期准备alpine制作jdk镜像alpine Linux简介1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和BusyBox以减少系统的体积和运行时的资源消耗。2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alp

2020-12-18 22:13:58 440 1

原创 springcloud新注册中心nacos实现服务注册与发现(入门)

springcloud新注册中心nacosSpring Cloud Alibaba介绍图解启动nacos服务入门案例创建父模块创建服务提供者provider创建服务消费者consumerSpring Cloud Alibaba介绍2018 年 10 月 31 日的凌晨,Spring Cloud Alibaba 正式入驻了 Spring Cloud 官方孵化器,并在 Maven 中央库发布了第一个版本。Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应

2020-12-18 16:36:48 894 1

原创 FinalShell下载与安装(小白式安装)

FinalShell下载与安装下载地址安装下载地址Windows版下载地址:http://www.hostbuf.com/downloads/finalshell_install.exe安装下载后在文件夹中打开,双击安装都是傻瓜式安装安装成功进行连接使用即可

2020-12-18 11:15:10 5981

原创 python基本运算符,while循环(0基础,小白入门版)

python基本运算符,while循环算术运算符赋值运算符比较运算符:结果: True False逻辑运算符位运算符:将左右两边的数字转成二进制三元运算符条件运算符:if elif else循环语句 while for随机数算术运算符1.两个数值相加,是加法2.两个字符串相加,就是拼接功能from decimal import Decimal #导入模块# print(4+5)# print("a"+"b")a=2.3b=1.9 #由于是将小数转换为2进制的形式 导致精度丢失p

2020-12-17 21:27:36 355 2

原创 学习Dockerfile这一篇就够了

学习Dockerfile这一篇就够了1.什么是Dockerfile2. dockerfile基本结构3.使用Dockerfile基于centos创建JDK8的镜像1.什么是Dockerfiledockerfile是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像,另外,使用Dockerfile去构建镜像好比使用pom去构建maven项目一样,有异曲同工之妙2. dockerfile基本结构基础镜像信息FROM指定哪种镜像为新镜像的基础镜像,比如ubuntu,c

2020-12-15 21:22:10 231

原创 小白入门,初识Docker

小白入门,初识DockerDocker是什么Docker与虚拟化Docker虚拟化的好处核心概念案例镜像的操作配置加速器2.修改docker相关配置3.重新加载配置4.重启docker2.搜索镜像3.下载镜像容器的操作Docker是什么Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs),它是完整的一套容器管理系统Docker提供了一组命令,让用户更加方便直接地使用容器技术,而无需要过多关心底层内核技术注1:什么是容器一个容器就相当于一个虚拟机注2:

2020-12-15 01:03:05 187

原创 SpringCloud配置中心Config Server、Client基本操作及Config整合Eureka

SpringCloud配置中心Config Server、Client基本操作及Config整合EurekaSpringCloud Config简介Config Server基本使用Config Client基本使用Config整合EurekaConfig配置搜索路径SpringCloud Config简介Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端

2020-12-14 23:02:19 3667

原创 Zuul路由网关(Zuul路由映射配置+请求过滤配置)

Zuul路由网关(Zuul路由映射配置+请求过滤配置)Zuul路由网关简介及基本使用为什么要使用zuul网关?简介实践Zuul 路由配置zuul网关服务超时时间设置Zuul路由映射配置Zuul请求过滤配置Zuul路由网关简介及基本使用为什么要使用zuul网关?就是为了安全,zuul网关是springcloud提供的安全机制简介Zuul API路由网关服务简介请看上图,这里的API 路由网关服务 由Zuul实现,主要就是对外提供服务接口的时候,起到了请求的路由和过滤作用,也因此能够隐藏内部服务的

2020-12-13 18:24:57 1139 2

原创 真小白入门,python的安装及pycharm的使用

Python入门python的发展史python的可以用来做什么python解析器及PyCharm开发工具安装下载Python解析器1、下载链接2、安装解析器3、测试是否安装完成安装PyCharm1、下载链接2、傻瓜式安装PyCharm的简单使用注释的分类变量的定义格式化输出python的发展史Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ABC 语言的一种继承。之所以选中 Python(大

2020-12-12 16:24:28 524 1

原创 SpringCloud监控turbine及Feign、Hystrix整合之服务熔断服彻底解耦

SpringCloud监控turbine及Feign、Hystrix整合之服务熔断服彻底解耦Hystrix集群及监控turbineFeign、Hystrix整合之服务熔断服务降级彻底解耦集群后超时设置Hystrix集群及监控turbine前面Dashboard演示的仅仅是单机服务监控,实际项目基本都是集群,所以这里集群监控用的是turbine。turbine是基于Dashboard的。先搞个集群;再microservice-student-provider-hystrix-1004项目的基础上再搞

2020-12-12 00:40:44 166

原创 SpringCloud服务雪崩熔断降级及Hystrix服务监控Dashboard

SpringCloud服务雪崩熔断降级及Hystrix服务监控Dashboard服务雪崩效应服务熔断服务降级Hystrix断路器简介代码实践Hystrix默认超时时间设置Hystrix服务监控Dashboard服务雪崩效应当一个请求依赖多个服务的时候:正常情况下的访问但是,当请求的服务中出现无法访问、异常、超时等问题时(图中的I),那么用户的请求将会被阻塞。如果多个用户的请求中,都存在无法访问的服务,那么他们都将陷入阻塞的状态中。Hystrix的引入,可以通过服务熔断和服务降级来解决这个问

2020-12-10 22:11:05 230

原创 SpringCloud微服务Ribbon负载均衡及Feign应用

SpringCloud微服务Ribbon负载均衡及Feign应用微服务调用Ribbon简介初步应用Ribbon负载均衡Feign简介及应用简介应用微服务调用Ribbon简介前面讲了eureka服务注册与发现,但是结合eureka集群的服务调用没讲。这里的话 就要用到Ribbon,结合eureka,来实现服务的调用;Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为。为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去

2020-12-10 15:52:06 206

原创 SpringCloudEureka集群搭建

SpringCloudEureka集群搭建Eureka集群搭建为什么要Eureka集群高可用集群配置画图理解案例改进版集群Eureka自我保护机制Eureka集群搭建为什么要Eureka集群当只有一个注册中心的情况下发送宕机、消费方就不能服务了,为了避免这种情况发生;于是创建多个形成一个集群高可用集群配置当注册中心扛不住高并发的时候,这时候 要用集群来扛;画图理解案例我们再新建两个module microservice-eureka-server-2002 microservice-e

2020-12-08 21:55:13 168

原创 SpringCloud入门初识eureka注册中心

SpringCloud入门初识eureka注册中心Springcloud简介简介入门案例创建父工程microservice创建通用模块microservice-common创建服务提供者microservice-student-provider-1001创建服务消费者microservice-student-consumer-80成功结果图如下初识eureka简介Eureka的使用Springcloud简介简介Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙

2020-12-08 15:24:18 169

原创 SpringBoot集成quartz完成定时任务

SpringBoot集成quartz完成定时任务Spring整合Quartz读取数据库中表达式启动定时任务Spring整合Quartz项目结构首先我们要知道我们整合Quartz需要哪些步骤1、进入quartz的官网http://www.quartz-scheduler.org/,点击Downloads,下载后在目录\docs\dbTables下有常用数据库创建quartz表的脚本,例如:我使用的是“tables_mysql.sql”表,它里面有11张表2、创建项目时我们所选的依赖还有

2020-12-07 17:54:13 438

原创 Quartz框架入门及应用场景

Quartz入门案例及应用场景Quartz简介及应用场景1. Quartz介绍2. Quartz的触发器3. 存储方式quartz相关表达式案例Quartz简单触发器 SimpleTrigger介绍Quartz表达式触发器CronTirgger介绍Quartz中参数传递Spring task Vs QuartzQuartz简介及应用场景1. Quartz介绍任务调度框架“Quartz”是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任

2020-12-03 15:16:42 838

原创 SpringBoot之JPA实现bootstrap界面版案例以及图片上传

SpringBoot之JPA实现bootstrap界面版案例以及图片上传1.什么是jpa呢?2.jpa具有什么优势?3.基于注解的使用3.1 JPA拥有哪些注解呢?案例4.Springboot+bootstrap界面版之增删改查及图片上传1.什么是jpa呢?JPA顾名思义就是Java Persistence API的意思,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。2.jpa具有什么优势?2.1标准化JPA 是 JCP 组织发布的 Java EE

2020-12-02 15:40:48 353

原创 SpringBoot整合Redis及注解式开发

SpringBoot整合Redis及注解式开发SpringBoot整合Redis及注解式开发SpringBoot配置类实践导入redis的依赖配置application.yml创建RedisConfig常用缓存注解案例测试SpringBoot整合Redis及注解式开发SpringBoot配置类注解标签@Configuration@Configuration底层是含有@Component ,所以@Configuration 具有和 @Component 的作用。@Configuration可理解为

2020-12-01 00:31:20 429

原创 springboot配置数据库连接池druid整合mybatis整合pagehelper

springboot配置数据库连接池druid整合mybatis整合pagehelper1、springboot配置数据库连接池druid什么是Druid是什么?实践案例2、springboot整合mybatisspringboot整合mybatis逆向生成插件3、springboot整合pagehelper1、springboot配置数据库连接池druid什么是Druid是什么?Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后

2020-11-29 22:08:00 482 3

原创 解决java.nio.charset.MalformedInputException: Input length = 1(mybatis绑定失败的两个原因)

1、其中一个最容易找的原因是interface 和 xml的 namespace 对应不上2、还有一种情况是application.yml的编码问题,会导致去是添加resouce的配置(如下)时出现java.nio.charset.MalformedInputException: Input length = 1,mybatis也绑定不上。此时应该做的的是将所有的编码都转为utf-8。此处idea为例File --> Settings --> Editor —>File Encod

2020-11-29 16:17:26 32926 5

原创 springboot笔记thymeleaf模板和freemarker模板

SpringBoot之Thymeleaf模板和Freemarker模板前言Thymeleaf模板Thymeleaf 是个什么?案例Freemarker模板什么是 FreeMarker?案例前言上一篇博客创建项目时所勾选Thymeleaf和Apache Freemarker只是简单的跳过,这篇博客就来详细解释一下这两个模板注:基于上篇博客项目链接:SpringBoot入门.Thymeleaf模板Thymeleaf 是个什么?简单说, Thymeleaf 是一款用于渲染XML/XHTML/HTM

2020-11-29 08:41:58 487

原创 SpringBoot入门

SpringBoot入门SpringBoot是什么?1、使用Idea配置SpringBoot项目项目结构介绍测试案例代码Springboot配置文件内置属性自定义属性属性封装类SpringBoot是什么?Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jac

2020-11-26 22:01:17 368 1

原创 小白学习java自定义注解

小白学习java自定义注解Java注解简介1. Java注解(Annotation)2. Java注解分类3. JDK基本注解Java元注解自定义注解注解分类(根据Annotation是否包含成员变量,可以把Annotation分为两类):如何自定义注解?案例测试案例1.(获取类与方法上的注解值)案例2(获取类属性上的注解属性值)案例3(获取参数修饰注解对应的属性值)Aop自定义注解的应用Java注解简介1. Java注解(Annotation)Java注解是附加在代码中的一些元信息,用于一些工具在编

2020-11-26 14:29:50 191

原创 Linux解决输入ip addr或者ifconfig没有得到ip地址

Linux解决输入ip addr或者ifconfig没有得到ip地址问题解决问题问题:想要和xshell 相连接,首先得知道虚拟机中Linux的以太网地址。结果输入ifconfig 或者ifconfig -a之后没有显示eth0首先要确保能连上网络,其次检查解决解决方案:首先要确保能连上网络,其次在硬件设置处检查网络适配器的桥接状态,点击第一个桥接,在复制物理网络链接状态打勾。随后再打开虚拟机,然后输入ifup eth0,最后输入ifconfig即可...

2020-11-20 14:51:41 2937

原创 SSM后台与前台

这里写目录标题后台前台后台pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/x

2020-11-19 16:00:49 679

原创 Git之idea配置使用+Gui的使用

这里写目录标题Gui的使用Ssh key 介绍及使用Ssh key介绍Ssh key配置远程github仓库配置Idea配置使用并使用gitGui的使用1、下载汉化包链接:https://pan.baidu.com/s/19YDqq1Ijl5bEVtobX7B7HQ.提取码:v87e2、把压缩包中的msgs文件夹copy到 Git安装目录/mingw64/share/git-gui/lib汉化完成!Gui可视化画工具代替了部分之前的命令列如:之前我们修改了什么文件会使用git status

2020-11-03 11:45:22 662 1

原创 解决GUT GUI中文乱码问题

解决GUT GUI中文乱码问题使用Git GUI的查看代码的时候,会出现中文乱码:使用Git GUI的查看代码的时候,会出现中文乱码:在乱码的区域点击鼠标右键,选择Encoding,然后选择Unicode(UTF-8),乱码问题解决:解决!!!...

2020-11-02 19:30:48 273

原创 GIT入门与常用命令

这里写目录标题git与github介绍Git是什么版本控制器SVNGITGit与SVN区别(重点记录1/2/3点)Github 的简单使用Git下载安装Git常用命令Git命令使用场景git文件状态与工作区域(重点)常用命令(重点)实践操作:使用git提交文件至远程仓库(重点)工作目录中初始化新的仓库(本地),然后再与一个Github上的仓库(远程)关联GIT冲突git与github介绍Git是什么Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目版本控制器CVS/

2020-11-02 18:04:26 145 1

原创 解决git init后没有看到生成的.git文件

解决git init后没有看到生成的.git文件问题解决问题使用git init 命令后看不到.git文件解决原因是文件夹将.git文件设置隐藏了

2020-11-01 20:09:03 4758 5

空空如也

空空如也

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

TA关注的人

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