- 博客(20)
- 收藏
- 关注
原创 java线程池详解
一、写在前面1.1 线程池是什么线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。而本文描述线程池是JDK中提供的ThreadPoolExecutor类。当然,
2022-11-09 13:54:21
1064
原创 java通过k8s和harbor仓库上传下发镜像
使用java操作docker上传镜像到harbor仓库,以及使用java操作k8s从harbor仓库下发镜像到节点
2022-11-09 11:25:24
1741
转载 JAVA 实现AES加密
JAVA 实现AES加密一)什么是AES?高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。那么为什么原来的DES会被取代呢,,原因就在于其使用56位密钥,比较容易被破解。而AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据,相对来说安全很多。完善的加密算法在理论上是无法破解的,除非使用穷尽法。使用穷尽法破解密钥长度在128位以上的加密数据是不现实
2021-10-09 17:28:43
617
原创 Bigdecimal用法
构造Bigdecimal类要确定精度需要使用字符串构造器如:BigDecimal a = new BigDecimal(“3.4”)BigDecimal b = BigDecimal.valueOf(3.4)(方法点进去里面实际用的还是字符串构造器)下面这种构造方法,实际上还是存在精度丢失问题BigDecimal c = new Bigdecimal(3.4);...
2021-08-26 15:13:24
104
转载 分布式锁详解
分布式锁详解一、基于数据库(一)、基于数据库表做乐观锁,用于分布式锁(二)、基于数据库表做悲观锁(三)、基于数据库表数据记录做唯一约束(四)、总结二、基于缓存:(一)、使用redis的setnx()用于分布式锁。(二)、使用memcached的add()方法,用于分布式锁。(三)、使用Tair的put()方法,用于分布式锁。三、基于Zookeeper:一、基于数据库(一)、基于数据库表做乐观锁,用于分布式锁1.首先说明乐观锁的含义:大多数是基于数据版本(VERSION)的记录机制实现的。何谓数据版本
2020-09-02 14:16:35
231
转载 什么是乐观锁,什么是悲观锁
转载自https://www.jianshu.com/p/d2ac26ca6525什么是乐观锁,什么是悲观锁一、并发控制二、悲观锁(Pessimistic Lock)三、乐观锁(Optimistic Locking)四、实现方式五、如何选择一、并发控制当程序中可能出现并发的情况时,就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产
2020-09-02 11:27:30
637
1
原创 eureka集群快速搭建
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档eureka集群一、配置三个eureka-server二、启动三个eureka-server,并访问三、启动一个消费者四、访问三个eureka-server,都有消费者服务一、配置三个eureka-server三个eureka-server的application.yml文件如下eureka-serverserver: port: 8761eureka: instance: hostname: eureka-s
2020-09-01 17:18:37
5366
1
原创 volatile个人理解
volatile注意点volatile是什么?在《Java并发编程实战》一书中是这么定义volatile的——“Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程”。即volatile是一种同步机制,并且是通过可见性来达到同步的效果。什么是可见性?线程对变量的所有操作(取值、赋值等)都必须在工作内存(各线程独立拥有)中进行,而不能直接读写内存中的变量,各工作内存间也不能相互访问。关于主存与工作内存之间具体的交互协议(即一个变量如何从主存拷贝到工作
2020-08-21 16:36:11
138
原创 java实现qq发邮件
一、创建邮件信息实体类邮件信息实体类包含标题、内容、收件人属性,可根据自己的具体需求,增加或调整,参数满足后面的邮件发送接口调用的参数即可。public class EmailInfo { /** * 邮件标题 */ private String title; /** * 邮件内容 */ private String content; /** * 收件人 */ private List<St
2020-07-24 11:51:45
194
原创 redis 知识体系
个人知识体系redis 知识体系一、五种数据类型(一)、String(二)、Hash(三)、List(四)、Set(五)、Zset二、redis三大问题(一)、缓存雪崩(二)、缓存穿透(三)、缓存击穿三、单线程模型(一)、简介(二)、单线程为什么这么快四、淘汰策略五、持久化(一)、rdb(二)、aof六、主从复制(一)、简介七、哨兵模式(一)、简介一、五种数据类型(一)、StringString 是 Redis 最基本的类型,可以理解成与 Memcached一模一样的类型,一个 Key 对应一个 V
2020-06-14 14:59:23
343
原创 spring cloud知识体系
spring cloud五大组件一、 Eureka(一)、基础架构1、服务注册中心2、服务提供者3、服务消费者(二)、服务治理机制1、服务提供者(1)、服务注册(2)、服务续约2、服务消费者(1)、获取服务(2)、服务调用(3)、服务下线3、服务注册中心(1)、服务同步(2)、失效剔除(3)、自我保护二、客户端负载均衡(一)、ribbon1、简介2、使用如何使用Ribbon3、负载均衡(二)、feign1、简介2、使用如何使用feign3、负载均衡4、断路器三、断路器(一)、简介(二)、功能1、服务降级2、
2020-06-10 16:16:22
1211
原创 jvm知识体系
个人知识体系jvm知识体系一、类的加载机制二、jvm内存结构三、gc机制一、类的加载机制https://blog.csdn.net/dd864140130/article/details/49817357二、jvm内存结构https://blog.csdn.net/rongtaoup/article/details/89142396三、gc机制https://blog.csdn.net/laomo_bible/article/details/83112622...
2020-06-10 12:42:03
291
原创 spring 知识体系
个人知识体系spring知识体系一、IOC(DI)(一)、理解(二)、原理(三)、注入方式(四)、spring如何解决循环依赖(五)、bean的作用域(六)、Spring中的单例bean的线程安全问题(七)、Spring中的bean生命周期二、AOP(一)、理解(二)、原理(三)、概念一、IOC(DI)(一)、理解对 IOC 的理解首先,IOC 控制反转谁控制谁,控制什么,什么是反转(有反转就应该有正转了)谁控制谁,控制什么:在之前,没有 IOC 时,我们直接在对象内部通过 new 进行创建
2020-06-09 16:53:39
940
原创 数据库知识体系
数据库知识体系数据库四大特性数据库隔离级别新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入数据库四大特性如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性
2020-06-09 12:31:17
903
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人