Skip to content

Commit a7cb255

Browse files
authored
Use https for some links
1 parent 1d3d55e commit a7cb255

26 files changed

+76
-76
lines changed

Diff for: README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
> 1. **介绍**:关于 JavaGuide 的相关介绍请看:[关于 JavaGuide 的一些说明](https://www.yuque.com/snailclimb/dr6cvl/mr44yt)
88
> 2. **PDF版本**[《JavaGuide 面试突击版》PDF 版本](#公众号)
9-
> 3. **图解计算机基础**[图解计算机基础 PDF 下载](http://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100021725&idx=1&sn=2db9664ca25363139a81691043e9fd8f&chksm=4ea19a1679d61300d8990f7e43bfc7f476577a81b712cf0f9c6f6552a8b219bc081efddb5c54#rd)
9+
> 3. **图解计算机基础**[图解计算机基础 PDF 下载](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100021725&idx=1&sn=2db9664ca25363139a81691043e9fd8f&chksm=4ea19a1679d61300d8990f7e43bfc7f476577a81b712cf0f9c6f6552a8b219bc081efddb5c54#rd)
1010
> 4. **知识星球** : 简历指导/Java学习/面试指导/面试小册。欢迎加入[我的知识星球](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100015911&idx=1&sn=2e8a0f5acb749ecbcbb417aa8a4e18cc&chksm=4ea1b0ec79d639fae37df1b86f196e8ce397accfd1dd2004bcadb66b4df5f582d90ae0d62448#rd) 。星球内部更新的[《Java面试进阶指北 打造个人的技术竞争力》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)这个小册的质量很高,专为面试打造。
1111
> 5. **面试专版** :准备面试的小伙伴可以考虑面试专版:[《Java 面试进阶指南》](https://xiaozhuanlan.com/javainterview?rel=javaguide)
1212
> 6. **转载须知** :以下所有文章如非文首说明皆为我(Guide哥)的原创,转载在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境!⛽️
@@ -94,7 +94,7 @@
9494

9595
## 计算机基础
9696

97-
👉 **[图解计算机基础 PDF 下载](http://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100021725&idx=1&sn=2db9664ca25363139a81691043e9fd8f&chksm=4ea19a1679d61300d8990f7e43bfc7f476577a81b712cf0f9c6f6552a8b219bc081efddb5c54#rd)**
97+
👉 **[图解计算机基础 PDF 下载](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100021725&idx=1&sn=2db9664ca25363139a81691043e9fd8f&chksm=4ea19a1679d61300d8990f7e43bfc7f476577a81b712cf0f9c6f6552a8b219bc081efddb5c54#rd)**
9898

9999
### 操作系统
100100

Diff for: docs/dataStructures-algorithms/几道常见的链表算法题.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Leetcode官方详细解答地址:
5050
我们使用变量来跟踪进位,并从包含最低有效位的表头开始模拟逐
5151
位相加的过程。
5252

53-
![图1,对两数相加方法的可视化: 342 + 465 = 807342+465=807, 每个结点都包含一个数字,并且数字按位逆序存储。](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-20/34910956.jpg)
53+
![图1,对两数相加方法的可视化: 342 + 465 = 807342+465=807, 每个结点都包含一个数字,并且数字按位逆序存储。](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-20/34910956.jpg)
5454

5555
### Solution
5656

@@ -98,7 +98,7 @@ public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
9898
### 题目描述
9999
> 剑指 offer:输入一个链表,反转链表后,输出链表的所有元素。
100100
101-
![翻转链表](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-20/81431871.jpg)
101+
![翻转链表](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-20/81431871.jpg)
102102

103103
### 问题分析
104104

@@ -269,7 +269,7 @@ public class Solution {
269269

270270
我们注意到这个问题可以容易地简化成另一个问题:删除从列表开头数起的第 (L - n + 1)个结点,其中 L是列表的长度。只要我们找到列表的长度 L,这个问题就很容易解决。
271271

272-
![图 1. 删除列表中的第 L - n + 1 个元素](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-20/94354387.jpg)
272+
![图 1. 删除列表中的第 L - n + 1 个元素](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-20/94354387.jpg)
273273

274274
### Solution
275275

Diff for: docs/dataStructures-algorithms/剑指offer部分编程题.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ public ListNode Merge(ListNode list1,ListNode list2) {
566566
**栈:**后进先出(LIFO)
567567
**队列:** 先进先出
568568
很明显我们需要根据JDK给我们提供的栈的一些基本方法来实现。先来看一下Stack类的一些基本方法:
569-
![Stack类的一些常见方法](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-4-4/5985000.jpg)
569+
![Stack类的一些常见方法](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-4-4/5985000.jpg)
570570

571571
既然题目给了我们两个栈,我们可以这样考虑当push的时候将元素push进stack1,pop的时候我们先把stack1的元素pop到stack2,然后再对stack2执行pop操作,这样就可以保证是先进先出的。(负[pop][pop]得正[先进先出]
572572

Diff for: docs/dataStructures-algorithms/数据结构.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ B+树最大的性能问题是会产生大量的随机IO
165165

166166
为了克服B+树的弱点,HBase引入了LSM树的概念,即Log-Structured Merge-Trees。
167167

168-
[LSM树由来、设计思想以及应用到HBase的索引](http://www.cnblogs.com/yanghuahui/p/3483754.html)
168+
[LSM树由来、设计思想以及应用到HBase的索引](https://www.cnblogs.com/yanghuahui/p/3483754.html)
169169

170170

171171
##

Diff for: docs/database/MySQL Index.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ select username , age from user where username = 'Java' and age = 22
4444

4545
MySQL的基本存储结构是页(记录都存在页里边):
4646

47-
![MySQL的基本存储结构是页](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-10-2/28559421.jpg)
47+
![MySQL的基本存储结构是页](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-10-2/28559421.jpg)
4848

49-
![](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-10-2/82053134.jpg)
49+
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-10-2/82053134.jpg)
5050

5151
- **各个数据页可以组成一个双向链表**
5252
- **每个数据页中的记录又可以组成一个单向链表**
@@ -65,11 +65,11 @@ MySQL的基本存储结构是页(记录都存在页里边):
6565

6666
索引做了些什么可以让我们查询加快速度呢?其实就是将无序的数据变成有序(相对):
6767

68-
![](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-10-2/5373082.jpg)
68+
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-10-2/5373082.jpg)
6969

7070
要找到id为8的记录简要步骤:
7171

72-
![](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-10-2/89338047.jpg)
72+
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-10-2/89338047.jpg)
7373

7474
很明显的是:没有用索引我们是需要遍历双向链表来定位对应的页,现在通过 **“目录”** 就可以很快地定位到对应的页上了!(二分查找,时间复杂度近似为O(logn))
7575

Diff for: docs/database/MySQL高性能优化规范建议.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ MySQL 内存临时表不支持 TEXT、BLOB 这样的大数据类型,如果查
168168

169169
**2、TEXT 或 BLOB 类型只能使用前缀索引**
170170

171-
因为[MySQL](http://mp.weixin.qq.com/s?__biz=MzI4Njc5NjM1NQ==&mid=2247487885&idx=1&sn=65b1bf5f7d4505502620179669a9c2df&chksm=ebd62ea1dca1a7b7bf884bcd9d538d78ba064ee03c09436ca8e57873b1d98a55afd6d7884cfc&scene=21#wechat_redirect) 对索引字段长度是有限制的,所以 TEXT 类型只能使用前缀索引,并且 TEXT 列上是不能有默认值的
171+
因为[MySQL](https://mp.weixin.qq.com/s?__biz=MzI4Njc5NjM1NQ==&mid=2247487885&idx=1&sn=65b1bf5f7d4505502620179669a9c2df&chksm=ebd62ea1dca1a7b7bf884bcd9d538d78ba064ee03c09436ca8e57873b1d98a55afd6d7884cfc&scene=21#wechat_redirect) 对索引字段长度是有限制的,所以 TEXT 类型只能使用前缀索引,并且 TEXT 列上是不能有默认值的
172172

173173
### 3. 避免使用 ENUM 类型
174174

Diff for: docs/java/basis/Java基础知识.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ Java 语言既具有编译型语言的特征,也具有解释型语言的特征
175175
> 字符封装类 `Character` 有一个成员常量 `Character.SIZE` 值为 16,单位是`bits`,该值除以 8(`1byte=8bits`)后就可以得到 2 个字节
176176
177177
> java 编程思想第四版:2.2.2 节
178-
> ![](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-15/86735519.jpg)
178+
> ![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-15/86735519.jpg)
179179
180180
### 注释
181181

@@ -790,7 +790,7 @@ num2 = 20
790790

791791
**解析:**
792792

793-
![example 1 ](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-27/22191348.jpg)
793+
![example 1 ](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-27/22191348.jpg)
794794

795795
在 swap 方法中,a、b 的值进行交换,并不会影响到 num1、num2。因为,a、b 中的值,只是从 num1、num2 的复制过来的。也就是说,a、b 相当于 num1、num2 的副本,副本的内容无论怎么修改,都不会影响到原件本身。
796796

@@ -821,7 +821,7 @@ num2 = 20
821821

822822
**解析:**
823823

824-
![example 2](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-27/3825204.jpg)
824+
![example 2](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-27/3825204.jpg)
825825

826826
array 被初始化 arr 的拷贝也就是一个对象的引用,也就是说 array 和 arr 指向的是同一个数组对象。 因此,外部对引用对象的改变会反映到所对应的对象上。
827827

@@ -866,11 +866,11 @@ s2:小李
866866

867867
交换之前:
868868

869-
![](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-27/88729818.jpg)
869+
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-27/88729818.jpg)
870870

871871
交换之后:
872872

873-
![](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-27/34384414.jpg)
873+
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-27/34384414.jpg)
874874

875875
通过上面两张图可以很清晰的看出: **方法并没有改变存储在变量 s1 和 s2 中的对象引用。swap 方法的参数 x 和 y 被初始化为两个对象引用的拷贝,这个方法交换的是这两个拷贝**
876876

Diff for: docs/java/basis/Java常见关键字总结.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ static {
186186

187187
一个类中的静态代码块可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果静态代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。
188188

189-
![](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-14/88531075.jpg)
189+
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-9-14/88531075.jpg)
190190

191191
静态代码块对于定义在它之后的静态变量,可以赋值,但是不能访问.
192192

Diff for: docs/java/collection/Java集合框架常见面试题.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -532,13 +532,13 @@ static int hash(int h) {
532532

533533
![HashTable全表锁](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/HashTable全表锁.png)
534534

535-
<p style="text-align:right;font-size:13px;color:gray">http://www.cnblogs.com/chengxiao/p/6842045.html></p>
535+
<p style="text-align:right;font-size:13px;color:gray">https://www.cnblogs.com/chengxiao/p/6842045.html></p>
536536

537537
**JDK1.7 的 ConcurrentHashMap:**
538538

539539
![JDK1.7的ConcurrentHashMap](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/ConcurrentHashMap分段锁.jpg)
540540

541-
<p style="text-align:right;font-size:13px;color:gray">http://www.cnblogs.com/chengxiao/p/6842045.html></p>
541+
<p style="text-align:right;font-size:13px;color:gray">https://www.cnblogs.com/chengxiao/p/6842045.html></p>
542542

543543
**JDK1.8 的 ConcurrentHashMap:**
544544

Diff for: docs/java/jvm/JVM垃圾回收.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,15 @@ public class GCTest {
131131
132132
运行结果 (红色字体描述有误,应该是对应于 JDK1.7 的永久代):
133133
134-
![](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-8-26/28954286.jpg)
134+
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-8-26/28954286.jpg)
135135
136136
从上图我们可以看出 eden 区内存几乎已经被分配完全(即使程序什么也不做,新生代也会使用 2000 多 k 内存)。假如我们再为 allocation2 分配内存会出现什么情况呢?
137137
138138
```java
139139
allocation2 = new byte[900*1024];
140140
```
141141
142-
![](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-8-26/28128785.jpg)
142+
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-8-26/28128785.jpg)
143143
144144
**简单解释一下为什么会出现这种情况:** 因为给 allocation2 分配内存的时候 eden 区内存几乎已经被分配完了,我们刚刚讲了当 Eden 区没有足够空间进行分配时,虚拟机将发起一次 Minor GC.GC 期间虚拟机又发现 allocation1 无法存入 Survivor 空间,所以只好通过 **分配担保机制** 把新生代的对象提前转移到老年代中去,老年代上的空间足够存放 allocation1,所以不会出现 Full GC。执行 Minor GC 后,后面分配的对象如果能够存在 eden 区的话,还是会在 eden 区分配内存。可以执行如下代码验证:
145145

Diff for: docs/java/multi-thread/2020最新Java并发进阶常见面试题总结.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1004,7 +1004,7 @@ tryReleaseShared(int)//共享方式。尝试释放资源,成功则返回true
10041004

10051005
推荐两篇 AQS 原理和相关源码分析的文章:
10061006

1007-
- http://www.cnblogs.com/waterystone/p/4920797.html
1007+
- https://www.cnblogs.com/waterystone/p/4920797.html
10081008
- https://www.cnblogs.com/chengxiao/archive/2017/07/24/7141160.html
10091009

10101010
### 6.3. AQS 组件总结
@@ -1101,7 +1101,7 @@ CompletableFuture<Void> allFutures = CompletableFuture.allOf(
11011101
- 《深入理解 Java 虚拟机》
11021102
- 《实战 Java 高并发程序设计》
11031103
- 《Java 并发编程的艺术》
1104-
- http://www.cnblogs.com/waterystone/p/4920797.html
1104+
- https://www.cnblogs.com/waterystone/p/4920797.html
11051105
- https://www.cnblogs.com/chengxiao/archive/2017/07/24/7141160.html
11061106
- <https://www.journaldev.com/1076/java-threadlocal-example>
11071107

Diff for: docs/java/multi-thread/AQS原理以及AQS同步组件总结.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ tryReleaseShared(int)//共享方式。尝试释放资源,成功则返回true
233233

234234
推荐两篇 AQS 原理和相关源码分析的文章:
235235

236-
- http://www.cnblogs.com/waterystone/p/4920797.html
236+
- https://www.cnblogs.com/waterystone/p/4920797.html
237237
- https://www.cnblogs.com/chengxiao/archive/2017/07/24/7141160.html
238238

239239
### 3 Semaphore(信号量)-允许多个线程同时访问

Diff for: docs/java/multi-thread/并发容器总结.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ ConcurrentLinkedQueue 适合在对性能要求相对较高,同时对队列的
129129

130130
BlockingQueue 是一个接口,继承自 Queue,所以其实现类也可以作为 Queue 的实现来使用,而 Queue 又继承自 Collection 接口。下面是 BlockingQueue 的相关实现类:
131131

132-
![BlockingQueue 的实现类](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-12-9/51622268.jpg)
132+
![BlockingQueue 的实现类](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-12-9/51622268.jpg)
133133

134134
**下面主要介绍一下:ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue,这三个 BlockingQueue 的实现类。**
135135

@@ -198,13 +198,13 @@ PriorityBlockingQueue 并发控制采用的是 **ReentrantLock**,队列为无
198198

199199
跳表的本质是同时维护了多个链表,并且链表是分层的,
200200

201-
![2级索引跳表](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-12-9/93666217.jpg)
201+
![2级索引跳表](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-12-9/93666217.jpg)
202202

203203
最低层的链表维护了跳表内所有的元素,每上面一层链表都是下面一层的子集。
204204

205205
跳表内的所有链表的元素都是排序的。查找时,可以从顶级链表开始找。一旦发现被查找的元素大于当前链表中的取值,就会转入下一层链表继续找。这也就是说在查找过程中,搜索是跳跃式的。如上图所示,在跳表中查找元素 18。
206206

207-
![在跳表中查找元素18](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-12-9/32005738.jpg)
207+
![在跳表中查找元素18](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-12-9/32005738.jpg)
208208

209209
查找 18 的时候原来需要遍历 18 次,现在只需要 7 次即可。针对链表长度比较大的时候,构建索引查找效率的提升就会非常明显。
210210

Diff for: docs/java/new-features/一文带你看遍JDK9到14的重要新特性.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Java 9 允许为 JDK 和应用配置同样的日志实现。新增了 `System.Lo
5252
### 其它新特性
5353

5454
- **接口私有方法** :Java 9 允许在接口中使用私有方法
55-
- **try-with-resources 增强** :在 try-with-resources 语句中可以使用 effectively-final 变量(什么是 effectively-final 变量,见这篇文章 [http://ilkinulas.github.io/programming/java/2016/03/27/effectively-final-java.html](http://ilkinulas.github.io/programming/java/2016/03/27/effectively-final-java.html)
55+
- **try-with-resources 增强** :在 try-with-resources 语句中可以使用 effectively-final 变量(什么是 effectively-final 变量,见这篇文章 [https://ilkinulas.github.io/programming/java/2016/03/27/effectively-final-java.html](https://ilkinulas.github.io/programming/java/2016/03/27/effectively-final-java.html)
5656
- **`CompletableFuture` 中增加了几个新的方法(`completeAsync``orTimeout` 等)**
5757
- **Nashorn 引擎的增强** :Nashorn 从 Java8 开始引入的 JavaScript 引擎,Java9 对 Nashorn 做了些增强,实现了一些 ES6 的新特性
5858
- **I/O 流的新特性** :增加了新的方法来读取和复制 InputStream 中包含的数据

0 commit comments

Comments
 (0)