自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (2)
  • 收藏
  • 关注

原创 Map接口详解

Map<K,V> 是 Java 中特别常见的一种数据类型,以键值对存储数据。日常开发中,最常用的几个Map:HashMap,ConcurrentHashMap 等当然,一位合格的程序员都会深入学习,查看这些类的源码,首先我们要从源头开始看起,这些类都是 Map,我们先看看 Map 到底是个什么?首先我们先看看 Map 族谱 【常用类】Map族谱首先,我们看看整个继承图谱的源头:Map接口Map <<interface>>Map ..

2021-01-14 23:10:26 2372 2

原创 实战—责任链模式

责任链最近在开发一个比较复杂的系统,系统中目前写到了工作流(工作流是公司内架构师设计)模块。某一工作流中针对一个对象的属性、参数校验,而不同的工作流可冗余了其中的某些校验代码。对象的单独特征的校验在不同的工作流中存在复用,使用责任链模式将各个校验器进行单独开发,然后链起来,以达到高复用的目的。正文设计模式在我们日常的开发中是非常热门的一项话题。 开发不是按照设计模式进行死板的开发,而是开发出来后,根据实际场景进行迭代,迭代后发现其满足某项设计模式。 所以别想着死套设计模式到你的代码之中,而是

2022-01-28 06:00:00 935

原创 Spring-@Bean

@Bean 注解是非常常见的一个注解,我们将一个非 @Component 的类交给 Spring 容器管理,就需要用到 @Bean 注解。但是 @Bean 注解并不只是表面上看起来这么简单。本文章将从 @Bean 的初步使用描述,源码待续。。目录@Bean 将类交给容器管理@Bean注解内的信息@Bean(autowireCandidate = false) 的使用@Bean 将类交给容器管理首先创建一个UserService, 不标记 @Component 注解..

2022-01-20 08:42:16 461

原创 Spring-@Value

Spring源码

2022-01-19 09:04:53 290

原创 Linux目录配置

