diff --git a/java/README.md b/java/README.md
index a17ab56..14f5aed 100644
--- a/java/README.md
+++ b/java/README.md
@@ -6,7 +6,7 @@
* 继承:继承是类与类的一种关系,比较像集合中的从属于关系。
* 封装:隐藏类的基本信息,不允许外部程序直接访问,而是通过该类的方法实现对隐藏信息的操作和访问。
* 多态:方法的重写、重载与动态连接构成多态性;
-* 面向对象的六大原则 【参考[设计模式](http://www.zeekling.cn/gogs/zeek/designPattern/src/master/principle)】
+* 面向对象的六大原则 【参考[设计模式](https://git.zeekling.cn/java/designPattern/src/branch/master/principle)】
* 单一职责原理:一个类只负责一项职责。
* 里氏替换原则:劲量不要重写父类的已经实现了的方法,可以用接口等其他方法绕开。
* 依赖倒置原则:高层模块不应该依赖底层模块,二者应依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
@@ -25,7 +25,7 @@
* 弱引用:用来描述非必须的对象,但是它的强度比软引用更弱一些,被弱引用关联的对象只能生存到下一次垃圾收集发送之前。
* 虚引用:虚引用也称为幽灵引用或者幻影引用,它是最弱的一种引用关系。一个持有虚引用的对象,和没有引用几乎是一样的,随时都有可能被垃圾回收器回收。
* java集合
- ![集合类总图](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/list.png)
+ ![集合类总图](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/list.png)
* Collection:集合类的根接口,list和set都继承自此接口
* List:有序,可以重复,一般用index标示顺序
* LinkedList:底层用双链表实现:增加删除效率高
@@ -43,11 +43,11 @@
* HashMap:非同步、线程不安全,一般不要求线程安全的情况下建议使用
* LinkedHashMap: 是HashMap+LinkedList,即它既使用HashMap操作数据结构,又使用LinkedList维护插入元素的先后顺序。
java 7 hashmap实现原理
- ![hashmap实现原理](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/hashmap1.jpeg)
+ ![hashmap实现原理](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/hashmap1.jpeg)
java8 实现原理
- ![java8 实现原理](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/hashmap2.png)
+ ![java8 实现原理](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/hashmap2.png)
* ConcurrentHsahMap:可以用来代替HashTable,而且比HashTable的扩展性好。
- ![ConcurrentHsahMap实现原理](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/ConcurrentHashMap.png)
+ ![ConcurrentHsahMap实现原理](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/ConcurrentHashMap.png)
* TreeMap:是一个有序的key-value集合,它是通过红黑树实现的。是SortedMap的一个实现类
* WeakHashMap:
* IdentifyHashMap:
@@ -59,7 +59,7 @@
* CountDownLatch:可以用来在一个线程中等待多个线程完成任务的类
* Vector
* io流
-![io详解](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/io.png)
+![io详解](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/io.png)
* 根据处理数据的类型
* 字节流:字节流因为操作的是字节,所以可以用来操作媒体文件。
* 字符流:字符流中的对象融合了编码表,也就是系统默认的编码表。我们的系统一般都是GBK编码。字符流只用来处理文本数据,字节流用来处理媒体数据。
@@ -70,7 +70,7 @@
* 对象序列化
* NIO(非阻塞IO)
* IO和NIO的区别
-![IO和NIO的区别](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/nio_and_io.png)
+![IO和NIO的区别](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/nio_and_io.png)
* AIO (异步IO)
* 多线程
@@ -144,9 +144,9 @@ java虚拟机我看过周志明的《深入理解java虚拟机》和周志明等
* 元空间:1.8引入的,用来替换方法区(永久代);不再虚拟机中,使用的是本地内存,取决于电脑的内存大小
***内存结构图***
1.7及以前版本java内存分布图:
-![jvm内存管理](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/jvm.jpg)
+![jvm内存管理](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/jvm.jpg)
1.8 内存分布图:
-![jvm内存管理](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/jvm.png)
+![jvm内存管理](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/jvm.png)
* 对象
* 对象的创建
* 对象的内存布局
@@ -159,9 +159,9 @@ java虚拟机我看过周志明的《深入理解java虚拟机》和周志明等
* 指针方式访问(hotspot 虚拟机用的就是指针方式访问):指针访问方式访问方式比句柄方式快,节省一次指正定位带来的时间开销。
* 句柄方式访问(其他虚拟机):句柄池中存放的是稳定的句柄,当对象被移动时,只需要改变句柄的实例数据就行,不需要改变reference本身的值。
***普通对象的内存分布***
- ![mei对象](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/object.JPEG)
+ ![mei对象](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/object.JPEG)
***数组对象的内存分布***
- ![mei对象](http://www.zeekling.cn/gogs/zeek/study/raw/master/java/pics/object_arr.JPEG)
+ ![mei对象](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/object_arr.JPEG)
* 垃圾回收
* 判断对象已死
* 引用计数法(无法判断循环引用的对象是否已死):每个对象都有一个引用计数器,对象每被引用一次就加1,对象被释放就减1,引用计数为0表示可以被回收。