Skip to content

Commit 90bef57

Browse files
committed
change image
1 parent 8c9ea73 commit 90bef57

14 files changed

Lines changed: 613 additions & 520 deletions

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ Github项目主页:https://github.com/NotFound9/interviewGuide
112112
- [3.客户端是怎么接入哨兵系统的?](docs/RedisUserful.md#客户端是怎么接入哨兵系统的?)
113113
- [4.Redis哨兵系统是怎么实现自动故障转移的?](docs/RedisUserful.md#Redis哨兵系统是怎么实现自动故障转移的?)
114114
* MySQL
115-
- [面试题解答](docs/MySQLNote.md)
115+
- [原创面试题解答](docs/MySQLNote.md)
116116
- [1.一条MySQL更新语句的执行过程是什么样的?](docs/MySQLNote.md#一条MySQL更新语句的执行过程是什么样的?)
117117
- [2.脏页是什么?](docs/MySQLNote.md#脏页是什么?)
118118
- [3.Checkpoint是什么?](docs/MySQLNote.md#Checkpoint是什么?)
@@ -143,19 +143,19 @@ Github项目主页:https://github.com/NotFound9/interviewGuide
143143
- [28.MySQL的join的实现是怎么样的?](docs/MySQLNote.md#MySQL的join的实现是怎么样的?)
144144
- [慢查询优化实践](docs/MySQLWork.md)
145145
* JVM
146-
- [面试题解答](docs/JavaJVM.md)
146+
- [原创面试题解答](docs/JavaJVM.md)
147147
- [1.Java内存区域怎么划分的?](docs/JavaJVM.md#Java内存区域怎么划分的?)
148148
- [2.Java中对象的创建过程是怎么样的?](docs/JavaJVM.md#Java中对象的创建过程是怎么样的?)
149149
- [3.Java对象的内存布局是怎么样的?](docs/JavaJVM.md#Java对象的内存布局是怎么样的?)
150150
- [4.垃圾回收有哪些特点?](docs/JavaJVM.md#垃圾回收有哪些特点?)
151151
- [5.在垃圾回收机制中,对象在内存中的状态有哪几种?](docs/JavaJVM.md#在垃圾回收机制中,对象在内存中的状态有哪几种?)
152152
- [6.对象的强引用,软引用,弱引用和虚引用的区别是什么?](docs/JavaJVM.md#对象的强引用,软引用,弱引用和虚引用的区别是什么?)
153-
- [7.垃圾回收算法有哪些](docs/JavaJVM.md#垃圾回收算法有哪些)
154-
- [8.Minor GC和Full GC是什么](docs/JavaJVM.md#MinorGC和FullGC是什么)
155-
- [9.如何确定一个对象可以回收](docs/JavaJVM.md#如何确定一个对象是否可以被回收)
156-
- [10.目前通常使用的是什么垃圾收集器](docs/JavaJVM.md#目前通常使用的是什么垃圾收集器)
157-
- [11.双亲委派机制是什么](docs/JavaJVM.md#双亲委派机制是什么)
158-
- [12.怎么自定义一个类加载器](docs/JavaJVM.md#怎么自定义一个类加载器)
153+
- [7.双亲委派机制是什么](docs/JavaJVM.md#双亲委派机制是什么)
154+
- [8.怎么自定义一个类加载器](docs/JavaJVM.md#怎么自定义一个类加载器)
155+
- [9.垃圾回收算法有哪些](docs/JavaJVM.md#垃圾回收算法有哪些)
156+
- [10.Minor GC和Full GC是什么](docs/JavaJVM.md#MinorGC和FullGC是什么)
157+
- [11.如何确定一个对象可以回收](docs/JavaJVM.md#如何确定一个对象是否可以被回收)
158+
- [12.目前通常使用的是什么垃圾收集器](docs/JavaJVM.md#目前通常使用的是什么垃圾收集器)
159159
- [《剑指Offer》解题思考](docs/CodingInterviews.md)
160160
- [《LeetCode热门100题》解题思考(上)](docs/LeetCode.md)
161161
- [《LeetCode热门100题》解题思考(下)](docs/LeetCode1.md)

_sidebar.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
- [持久化(AOF和RDB)](docs/RedisStore.md)
1313
- [高可用(主从切换和哨兵机制)](docs/RedisUserful.md)
1414
* MySQL
15-
- [面试题解答](docs/MySQLNote.md)
15+
- [原创面试题解答](docs/MySQLNote.md)
1616
- [慢查询优化实践](docs/MySQLWork.md)
1717
* JVM
18-
- [面试题解答](docs/JavaJVM.md)
18+
- [原创面试题解答](docs/JavaJVM.md)
1919
- [《剑指Offer》解题思考](docs/CodingInterviews.md)
2020
- [《LeetCode热门100题》解题思考(上)](docs/LeetCode.md)
2121
- [《LeetCode热门100题》解题思考(下)](docs/LeetCode1.md)

docs/BATInterview.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,9 @@
66

77
![](http://notfound9.github.io/interviewGuide/static/wdsfsdfsmaster.png)
88

9-
<figure class="half">
10-
11-
<img src="http://notfound9.github.io/interviewGuide/static/49160c2basfdsf.jpeg" width="30%"/>
129

1310
<img src="http://notfound9.github.io/interviewGuide/static/image1.jpg" width="30%"/>
1411

15-
</figure>
1612

1713
## 目录:
1814

docs/CodingInterviews.md

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -183,22 +183,7 @@
183183
- 不为空,那么递归调用printListFromTailToHead方法来获取后面的节点反序生成的ArrayList,然后添加当前的节点的值,然后返回arrayList。
184184
- 为空,那么说明当前节点是链表尾部节点,直接创建一个ArrayList,然后添加当前节点的值,然后返回arrayList。
185185

186-
```java
187-
ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
188-
if(listNode == null) { return new ArrayList<Integer>(); }
189-
ArrayList<Integer> arrayList;
190-
ListNode nextNode = listNode.next;
191-
if (nextNode!=null) {
192-
arrayList = printListFromTailToHead(nextNode);
193-
arrayList.add(listNode.val);
194-
} else {
195-
arrayList = new ArrayList<>();
196-
arrayList.add(listNode.val);
197-
}
198-
return arrayList;
199-
}
200-
```
201-
或者是这样写,其实原理就是先递归遍历,然后再打印,这样链表打印的顺序就是逆序的了。
186+
其实原理就是先递归遍历,然后再打印,这样链表打印的顺序就是逆序的了。
202187
```java
203188
ArrayList<Integer> list = new ArrayList<Integer>();
204189
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
@@ -282,8 +267,6 @@ public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
282267

283268
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
284269

285-
286-
287270
```java
288271
int minNumberInRotateArray(int[] array) {
289272
if (array[0]<array[array.length-1]){//当前就是一个递增的情况
@@ -445,9 +428,11 @@ double Power(double base ,int exponent) {
445428

446429
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
447430

431+
解题思路:
432+
448433
如果可以使用额外的内存空间,可以对数组遍历两遍,一遍将奇数取出,存放在额外的数组中去,一遍把剩下的偶数存放到额外的数组中去。
449434

450-
如果不能使用额外的内存空间,就是查找奇数,然后与前面的元素互换,一直到替换到最后一个奇数的后面,有点像是冒泡排序
435+
如果不能使用额外的内存空间,就是查找奇数,然后与前面的元素互换,一直到替换到最后一个奇数的后面,有点像是冒泡排序。(因为不能改变相对位置,所以不能用快排)
451436

452437
冒泡排序是其实是交换,从头开始,依次判断两个相邻的元素,将更大的元素向右交换,遍历一次后可以将当前序列最大的元素交换到最后面去,下次遍历就不用管最后一个元素。
453438

@@ -479,14 +464,12 @@ ListNode FindKthToTail(ListNode head, int k) {
479464
return null;
480465
}
481466
ListNode secondNode = head;
482-
483467
for (int i=0 ; i < k-1 ; i++) {//向前走k-1步
484468
if (secondNode.next==null) {//链表长度不足k个
485469
return null;
486470
}
487471
secondNode = secondNode.next;
488472
}
489-
490473
ListNode firstNode = head;
491474
while (secondNode.next != null) {//一直遍历到secondNode成为最后一个节点
492475
secondNode = secondNode.next;
@@ -776,29 +759,29 @@ public int min() {
776759
所以可以对压入顺序A进行遍历,判断A压入的元素是否是出栈顺序B最前面的元素,
777760

778761
* 如果不是,那么说明只是把元素压入栈tempStack,现在还没有出栈
779-
* 如果是,那么现在元素可以出栈了,将元素先压入tempStack,然后对B继续向后遍历,并且与tempStack的栈顶元素进行判断,是的话就出栈,知道tempStack的元素与B中遍历到的元素不相等,那么停止出栈,继续之前的循环。
762+
* 如果是,那么现在元素可以出栈了,将元素先压入tempStack,然后对B继续向后遍历,继续之前的循环。
780763

781764
循环结束后,继续对B继续向后遍历,并且与tempStack的栈顶元素进行判断,是的话就出栈,知道tempStack的元素与B中遍历到的元素不相等,那么说明B与A对应不上。
782765

783766
```java
784-
public static boolean IsPopOrder1(int [] pushA,int [] popA) {
785-
if (pushA==null||popA==null) {
767+
public static boolean IsPopOrder1(int [] pushA,int [] popB) {
768+
if (pushA==null||popB==null) {
786769
return false;
787770
}
788771
Stack<Integer> stack = new Stack<>();
789772
int j = 0;
790773
//先根据入栈序列,往栈中压入数据
791774
for (int i = 0; i < pushA.length; i++) {
792775
//如果当前栈顶元素跟出栈序列当前遍历的元素一样,那么进行出栈处理
793-
while (stack.size()>0 && j<popA.length && popA[j] == stack.peek()) {
776+
while (stack.size()>0 && j<popA.length && popB[j] == stack.peek()) {
794777
j++;
795778
stack.pop();
796779
}
797780
//将后面的元素压栈
798781
stack.push(pushA[i]);
799782
}
800783
//对剩余元素出栈
801-
while (stack.size()>0 && j<popA.length && popA[j] == stack.peek()) {
784+
while (stack.size()>0 && j<popA.length && popB[j] == stack.peek()) {
802785
j++;
803786
stack.pop();
804787
}

docs/JavaBasic.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ RuntimeException以外的异常可以认为是编译时异常,从程序语法
706706
| byte | 1字节 | -128~127,也就是-2的7次方到2的7次方减1 |
707707
| short | 2字节 | -32768~32767,就是-2的15次方到2的15次方减1 |
708708
| int | 4字节 | -2147483648~2147483647,-2的31次方到2的31次方减1,换算成十进制应该是有10位,也就是十亿的数量级。 |
709-
| long | 8字节 | -2的63次方到2的31次方,换算成十进制的数,是有19位了, |
709+
| long | 8字节 | -2的63次方到2的64次方,换算成十进制的数,是有19位。 |
710710
| boolean | 理论上1字节就可以满足需求,为了内存对齐一般是4字节 | |
711711
| float | 4字节 | |
712712
| double | 8字节 | |

0 commit comments

Comments
 (0)