Linux目录配置内容参考《鸟哥的LINUX私房菜》Linux的目录的划分有一个FHS(FileSystem Hierarchy Standard) 标准。用于保证操作系统文件夹创建的规范相同。1.按照交互作用分 可分享(shareable) 不可分享(unshareable) 不变(static) /usr (软件存放处) /etc(配置文件) /opt (第三方辅助软件) /boot(启动与内核文件) 可变动(variabl...

2021-05-01 01:17:12 144 1

原创 AbstractMap详解

Abstract 内容很简单,但是中间还是有一些细节需要注意首先我们先回顾一下Map 的族谱1、Map 族谱从图谱中可以明显的看出 AbstractMap 扮演了一个很重要的角色。下面我们来看看 AbsctractMap 中到底有哪些东西吧2、接口定义 // 包:java.util package java.util; import java.util.Map.Entry; ​ public abstract class AbstractMap<K...

2021-01-22 12:47:25 1658

原创 nginx配置文件解读

在我们使用 Docker 启动 nginx 镜像容器后,就可以进行访问了[root@Dcpent]# docker run -d --name nginx -p 80:80 nginx:1.18安装 nginx 只是学习的第一步,下一步便是配置 nginx,进行代理、负载均衡等操作了配置文件预览进入 docker 里面,查看 /etc/ngin/nginx.conf 文件 yum 安装的将会把配置文件放在这个地方。index.html 在/usr/share/nginx/htm..

2021-01-21 22:18:15 237 2

原创 centos开启网络

centos开启网络安装完成后,你想使用 ip addr 查看ip,发现并没有显示出ip这是因为没有开启网卡:步骤1. 进入配置文件的目录[root@dcpnet]# cd /etc/sysconfig/network-scripts/2.查看配置文件[root@dcpnet]# ls3.编辑文件[root@dcpnet]# vi ifcfg-ens33将 最后一行的 ONBOOT=no 改为yes4.重启网络服务[root@dcp...

2021-01-21 15:53:58 2082

原创 Redis-基本数据类型

最近我问了很多小伙伴,他们对 Redis(远程字典服务) 大多数还是停留在String 类型上的使用【80%,还是有点可怕】Redis 设计出了其他类型的数据类型,一定是有他的道理和使用场景的,大家还是多去了解一下其他的数据类型的使用和场景。不要做一个简单的 API 工程师。好了,废话少说,开始正文目录Redis 6中基本数据类型是否开启缓存的因素思考因素字符串类型基本命令使用示例运算命令运算使用示例批量操作命令使用示例使用场景Re..

2021-01-12 20:32:32 513 2

原创 大数据时代的3V&3高

大数据时代的3V&3高在21世纪初,互联网得用户还不是很广泛。所以大部分的系统都是单机系统,对系统的性能得要求并不是很高。2010-2020 这个时间段,个人微机急剧增加,互联网用户数量进入一个急剧增长的时代。当然,电脑并不是每家每户都需要,所以只需要给系统部署一个缓存(当时是 Memcache),已经足够使用。另一个产品的推出,使得互联网用户爆发增长--智能手机。人人拥有一个智能手机,通过手机去访问访问网站。用户的增多意味着数据的增长,数据更多样化,并且...

2021-01-11 22:40:29 1211

原创 Dockerfile创建开启ssh服务镜像

为镜像添加SSH服务虽然进入容器可使用 attach 、 exec命令等,但是无法进行远程访问。这时候需要给镜像添加SSH 服务了。有两种方式: 使用 Dockerfile 进行添加 使用 Docker commit 命令 这里我们使用 Dockerfile 创建目录为镜像添加SSH服务创建工作目录创建 Dockerfile 和 run.sh 文件编写 run.sh在宿主主机上生成 SSH 密钥对,并创建 authorized_keys 文件编写 Do

2021-01-07 15:37:48 2772 3

原创 Docker 数据管理

Docker 数据管理生产环境使用 Docker 的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作容器中管理数据的主要方式:数据卷 (Data Volumes) :容器内数据直接映射到本地主机环境数据卷容器 (Data Volume Containers) : 使用特定容器维护数据卷目录Docker 数据管理数据卷特性创建数据卷数据卷容器创建数据卷容器利用数据卷迁移数据备份恢复...

2021-01-07 00:00:29 180 1

原创 Dockerfile入门

DockerfileDockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 来快速创建自定义的镜像--内容参考 《Docker技术入门与实战第2版》Dockerfile 由一行行命令语句组成,并且支持 # 开头的注释行目录Dockerfile1.预览2.指令说明2.1 FROM2.2 MAINTAINER2.3 RUN2.4 CMD2.5 LABEL2.6 EXPOSE2.7 ENV2.8 ADD2.9 C.

2021-01-06 23:11:34 292

原创 Docker 容器

Docker容器容器是Docker的另一个概念。就像我们使用的Vmware一样。需要使用一个镜像再Vmware中创建一个虚拟机,而每一个虚拟机需要一个镜像文件。而Docker 是更加轻量级的实现。目录Docker容器1.创建 Docker 容器1.1 create 命令与容器运行模式相关选项1.2 create 命令与容器环境配置相关选项1.3 create 命令与容器资源限制和安全保护相关的选项2.创建后启动容器3.新建并启动容器3.1 退出错误码3.2 后台方

2021-01-05 17:52:46 123

原创 使用Docker镜像

Docker目录Docker1.获取镜像1.1 语法格式1.2 使用示例1.3 参数的使用1.4 实验2.查看镜像的信息2.1 简单使用2.2 信息内容2.3 参数的使用2.4 使用 tag 命令添加镜像标签2.5 Inspect 查看一个镜像的详细信息2.6 history 查看镜像历史3.查找镜像4.删除镜像4.1 使用镜像标签删除4.2 使用镜像ID删除5.创建镜像5.1 基于已有的镜像进行创建5.2 使用示例5.

2021-01-04 17:46:02 134

原创 CentOS上进行RabbitMQ安装到集群

通过 Bilibili 中的UP主视频学习 : 编程不良人 如果不想看视频,可以直接看本文进行集群,与视频内容有所改变。主要是为了更快速和更方便。在实际的生产环境中,RabbitMQ一般应用在分布式系统之中,因此要进行集群。在 RabbitMQ 官网中,讲述了两种集群的方式:一种是普通(副本)集群,一种是镜像集群我们先看看什么是普通(副本)集群和什么是镜像集群:普通(副本)集群RabbitMQ 官方解释What is Replicated?All data/state r.

2020-12-31 00:22:08 294 1

原创 RabbitMQ->Topic

RabbitMQ->Topic在看了 上一个实验RabbitMQ->路由订阅模型(direct)之后,发现分级消息通知很适合我们的生活中的实际场景。反思上一个实验:但是我们仔细思考一下,一个班级有很多个科任老师,每个科任老师都有自己的课程内容。如果按照上面一个实验的流程来写, // EXCHANGE_NAME (班主任) // 绑定 info 键值 channel.queueBind(queueName,Consta...

2020-12-28 14:47:31 2450 1

原创 RabbitMQ->路由订阅模型(direct)

RabbitMQ->路由订阅模型(direct)思考广播模型虽然很方便,但是涉及到分别对待处理的时候,就不能处理了。试想:班级中,老师通知大家有集体活动,所有学生都接收到此消息。但是要分配任务,就给部分学 生去分配任务->比如通知班长去统计要参加的人,通知组长传达详细内容 等等这时广播模式就不是很适用了,因为有分级权限和对应的消息,要传达给不同身份的人。有一些内容是不能让所有人都知道的,而是其中的一部分。因此路由订阅模型(direct) 就出现了,非常适合这.

2020-12-25 00:21:50 230 1

原创 RabbitMQ->fanout(广播模型)

Fanout 广播模型广播模型在生活中是非常常见:只要你是这个班的学生,在集体活动的时候,老师会在你们班教室中宣布事请,这样,在这个教室中的所有学生都收到这个消息。当然,不在这个教室的学生,这个时候就接收不到这个消息了。也就是说你不在一个频道目录Fanout 广播模型预览广播模型特点代码实现Step1:工具类 COnnectionUtilStep2:创建路由器Step3:创建生产者Step4:创建消费者Step5:运行预览模型图..

2020-12-24 00:17:55 421 1

原创 SSM整合配置全使用注解-->代替spring-*.xml 、 mybatis-config.xml 以及 web.xml

SSM使用注解配置现在市面上很流行注解配置项目,而SSM 目前使用注解配置的还很少,今天弄了半天,终于成功配出来,下面分享一下<完全抛弃 XML 的配置>目录SSM使用注解配置Step 1 创建 jdbc.propertiesStep 2 创建 DataSourceConfig.java代码Step 3 MybatisConfig.java代码Step4 SpringMvcConfig.java代码Setp 5 AppConfig.jav.

2020-12-17 19:18:10 846 1

原创 rabbitMQ-WorkQueue

rabbitMQ-WorkQueue本示例只是实现 RabbitMQ 的第二个实验实验二本实验中讲述的两个 消费者 Consumer1 & Consumer2 和一个 生产者 Producer;Producer 生产一堆消息放置在队列中,消费者1 和 消费者2 同时去获取队列中的消息开始之前我们将获取连接(Connection) 封装为一个工具类 RabbitMQConnectionUtil工具类 RabbitMQConnectionUtil/** * ...

2020-12-15 23:26:51 142 1

原创 Rabbit 交换机四种类型

Rabbit 交换机四种类型 RabbitMQ 常用的交换器类型有fanout 、direct、topic 、headers 这四种。AMQP 协议里还提到另外两种类型: System 和自定义。目录Rabbit 交换机四种类型fanoutdirecttopicheadersfanout它会把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中。directdirect 类型的交换器路由规则也很简单,它会把消息路由到那些 BindingKe...

2020-12-14 11:16:11 921 2

原创 RabbitMQ-HelloWorld

RabbitMQ当你成功安装好了 RabbitMQ ,非常值得庆幸,可喜可贺。下面我们就应该开始尝试第一个 Demo 了,经典的HelloWorld 案例。当然 在开始之前要确保你 了解什么是 消息/订阅模式。目录RabbitMQProducerClient 消息发布客户端ConsumerClient 消息接收客户端运行流程好了,开始我们的实验吧。首先我们创建一个发送消息的 ProducerClient 用于创建一个连接,通过连接创建一个信道,绑定一个交换..

2020-12-10 14:50:25 160 1

原创 Question:Java能创建线程吗

不积硅步,无以至千里。储备面试题,早日年薪过百万---一个财迷菜鸟程序员[Dcpnet]目录Question:Java能创建线程吗Question: 一个Java进程至少有几个线程Question: 线程有几个状态Question:Java能创建线程吗这一天,面试官正好问你开启线程的三种方式(Thread、Runable、Callable),冷不防来了一句:Java 能开启线程吗?如果你没看过 java Thread 中的代码,你可能会觉得面试官是...

2020-12-09 23:40:53 105

原创 Centos 开启80端口和httpservice

Centos 开启80端口和httpservice在我配置好nginx之后,发现电脑无法通过浏览器访问到虚拟机,使用Ping命令却是能ping通的,因此我便开始使用 centos的防火墙去查看是否开放了80端口:systemctl status firewalld //查看防火墙的状态systemctl start firewalld //开启防火墙systemctl stop firewalld //关闭防火墙可以看到firewalld 防火墙是正在运行中的我.

2020-11-16 15:01:32 925

原创 分布式事务

分布式事务内容参考 《从Paxos 到 Zookeeper 分布式一致性原理与实践》《从Paxos 到 Zookeeper 分布式一致性原理与实践》[“Cóng Paxos dào Zookeeper fēnbù shì yīzhì xìng yuánlǐ yǔ shíjiàn”]"From Paxos to Zookeeper Distributed Consistency and Practice"...

2020-10-30 19:39:38 218

原创 Object

Object在Java的世界中,一切皆Object ,所有的对象都继承了 Obejct。我们来看看 Object 这个类里面有些什么内容吧native 方法 registerNatives() getClass() hashCode clone() notify() notifyAll() wait(long) 普通方法 equals(Object) toString() wait(l..

2020-10-24 10:32:29 67

原创 Java 运行时异常

Java 运行时异常Java 的异常分为 检查型异常(CheckedException) 以及 运行时异常(RuntimeException)。其中检查型异常必须被显式的处理,如果没有对其进行处理,将无法通过编译。目录Java 运行时异常RuntimeException 源码继承类图子类常见的几个运行时异常下面我们先看一下 RuntimeException 的源码RuntimeException 源码package java.lang;public cl.

2020-10-22 19:20:22 369

原创 设计模式目录

设计模式目录本个分类栏将简单的描述23种设计模式以及简单的实现。以后会将内容进行填充。设计模式分为三种:创建型 结构型 行为型创建型 结构型 行为型 工厂模式 [Factory Method] 适配器类模式 [Adapter_class] 解释器模式 [Interpreter] 抽象工厂模式 [Abstract Factory] 适配器对象模式 [Adapter_object] 模板方法模式 [Template Method]...

2020-10-07 12:50:45 76

原创 变量和引用

变量和引用内容参考 《Shell 从入门到精通》变量Shell 是动态型和弱类型的语言,所以在Shell 中,定义变量不用向Java C C++什么的声明变量的类型:a=1b="string"echo "a = $a , b = $b"let "a+=1"#将b中的g变为..c=${b/g/..}echo "a = $a , b = $b , c = $c"我们看一下运行结果a = 1 , b = stringa = 2 , b = string , c .

2020-10-06 23:00:18 123

原创 java命令参数记录

java命令参数记录【注】这里只是做一个记录JavajavacJavadocjavapjar

2020-09-28 13:54:27 75

原创 删除有序链表中的重复节点

删除有序链表中的重复节点这道题是我在笔试 极**技 公司遇到的编程题,当时有点紧张,一直有点Bug,现在改好了,写一篇博客记录下题目:给定一个链表: 1->1->2->3->5 返回链表:2->3->5给定一个链表: 1->1->2->2->5 返回链表:5给定一个链表: 1->2->3->3->5 返回链表:1->2->5给定一个链表: 1->2->2-&...

2020-09-28 09:56:11 314

原创 JVM-可达性分析算法

JVM-可达性分析算法内容参考 《深入理解Java虚拟机》第三版当前主流的商用程序语言(Java、C#)的内存管理子系统,都是通过 可达性分析(Reachability Analysis) 算法来判定对象是否存活的。这个算法得基本思路就是通过一系列称为 "GC Roots" 的跟对象作为起始节点集,根据引用关系乡下搜索,搜索过程所走过的路径成为 “引用链”(Reference Chain),如果某个对象到 GC Roots 间没有任何引用链相连,或者用图论的话来说就是从 GC Root.

2020-09-26 13:32:57 328

原创 对象的内存布局

对象的内存布局内容参考 《深入理解Java虚拟机》JVM高级特性与最佳实践在 HotSpot虚拟机 中,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header) 实例数据(Instance Data) 对齐填充(Padding)一 对象头HotSpot虚拟机 对象的对象头部分包括两类信息:用于存储对象自身运行时的数据 类型指针1.1 用于存储对象自身运行时的数据哈希码(HashCode) GC分代年龄 锁状态标志 线程持有的所 偏向线程ID..

2020-09-26 00:42:50 95

原创 JVM内存模型

JVM运行时数据区-JVM内存模型内容参考《深入理解 JAVA 虚拟机》第二版 【这里只是做一个学习记录】目录JVM运行时数据区-JVM内存模型程序计数器虚拟机栈本地方法栈堆方法区运行时常量池直接内存Java 虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而启存在,有的区域则以来用户线程的启动和结束而创建和销毁。下面我们来看看J...

2020-09-21 21:01:30 111

原创 类的静态域、构造器、成员域、静态属性加载顺序

类的静态域、构造器、成员域、静态属性加载顺序静态域|构造器|成员变量域加载顺序创建类Apublic class A { public A() { System.out.println("A构造器"); } { System.out.println("A成员域"); } static{ System.out.println("A静态域"); }}类B继承Apublic class B.

2020-09-17 10:15:47 244

原创 ArrayList 源码剖析

ArrayList初始化无参构造器public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }可以看到,在初始化的时候,进行了赋值操作,this.element 和DEFAULTCAPACITY_EMPTY_ELEMENTDATA是什么呢,从字面上来看DEFAULTCAPACITY_EMPTY_ELEMENTDATA 翻译为 默认的空容器元素。我们往上...

2020-09-16 22:50:54 85

原创 基本数据封装类型的缓存范围

基本数据封装类型的缓存范围Byte[-128,127]源码 private static class ByteCache { private ByteCache(){} static final Byte cache[] = new Byte[-(-128) + 127 + 1]; static { for(int i = 0; i < cache.length; i++) ..

2020-09-16 16:55:38 254

原创 红黑树

红黑树内容参考 《算法导论》红黑树是一颗二叉搜索树,他的每个节点上增加了一个存储位来表示节点的颜色(RED OR BLACK)。通过对任何一条根从叶子的简单路径上各个节点的颜色进行约束,红黑树确保没有一条路径会比其他路径长出两倍,因而是近似于平衡的。树上面的每个节点包含5个属性: color 、 key 、 left 、 right 、 p 。如果一个节点没有子节点或者父节点,则该节点相应指针属性的值为 NIL 。我们可以把这些 NIL 视为指向二叉搜索树的叶节点(外部节点) 的指针..

2020-09-15 14:36:32 112

原创 springboot 开启异步

springboot 开启异步首先在@SpringApplication 的类上添加注解 @EnableAsync@SpringBootApplication@EnableAsyncpublic class SpringboottestApplication{}在需要执行的任务上添加 @Aysnc 注解:@Async public void send(String mailTo, String title, String content){ Si..

2020-09-14 16:06:21 79

template.zip

ssm整合全注解配置脚手架项目。包含jackson/Druid/validator/fileupload/swagger 等基本功能,其中带 Test 都是示例代码,可以根据示例代码进行开发。求关注,有问题可联系

2020-12-18

Template.zip

模板(脚手架)_v2。easy code自行配置【注】.idea文件夹已经删除,需要自己对idea进行配置,配置完成即可运行。

2020-07-04

空空如也

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

TA关注的人

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