- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 SimpleDateFormat 类的线程安全问题
提起 SimpleDateFormat 类,想必做过 Java 开发的童鞋都不会感到陌生。没错,它就是 Java 中提供的日期时间的转化类。这里,为什么说SimpleDateFormat 类有线程安全问题呢?有些小伙伴可能会提出疑问:我们生产环境上一直在使用 SimpleDateFormat 类来解析和格式化日期和时间类型的数据,一直都没有问题啊!我的回答是:没错,那是因为你们的系统达不到 SimpleDateFormat 类出现问题的并发量,也就是说你们的系统没啥负载!接下来,我们就一起看下在高并发下
2022-06-07 21:10:18
1204
1
原创 代理模式-23种设计模式系列
一、代理模式的定义代理模式是指为其他对象提供一种代理,以控制对这个对象的访问。代理对象在客户端和目标对象之前起到中介作用,代理模式属于结构型设计模式。使用代理模式主要有两个目的:一是保护目标对象,二是增强目标对象。代理模式的类结构图如下所示:Subject是顶层接口,RealSubject是真实对象(被代理对象),Proxy是代理对象,代理对象持有被代理对象的引用,客户端调用代理对象的方法,同时也调用被代理对象的方法,但是会在代理对象前后加一些处理代码。在代码中,一般代理会被理解为代码增强,实际上就
2021-07-26 16:22:00
192
1
原创 RabbitMQ-01(安装及基本使用)
一、安装RabbitMQ(基于centos7安装)1. 手动下载RabbitMQ安装由于RabbitMQ是由Erlang语言编写的,所以在安装RabbitMQ之前需要先安装Erlang。1.1 安装 Erlang前往官网下载最新版本(目前最新版本为23.2),点击此处下载,下载完成后开始安装。第一步,解压安装包,并配置安装目录2.在docker中安装RabbitMQ2.1 查看仓库中的RabbitMQdocker search rabbitmq2.2 安装RabbitMQ直接安
2021-02-09 18:01:57
217
原创 线程同步模式
一、同步模式之顺序控制1.固定运行顺序1.1 wait notifypublic class Test1 { // 用来同步的对象 static Object obj = new Object(); // t2 运行标记, 代表 t2 是否执行过 static boolean isRun = false; public static void main(String[] args) { Thread t1 = new Thread(() -> { synchronized (
2021-01-06 17:14:32
141
原创 CSS
一、CSS 的复合选择器1.1 什么是复合选择器在 CSS 中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。复合选择器可以更准确、更高效的选择目标元素(标签)。复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的。常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等。1.2 后代选择器后代选择器又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用
2020-10-05 13:50:20
781
1
原创 单例模式-23种设计模式系列
一、单例设计模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。二、单例设计模式八种方式单例模式有 8 种方式:1)饿汉式(静态常量)2)饿汉式(静态代码块)3)懒汉式(线程不安全)4)懒汉式(线程安全,同步方法)5)懒汉式(线程安全,同步代码块)6)双重检查7)静态内部类8...
2020-04-26 10:30:56
414
原创 SpringCloud学习篇(五)
目录Ribbon负载均衡服务调用一.概述1.1 Ribbon 是什么1.2 官网资料1.3 Ribbon 能干嘛二. Ribbon负载均衡演示2.1 架构说明2.2 pom2.3 二说 RestTemplate 的使用2.3.1 官网2.3.2 getForObject 方法 / getForEntity 方法2.3.3 postForObject / postForEntity 方法三.Ribb...
2020-04-20 21:35:19
433
原创 SpringCloud学习篇(四)
Consul服务注册与发现一.Consul简介1.1 Consul 是什么https://www.consul.io/intro/index.html1.2 Consul 能干嘛Spring Cloud Consul具有如下特性:服务发现: 提供HTTP和DNS两种发现方式健康监测: 支持多种协议,HTTP、TCP、Docker、Shell脚本定制化KV存储: key , ...
2020-04-18 19:52:27
175
原创 SpringCloud学习篇(三)
目录Zookeeper服务注册与发现SpringCloud整合Zookeeper代替Eureka一.注册中心Zookeeper二.服务提供者2.1 新建cloud-provider-payment80042.2 修改 pom.xml 文件2.3 创建并修改 application.yml 文件2.4 创建主启动类2.5 编辑 Controller2.6 启动8004注册进 zookeeper2.7...
2020-04-17 20:23:25
4897
原创 Docker 安装 Zookeeper
下载 Zookeeper 镜像docker pull zookeeper查看下载的镜像docker images启动容器docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper:latest查看容器是否启动...
2020-04-17 19:49:58
199
原创 SpringCloud学习篇(二)
目录一.单机 Eureka 构建步骤1.1 新建 Maven 模块 cloud-eureka-server70011.2 修改 pom.xml 文件1.3 创建并修改 application.yml 文件1.4 创建启动类1.5 测试二.修改 cloud-provider-payment80012.1 修改 pom.xml 文件2.2 修改 application.yml 文件2.3 修改启动类2...
2020-04-16 21:34:50
686
原创 SpringCloud学习篇(一)
目录一.新建 Maven 项目1.1 创建微服务整体聚合父工程cloud20201.2 修改 IDEA 设置1.3修改父工程(cloud2020)的 pom.xml 文件1.3.1 修改打包方式为 pom1.3.2 pom.xml 文件如下版本约束:SpringCloudHoxton.SR1SpringBoot2.2.2.RELEASESpringCloud Ali...
2020-04-15 17:22:23
397
原创 Java单向环形链表解决约瑟夫(Josephu)问题
Josephu(约瑟夫、约瑟夫环) 问题Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。思路用一个循环链表来处理Josephu 问题:先构成一个有n个结点的单循环链表,然后由k结点起...
2020-04-11 20:42:21
198
原创 Java实现稀疏数组
文章目录稀疏数组1. 先看一个实际需求2. 基本介绍3. 应用实例4. 整体思路分析5. 代码实现稀疏数组1. 先看一个实际需求五子棋程序中,有存盘退出和继续游戏的功能0 表示该位置没有棋子1 表示黑子2 表示蓝子分析问题:因为该数组中很多值都是默认值 0 ,因此记录了很多没有意义的数据,我们可以使用稀疏数组来缩小数组的规模2. 基本介绍当数组中大部分元素为 ...
2020-04-10 20:14:33
185
原创 Docker
目录Docker1 Docker简介1.1 什么是虚拟化1.2 什么是Docker1.3 容器与虚拟机比较1.4 Docker 组件1.4.1 Docker服务器与客户端1.4.2 Docker镜像与容器1.4.3 Registry(注册中心)2 Docker安装与启动2.1 安装Docker2.2 设置ustc的镜像2.3 Docker的启动与停止3 常用命令3.1 镜像相关命令3.1.1 查看...
2020-03-31 19:27:28
119
原创 ES在Linux上的配置
ES在Linux上的配置1.ES是基于Lucene进行开发的,Lucene有视apache基金会的一个项目,也就是说Lucene必须要jdk环境,ES也必须要jdk环境2.拿到一个新的Linux服务器的时候如何配置2.1修改hostname2.2修改hostname和IP的映射2.3直接关闭防火墙/开启防火墙访问端口号2.4需要关闭防火墙的开机启动2.5重启3.配置jdk4.ES的配置4.1使用x...
2020-02-09 12:31:35
1834
原创 RabbitMQ安装
erlang 安装rabbitmp 官方精简,0 依赖 rpm 包https://github.com/rabbitmq/erlang-rpmGit Hub下载链接下载:wget https://github.com/rabbitmq/erlang-rpm/releases/download/v21.2.6/erlang-21.2.6-1.el7.x86...
2019-10-24 18:24:16
226
原创 Redis安装和使用
一、安装Redis1.1 下载Redis1.2 上传安装包1.3 解压文件tar -zxvf redis-5.0.4.tar.gz1.4 编译和安装1.4.1 编译进入redis目录,执行make命令cd redis-5.0.4make1.4.2 安装redismake install1.5 修改Redis配置文件vim redis.conf1.5.1 去除...
2019-10-13 11:12:13
166
原创 Nginx安装及配置
一、安装Nginx1.1 Windows安装Nginx1.1.1 下载Nginx去官网下载Windows对应版本的Nginx1.1.2 安装Nginx解压下载的Nginx压缩包1.1.3 启动Nginx在解压出来的目录下找到nginx.exe文件说明:以超级管理员身份运行nginx.exe检查:1.nginx默认占用端口号80 (部署tomcat服务器 环境变量path配置过)...
2019-10-13 00:36:20
303
原创 Zookeeper安装
Zookeeper安装一、安装JDK二、安装Zookeeper2.1下载Zookeeper2.2上传安装文件2.3解压文件2.4修改配置文件一、安装JDK由于zookeeper集群的运行需要Java运行环境,所以需要首先安装 JDK,关于安装步骤,我在前面博客介绍过:https://blog.csdn.net/qq_45358679/article/details/102055374二、安装...
2019-10-11 17:20:24
345
转载 计算机网络常见面试题
目录一 OSI与TCP/IP各层的结构与功能,都有哪些协议?1.1 应用层1.2 运输层1.3 网络层1.4 数据链路层1.5 物理层1.6 总结一下二 TCP 三次握手和四次挥手(面试常客)2.1 TCP 三次握手漫画图解2.2 为什么要三次握手2.3 为什么要传回 SYN2.4 传了 SYN,为啥还要传 ACK2.5 为什么要四次挥手三 ...
2019-10-04 16:08:35
305
原创 Linux环境下安装JDK
本文主要介绍的是如何在Linux环境下安装JDK的。一、安装环境操作系统Centos7JDK版本1.8工具Xshell6、Xftp6说明:本文是通过Shell6工具远程连接Linux系统进行操作,如果直接在Linux可视化界面操作那就更方便了,原理一样。二、安装步骤1.下载安装包去官网下载Linux环境的JDK, 由于我的Linux是Centos7...
2019-10-04 09:45:38
188
原创 Java手写双向循环链表
手写双向循环链表1.双向循环链表1)数组(ArrayList)与链表(LinkedList)的区别:2)双向循环链表2.实现代码1.双向循环链表1)数组(ArrayList)与链表(LinkedList)的区别:数组的优点: 直接通过下标来访问某个元素速度非常快。数组的缺点: 插入或者删除某个元素比较慢(因为需要调整整个数组)。另外,需要有连续的地址空间。链表的优点: 插入或者删除某个...
2019-10-03 17:03:54
388
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人