自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jak的博客

成长之路

  • 博客(32)
  • 资源 (5)
  • 收藏
  • 关注

原创 Vector源码解析

一、Vector简介1.Vector继承AbstractList、实现了List、RandomAccess、Cloneable、Serializable这些接口2.Vector 实现了Cloneable接口,即实现clone()函数。它能被克隆。3.Vector 实现 RandomAccess接口,所以提供随机访问功能,RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在Vector中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问4..

2021-04-25 09:27:00 718

原创 B树和B+树

一、页单位的作用操作系统是一页一页从磁盘读数据的,操作系统1页=4KB,操作系统从磁盘里面取数据,最少可以取出4KB。InnoDb的一页是等于16KB,这个值是可以改的,但是,尽量改为4的倍数。对于这八条数据,都是存在我们的磁盘里的,假如现在有一条sql语句select * from t1 where a = 7;一种思路,我们从磁盘里一个一个取出数据(每取一次涉及一次磁盘IO),取出来之后跟a=7比较,那么就需要7次磁盘IO,而磁盘IO相对于内存中运算是很耗时的,如果按照这种思路,

2021-04-24 16:06:49 189

原创 聚簇索引和非聚簇索引

参考

2021-04-24 12:33:49 4102 1

原创 HashTable源码解析

一、HashTable的基本介绍1.存放的元素是键值对:即K-V2.hashtable的键和值都不能为null,否则会抛出NullPointerException3.hashTable使用方法基本上和HashMap一样4.HashTable是线程安全的(Synchronized),HashMap是线程不安全的5.简单看下底层结构1.底层有数组,Hashtable$Entry[] 初始化大小为112.阈值 threshold 8 = 11 * 0.75 ha..

2021-04-23 09:33:47 285 1

原创 HashSet源码解析

一、HashSet示例1.以Set接口的实现类HashSet来讲解Set接口的方法2.Set接口的实现类的对象(Set接口对象),不能存放重复的元素,可以添加一个null3.Set接口对象存放数据是无序的(即添加的顺序和取出的顺序不一致)4.注意:取出的顺序虽然不是添加的顺序,但是他是固定的5. set接口对象,不能通过索引来获取。二、HashSet全面说明1.HashSet实现了Set接口2.HashSet实际上是HashMap3.可以存放null值,但是,

2021-04-20 20:57:29 368 2

原创 Spring的循环依赖

一、什么是循环依赖多个bean之间相互依赖,形成了一个闭环。比如:A依赖于B、B依赖于C、C依赖于A通常来说,如果问spring容器内部如何解决循环依赖,一定是指默认的单例Bean中,属性互相引用的场景也就是说,Spring的循环依赖,是Spring容器注入时候出现的问题。二、两种注入方式对循环依赖的影响循环依赖官网说明结论我们AB循环依赖问题只要A的注入方式是setter且singleton,就不会有循环依赖问题。...

2021-04-19 09:47:02 1458

原创 Spring的Aop顺序

一、Aop常用注解二、业务类2.1 CalcService2.2 CalServiceImpl想在除法方法前后各种通知,引入切面编程2.3 MyAspect新建一个切面类MyAspect并为切面类新增两个注解三、测试3.1 Spring4+Springboot1.5.9@SpringBootTest@RunWith(SpringRunner.class) //1.5.9public class T1{ @Autowired p

2021-04-18 21:51:30 296 1

原创 AQS全面解析

一、前置知识二、是什么2.1 字面意思抽象的队列同步器通常地,AbstractQueuedSynchronizer简称为AQS2.2 技术翻译是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO队列来完成资源获取线程的排队工作,并通过一个int类变量表示持有锁的状态。三、AQS为什么是JUC内容中最重要的基石3.1 和AQS有关的3.1.1 ReentrantLock3.1.2 CountDownLatch

2021-04-17 22:02:42 1077 1

原创 LockSupport

一、LockSupport1.1 LockSupport是什么Java ApiLockSupport中的park()和unpark()的作用分别是阻塞线程和解除阻塞线程1.2 线程等待唤醒机制(wait/notify)1.2.1 三种让线程等待和唤醒的方法1.2.2 Object类种的wait和notify方法实现线程等待和唤醒1.正常2.异常1wait方法和notify方法,两个都去掉同步代码块。3.异常21.2.3 Conditi.

2021-04-17 20:24:38 270

原创 可重入锁

一、可重入锁1.1 什么是可重入锁可重入锁又名递归锁是指在同一个线程外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提,锁对象得是同一个对象),不会因为之前已经获取过还没释放而阻塞。Java中ReentrantLock和Synchronized都是可重入锁,可重入锁的一个优点是可一定程度避免死锁。1.2 可重入这四个字分库解释1.3 可重入锁种类1.3.1 隐式锁隐式锁,即synchronized关键字使用的锁,默认是可重入锁1.同步代码块2.同步

2021-04-17 15:15:06 2037

