自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 07-HTTPS双向认证及Java案例

HTTPS双向认证的Java案例代码

2022-11-21 17:47:32 2259 2

原创 06-HTTPS单向认证及Java案例

《安全》> 更多内容关注微信公众号 ”前后端技术精选“,或者语雀,里面有更多知识:https://www.yuque.com/riverzmm/uu60c9?# 《安全》> 更多内容关注微信公众号 ”前后端技术精选“,或者语雀,里面有更多知识:https://www.yuque.com/riverzmm/uu60c9?# 《安全》> 更多内容关注微信公众号 ”前后端技术精选“,或者语雀,里面有更多知识:https://www.yuque.com/riverzmm/uu60c9?

2022-11-17 19:28:15 1508

原创 05-HTTPS 秘钥库与证书(Java)

上面所介绍的是浏览器对证书进行验证的过程,浏览器保存了一个常用的 CA 证书列表,在验证证书链的有效性时,直接使用保存的证书里的公钥进行校验,如果在证书列表中没有找到或者找到了但是校验不通过,那么浏览器会警告用户,由用户决定是否继续。与此类似的,操作系统也一样保存有一份可信的证书列表,譬如在 Windows 系统下,你可以运行 certmgr.msc 打开证书管理器查看,这些证书实际上是存储在 Windows 的注册表中,一般情况下位于:\SOFTWARE\Microsoft\SystemCertifica

2022-11-17 19:27:28 992

原创 04-HTTPS证书格式及转换

本文介绍了将不同格式的HTTPS证书转换为PEM格式的方法。

2022-11-17 19:26:18 2465

原创 03-OpenSSL-创建带SAN扩展的证书并进行CA自签

SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。来看看百度的证书,百度证书的扩展域名有这么多,其中还有了*,那我们再看看的证书!发现的确是用的前面的百度证书!所以SAN带来的好处就可以看出来了,一个证书可以用在各种不同的域名下,不需要一个域名买一个证书了。

2022-11-11 09:36:56 1457

原创 02-HTTPS证书生成、验签 、证书链

在第一节中我们知道了HTTPS为什么需要证书,以及证书的作用。那么这一节对证书的细节展开更加深入的研究。

2022-11-11 09:35:16 1213 1

转载 01-从HTTP到HTTPS

Https系列

2022-10-11 22:59:12 423

原创 01-Kubernetes 初识

Kubernetes初识。后续会更新一系列的k8s基础知识,到结合华为云CCE进行实战,从Kubernetes小白到上云进行云原生的开发...

2022-07-13 23:15:20 601

原创 Spring构造函数初始化this( )-01

Spring从2.5开始支持基于注解的bean扫描,考虑到目前流行的SpringBoot框架也是大量采用了注解驱动开发,所以本文直接跨过xml配置,从注解驱动开始,一探究竟为什么加了@Service,就可以直接在Spring中注入并调用方法了?1、初始化AnnotationConfigApplicationContext入口代码:public AnnotationConfigApplicationContext(Class<?>... componentClasses)&nb

2022-02-14 22:57:44 415

原创 [重识多线程] 01- java多线程创建

一、什么是线程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。操作系统在分配资源时是把资源分配给进程的,但是CPU资源比较特殊,它是被分配到线程的,因为真正要占用CPU运行的是线程,所以也说线程是CPU分配的基本单位。以Java 为例,我们启动一个main函数时,实际上就是启动了一个JVM 的进程,main函数所在的线程就是这个进程的一个线程,也称为主线程。一个JVM进程中有多个线程,多个线

2020-06-14 20:21:42 272

原创 IDEA-Debug高级技巧

IDEA-Debug技巧idea 至于介绍就看官网就ok了,https://www.jetbrains.com/idea/download/other.html一、基本用法&快捷键Debug主要对应的是横向的一条和纵向的一条:1、首先说第一组按钮,共8个按钮,从左到右依次如下:Show Execution Point (Alt + F10):如果光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会

2020-06-14 11:00:18 1985

