替换URL

This commit is contained in:
zeek 2020-03-14 17:10:02 +08:00
parent 2d1e90f253
commit 0acdfb8190
1 changed files with 11 additions and 11 deletions

View File

@ -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)<br>
![jvm内存管理](https://git.zeekling.cn/zeekling/study/raw/branch/master/java/pics/jvm.png)<br>
* 对象
* 对象的创建
* 对象的内存布局
@ -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表示可以被回收。