原创 两数之和

一、LeetCode之两数之和public class TwoSum { /** * 通过双重循环遍历数组中所有元素的两两组合 * 当出现符合的和时返回两个元素的下标 * @param nums * @param target * @return */ public static int[] twoSum1(int[] nums, int target) { for (int i = 0; i < n.

2021-04-17 14:13:50 207

原创 字符串常量池

一、intern()方法二、代码示例按照代码结果,java字符串答案为false,必然是两个不同的java,那另外一个java字符串如何加载进来的?有一个初始化的java字符串(JDK出娘胎自带的),在加载sun.misc.Version这个类的时候进入常量池。三、OpenJDK8底层源码说明3.1 System代码解析3.2 类加载器和rt.jar根加载器提取部署加载rt.jarhttp://openjdk.java.net/视频教程

2021-04-17 13:27:18 160

原创 ThreadLocal全面解析

一、ThreadLocal介绍1.1 介绍ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。我们可以得知 ThreadLocal 的作用是:提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。

2021-04-14 22:10:29 507

原创 LinkedList源码解析

一、链表介绍链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。双链表是链表的一种,由节点组成,每个数据结点中都有两个指针,分别指向直接后继和直接前驱。二、LinkedList2.1 LinkedList基本介绍LinkedList是一个实现了List接口和Deque接口的双端链

2021-04-13 21:22:26 221

原创 ArrayList源码解析

一、数组介绍数组是数据结构中很基本的结构,很多编程语言都内置数组。在java中当创建数组时会在内存中划分出一块连续的内存,然后当有数据进入的时候会将数据按顺序的存储在这块连续的内存中。当需要读取数组中的数据时,需要提供数组中的索引,然后数组根据索引将内存中的数据取出来,返回给读取程序。在Java中并不是所有的数据都能存储到数组中,只有相同类型的数据才可以一起存储到数组中。因为数组在存储数据时是按顺序存储的,存储数据的内存也是连续的,所以他的特点就是寻址读取数据比较容易,插入和删除比较困难

2021-04-12 21:08:35 241

原创 JDK8HashMap源码

一、红黑树1.1 红黑树的定义红黑树是一种自平衡的二叉查找树,它的节点的颜色为红色和黑色。它不严格控制左、右子树高度或节点数之差小于等于1。通过左旋、右旋、变色保证平衡1.每个节点非红即黑;2.根节点总是黑色的;3.每个叶子节点都是黑色;4.红节点的子节点一定是黑色的。5.从任一节点到叶子节点必须包含相同数量的黑色节点。AVL树是高度平衡的而红黑树不是高度平衡的,它只要求部分地达到平衡要求,结合变色,降低了对旋转的要求从而提高了性能。在最坏的情况下也可以保证O(logN)

2021-04-11 12:01:32 290 2

原创

一、二叉查找树二叉查找树又称为二叉搜索树,或是BST二叉查找树左节点小于根节点,右节点大于根节点;二叉查找树比普通树查找更快,查找、插入、删除的时间复杂度为O(logN);二叉查找树有一种极端的情况,就是会变成一种线性链表似的结构。此时时间复杂度就变成了O(N),为了解决这种情况,出现了平衡二叉树。二、平衡二叉树平衡二叉树,又称为AVL树左节点小于根节点,右节点大于根节点;左子树和右子树的高度差不得超过1,这样保证了它不会成为线性的;链表AVL树的查找稳定,查找、插入、删

2021-04-11 10:48:33 212

原创 红黑树

一、红黑树分析二、HashMap视频教程

2021-04-10 23:24:54 220 1

原创 JDK7ConcurrentHashMap源码

一、HashTable既然,hashMap是线程不安全的,我们怎么解决它的并发安全问题呢?这里我们可以看一下HashTable的解决思路hashTable是在整个方法上加了一个锁,锁的是当前对象。那像hashTable这种做法,对当前map整个实例对象去加一把锁的话,并发安全问题肯定是解决了,但是,效率就非常非常低了。假如,现在有两个线程,使用同一个hashtable对象,向里面put元素,如果一个元素放在1位置,而另一个元素放在3位置。但是,这两个线程,总归是有一个先获取到

2021-04-10 13:00:03 265 1

原创 JDK7HashMap源码

一、数组二、ArrayList三、HashMaphashMap是采用数组+链表的方式实现那HashMap为什么不采用和ArrayList同样的方式,保存在数组中,而还要加上链表因为,HashMap保存的是key,value的形式,get的时候是根据key来取值,而不是像ArrayList通过下标可以直接获取。...

2021-04-08 19:31:44 244 1

原创 利用Stream给集合排序

public class StreamSortTest { @Data @AllArgsConstructor static class OrgAccountVo { private String userId; private String accountRole; private Date joinTime; } public static void main(String[] args) { .

2021-04-08 15:04:46 572 2

原创 移位与异或

参考

2021-04-08 11:30:01 440

原创 自制Docker镜像并运行

一、上传服务器参考将node编译好的dist文件夹打包上传服务器,以及编写好的Dockerfile都传到服务器文件夹下FROM nginxMAINTAINER jakADD dist.tar.gz /usr/share/nginx/htmlEXPOSE 80ENTRYPOINT nginx -g "daemon off;"二、制作镜像docker build -t pepper:v1.1 -f Dockerfile .三、将镜像打包成tar参考四、上

2021-04-07 22:26:03 259

原创 Windows10将文件打包为tar.gz

教程链接

2021-04-07 22:14:29 783

原创 Kubesphere安装

一、官方地址、文档中心

2021-04-06 11:14:34 1069

原创 K8s入门

一、部署一个tomcatkubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8Kubectl get pods -o wide 可以获取到tomcat 信息Master节点[root@k8s-node1 k8s]# kubectl get nodesNAME STATUS ROLES AGE VERSIONk8s-node1 Ready master 24m v1.

2021-04-05 22:16:29 1642

原创 搭建K8s集群

一、安装DockerKubernetes默认CRI(容器运行时)为Docker,因此先安装Docker.1.1 卸载系统之前的Dockersudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine1.2 安装Docker-CE安装必须

2021-04-05 20:50:45 311

原创 批量搭建虚拟机环境

一、配置Vagrant环境VagrantfileVagrant.configure("2") do |config| (1..3).each do |i| config.vm.define "k8s-node#{i}" do |node| # 设置虚拟机的Box node.vm.box = "centos/7" # 设置虚拟机的主机名 node.vm.hostname

2021-04-05 19:46:17 344

原创 Docker安装Zipkin

一、Zipkin简介通过Seuth产生的调用链监控信息,可以得知微服务之间的调用链路,但监控信息只输出到控制台不方便查看。我们需要一个图形化的工具zipkin。Zipkin是Twitter开源的分布式跟踪系统,主要用来收集系统的时许数据,从而追踪系统的调用问题。zipkin官网地址如下:官网二、Docker安装Zipkindocker run -d -p 9411:9411 openzipkin/zipkin三、整合Zipkin3.1 引入依赖3.2 添加Z

2021-04-05 15:24:22 2744

原创 内网穿透

一、简介内网穿透功能可以允许我们使用外网的网址来访问主机正常的外网需要访问我们项目的流程是:1.买服务器并且有公网固定ip2.买域名映射到服务器的ip3.域名需要进行备案和审核别的电脑想要访问京东可以访问通别的电脑想要访问我们的电脑肯定是不行了我的电脑是在我的局域网,我访问外网是可以访问通的,外网访问我肯定是不通的。除非我们跟外界装了一个互通的软件,比如QQ二、使用场景1.开发测试(微信、支付宝)2.智慧互联3.远程控制4.私有云三、内

2021-04-03 20:00:52 384

原创 加密算法

一、加密-对称加密对称加密指的是加密和解密用的是同一把密钥。对称加密是不安全的,任何一方的密钥泄漏都会引起很多不安全因素。二、加密-非对称加密2.1 非对称加密加密和解密用的密钥不一样。发送方给接收方发送数据两把不同的钥匙接收方给发送方发送数据又是两把不同的钥匙,提高了安全性。2.2 公钥和私钥公钥和私钥是一个相对概念它们的公私性是相对于生成者来说的。一对密钥生成后,保存在生成者手里的就是私钥,生成者发布出去大家用的就是公钥。发送方要给接收方发送数据

2021-04-03 18:49:29 221 3

原创 如何保证消息可靠性

一、分布式解决方案1.1 柔性事务-可靠消息+最终一致性方案(异步确保型)实现:业务处理服务在业务事务提交之前,向实时消息服务请求发送消息,实时消息服务只记录消息数据,而不是真正的发送。业务处理服务在业务事务提交之后,向实时消息服务确认发送。只有在得到确认发送指令后,实时消息服务才会真正发送。依次达到最终一致性目的,而且,可以承受大的并发量。但是,这些的前提,都要保证消息的可靠性。那我们究竟如何保证消息可靠性?二、如何保证消息可靠性-消息丢失2.1 消息发送出去,由于网络问题没有抵达

2021-04-03 13:16:07 3681

jak_rabbit.zip

rabbitmq,延迟队列,死信队列,保证消息可靠性,不丢失

2021-06-28

Redis学习笔记-包括周阳和狂神说

Redis学习笔记-包括周阳和狂神说

2021-03-05

spring5学习笔记

spring5学习笔记.

2020-11-23

SpringCloud 第二季.mmap

springCloud学习脑图,各个组件配置,讲解步骤,https://blog.csdn.net/qq_38826019/article/details/107135798

2020-07-05

WGAN-GPppt详解

生成式对抗网络,搜集整理了网上关于GAN ,WGAN,汇总详解了WGAN-GP

2018-07-10

空空如也

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

TA关注的人

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