原创 PicGo + 阿里云oss搭建个人图床工具

取代 七牛云+Mpic 方案/ PicGo + GitHub其实我之前是一个资深的Typora用户,逐步的见证了Typora做的越来越好,之前使用Typora进行记录的时候,发现了几个痛点,其中之一最让人头疼的就是图床,最早的时候使用的是七牛云+Mpic的解决方法搞定了图床的问题,奈何七牛云的测试空间收回导致了我很多的图片的链接失效,哎,很头疼,后来为了使用七牛云存放图片,还专门的去申请了自己的域名,花了不少的代价,域名的备案,服务器的申请,当时还是学生有1折的优惠,奈何还是承受不住经济的压力。直到今天

2020-06-14 09:50:47 831

原创 移动web-01

文章目录第1章基础知识1.1 屏幕1.2 长度单位1.3 像素密度1.4 设备独立像素1.5 像素第2章远程调试2.1 模拟调试2.2 真机调试第3章 视口3.1 PC设备1.2 移动设备1.3 移动浏览器第1章基础知识1.1 屏幕移动设备与PC设备最大的差异在于屏幕,这主要体现在屏幕尺寸和屏幕分辨率两个方面。通常我们所指的屏幕尺寸,实际上指的是...

2019-05-11 20:47:02 315

转载 CentOS7安装docker 启动失败:Job for docker.service failed... 解决办法

https://blog.csdn.net/lixiaoyaoboy/article/details/82667510

2018-10-27 19:56:02 7511

转载 主机找不到vmnet1和vmnet8,主机vmnet1vmnet8解决方法

https://blog.csdn.net/sinat_25306771/article/details/52761926

2018-10-25 17:26:11 1130

转载 @PathVariable出现点号"."时导致路径参数截断获取不全的解决办法

当使用@PathVariable传递路径参数时,竟然神奇的发现,后面一位参数的小数点后面部分竟然不见啦,如下代码:Controller方法注解如下:@RequestMapping(value = "/user/findPassword/{email}", method = RequestMethod.GET, produces="application/json")我这里是想传递个邮箱过来...

2018-10-22 16:08:27 670

原创 Spring问题集:@value放在Spring基于java的配置文件中取不到值

在测试Spring的事务的时候需要连接数据库,但是发现@Value的值一直就是“{${jdbc.url}}”,并没有从配置文件中获取到值, 配置文件的代码如下:@Configuration@ComponentScan(basePackages = {"com.huanghe.*"})@PropertySource("classpath:jdbc.properties")public...

2018-07-26 16:48:02 889

原创 字符串常量池深入解析

字符串常量池字符串常量池概述一、Java中两种创建字符串对象的方式的分析。二、Intern的实现原理(JDK1.8)三、JDK1.7的Intern的执行四:几种特殊的情况的代码参考的部分文章概述  在分析字符串常量池之前,先来分析一下java的内存区域,然后再各种的情况分析一下各种情况下的情况;在《深入理解java虚拟机》这本书上是这样写的:对于H...

2018-07-16 21:21:12 32680 44

转载 Compareable和Comparator的用法

Comparable和Comparator的用法Comparable和Comparator的用法一、Comparable 自然排序二、Comparator 定制排序三、两者之间的差别Java 中为我们提供了两种比较机制:Comparable 和 Comparator 一、Comparable 自然排序Comparable 是排序接口。若一个类实现了Com...

2018-07-15 16:20:01 12349 1

原创 TreeMap的深入剖析

TreeMap的深入剖析TreeMap的深入剖析一、简介二、概览2.1、属性三、源码分析3.1构造函数3.2 查找3.3 遍历3.3、插入3.4 删除总结参考文献一、简介TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 conta...

2018-06-26 21:06:56 672

原创 HashMap的深入剖析

HashMap的深入剖析HashMap的深入剖析前沿一、HashMap的顶部注释二、HashMap的依赖关系三、HashMap的数据结构五、HashMap 构造函数六、put()方法6.1、 hash(Object key)6.2、putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict)6....

2018-06-26 16:40:12 399

原创 Map集合、散列表

Map集合、散列表Map集合、散列表一、Map1.1、为什么需要map1.2、Map与Collection的区别1.3、Map的大家庭1.4、简单的介绍一下Map的常用的功能二、散列表介绍2.1、散列表工作原理2.2、哈希函数2.3、hash冲突2.4、哈希函数构造方法2.5、处理冲突2.6、查找及分析参考文献一、Map1.1、为...

2018-06-25 16:50:53 2047

原创 List集合之LinkedList深度解析

List集合之LinkedList深度解析List集合之LinkedList深度解析1.1、结构图1.3、LinkedList 构造函数1.3.1、LinkedList()1.3.2、LinkedList(Collection1.3.3、小结1.4.1、添加方法(Add)概览1.4.2、 add(E e) &amp; addLast(E e) &amp; offer(E e...

2018-06-25 11:17:47 1117 1

原创 Vector

List集合之Vector深度解析List集合之Vector深度解析一、Vector解析1.1、概览1.2、Vector的属性1.3、Vector的 构造函数1.4、Vector的 方法1.4.1、Vector添加方法1.5、Vector线程安全问题的研究总结参考文献现在还是把Lits中重要的知识点回顾一遍,现在这篇主要讲List集合的三个子类:...

2018-06-24 16:54:22 1131

原创 List集合之ArrayList

List集合之ArrayList深度解析List集合之ArrayList深度解析一、ArrayList解析1.1、概览1.1.1、java.io.Serializable接口的作用1.1.2、讨论 RandomAccess 的作用。1.1.3、 Cloneable接口的作用:1.1.4、数组的默认大小1.2、ArrayList的属性1.3、ArrayList构造函数1...

2018-06-24 11:43:19 42767 7

转载 对象序列化为何要定义serialVersionUID的来龙去脉

对象序列化为何要定义serialVersionUID的来龙去脉在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到内存,等要用了,再还原到对象中,说白了,就是能将一个2进制文件变成内...

2018-06-23 16:12:48 1661

原创 容器中的设计模式

容器中的设计模式容器中的设计模式一、 迭代器模式二、迭代器模式的详细介绍四、适配器模式详解4.1、现实生活中的适配器4.2、实现电源适配器五:参考文献一、 迭代器模式Collection 实现了 Iterable 接口,其中的 iterator() 方法能够产生一个 Iterator 对象,通过这个对象就可以迭代遍历 Collection&nbsp...

2018-06-23 15:45:59 441

原创 容器中的设计模式

容器中的设计模式容器中的设计模式一、 迭代器模式二、迭代器模式的详细介绍三、适配器模式四、适配器模式详解4.1、现实生活中的适配器4.2、实现电源适配器五:参考文献一、 迭代器模式Collection 实现了 Iterable 接口,其中的 iterator() 方法能够产生一个 Iterator 对象,通过这个对象就可以迭代遍历 Collec...

2018-06-23 11:58:28 924

原创 容器概览

容器概览容器概览一、前言:二、概览:Collection2.1、先来谈一谈为什么需要Collection2.2、Collection的由来以及功能三、概览:Map四、概览:Iterator五、参考文献一、前言:由于在找工作的过程中,java容器的知识被问的频率是相当的高的,所以今天借此机会,写一系列的Collection的相关知识,深入到 源码进行...

2018-06-23 10:44:36 188

转载 散列表(hash)

Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。这个源于Hash表设计的特殊性,它采用了函数映射的思想将记录的存储位置与记录的关键字关联起来,从而能够很快速地进行查找。 1.Hash表的设计思想  对于一般的线性表,比如链表,如果要存...

2018-06-23 09:53:35 169

转载 Java 中的 ==, equals 与 hashCode 的区别与联系

一、概述1、概念== : 该操作符生成的是一个boolean结果,它计算的是操作数的值之间的关系equals : Object 的 实例方法,比较两个对象的content是否相同hashCode : Object 的 native方法 , 获取对象的哈希值,用于确定该对象在哈希表中的...

2018-06-19 16:15:51 283

原创 字符串常量池

字符串常量池字符串常量池1、创建字符串的方式1、创建字符串的方式在Java中有两种方法可以创建一个字符串对象:使用new运算符。例如: java String str = new String(&amp;amp;quot;Hello&amp;amp;quot;);使用字符串常量或者是常量表达式 java String str=&amp;amp;quot;Hello&amp;amp;quot;; //(字符串常量) 或者 Strin

2018-06-19 16:11:11 1066

转载 红黑树

1、R-B Tree简介2、红黑树的应用3、红黑树的时间复杂度和相关证明4、红黑树的基本操作:左旋和右旋5、红黑树的基本操作(二) 添加5.1、(Case 1)叔叔是红色5.2、 现象说明3. (Case 3)叔叔是黑色,且当前节点是左孩子6、红黑树的基本操作(三) 删除1、R-B Tree简介R-B Tree,全称是Red-Black Tree,又称...

2018-06-17 21:10:55 295

原创 消息中间件-RabbitMQ简单实现和工作队列(2)

1、简单队列”Hello RabbitMQ”2、项目的创建2.1、引入jar包2.2、创建连接2.3、生产者2.3、消费者3、简单队列的不足4、work queue(工作队列)4.1、生产者4.2、消费者14.3、消费者24.4、现象消息队列的使用过程大概如下:(1)客户端连接到消息队列服务器,打开一个channel。 (2)客户端声明一个...

2018-06-09 18:19:06 240

原创 消息中间件-RabbitMQ介绍(1)

1.RabbitMQ历史2.应用的场景2.1、异步处理2.2、应用解耦2.3、流量削峰一般在秒杀活动中应用广泛3、RabbitMQ 基本概念4. 进一步的细节阐明4.1 使用ack确认Message的正确传递4.2 Reject a message4.3 Creating a queue4.4 Exchanges4.5 Virtual hosts...

2018-06-09 11:24:49 337

原创 String, StringBuffer,StringBuilder的区别

java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。1.可变与不可变String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。 private final char value[]; ...

2018-06-07 20:23:10 127

原创 java中类的加载顺序

1.首先,需要明白类的加载顺序。 (1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法) (2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 ) (3) 父类非静态代码块( 包括非静态初始化块,非静态属性 ) (4) 父类构造函数 (5) 子类非静态代码块 ( 包括非静态初始化块,非静态属性 ) (6) 子类构造函数静态块:用static申明,JV...

2018-06-07 19:39:32 173

原创 Java 并发编程:深入理解 ThreadLocal

摘要:  ThreadLocal 又名线程局部变量,是 Java 中一种较为特殊的线程绑定机制,用于保证变量在不同线程间的隔离性,以方便每个线程处理自己的状态。进一步地,本文以ThreadLocal类的源码为切入点,深入分析了ThreadLocal类的作用原理,并给出应用场景和一般使用步骤。...

2018-06-05 10:48:08 203

转载 单例设计模式

摘要:      本文首先概述了单例模式产生动机,揭示了单例模式的本质和应用场景。紧接着,我们给出了单例模式在单线程环境下的两种经典实现:饿汉式 和 懒汉式,但是饿汉式是线程安全的,而懒汉式是非线程安全的。在多线程环境下,我们特别介绍了五种方式来在多线程环境下创建线程安全的单例,即分别使用 sy...

2018-06-05 10:10:02 109

转载 Java并发编程:volatile关键字解析

摘要:  在 Java 并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能会导致程序运行不正确。volatile关键字 被用来保证可见性,即保证共享变量的内存可见性以解决缓存一致性问题。一旦一个共享变量被 volatile关键字 修饰,那么就具备了两层语义:内存可见性和禁止进行指令重排序。在多线程环境下,volatile关键...

2018-06-04 22:29:52 282

bookmarks_2019_7_21.html

个人书签

2019-07-21

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

TA关注的人

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