MobMsg
【移动端】Android丨Kotlin丨Flutter丨Cordova 【前端】Vue丨Js丨Css丨Html 【后端】Java丨Kotlin丨Node 【各厂小程序】微信丨百度丨other...
展开
-
一句话讲清楚 Java【封装丨继承丨多态】三大特性很难吗!?
这句话就是...原创 2020-07-17 14:33:53 · 1341 阅读 · 2 评论 -
深深的码丨Java ArrayList 源码透析
本文将基于 JDK8 对 ArrayList 源码中的构造ArrayList()、存储add()、删除remove()、扩容grow()、序列化(writeObject()、readObject()) 等过程中所涉及 JDK 源码做行级解释原创 2020-07-13 09:08:03 · 3198 阅读 · 4 评论 -
深深的码丨Java NIO 透析
Java 中传统的 IO 包基于流模型实现,交互方式为同步、阻塞,当发生读取或写入操作时,线程会阻塞在此,直到操作完成。编码时采用这种方式虽然源码较直观易维护,但容易产生应用性能下降问题,且 IO 效率及其拓展性存在较大局限Java 1.4 开始引入 NIO 框架,提供了 Channel(通道)、Selector(IO复用器/选择器)、Buffer(缓冲区),可构建多路复用、同步非阻塞的 IO...原创 2019-12-03 18:02:10 · 2127 阅读 · 2 评论 -
深深的码丨Java HashMap 源码透析
HashMap 相关概念HashTab、HashMap、TreeMap 均以键值对像是存储或操作数据元素。HashTab继承自Dictionary,HashMap、TreeMap继承自AbstractMap,三者均实现Map接口**HashTab:**同步哈希表,不支持null键或值,因为同步导致性能影响,很少被使用**HashMap:**应用较多的非同步哈希表,支持null键或值,是键值对...原创 2019-11-07 17:37:15 · 19726 阅读 · 26 评论 -
深深的码丨Java OOM 召唤
oom指的是 JVM 内存不够用了,并且垃圾收集器也无法提供更多内存,举个最简单的例子:执行 public static void main(String[] args) { int data[] = new int[Integer.MAX_VALUE]; }输出Exception in thread "main" java.lang.OutOfMemoryError: Req...原创 2019-10-24 10:19:28 · 933 阅读 · 2 评论 -
深深的码丨Java Thread 透析
Thread 相关概念线程是系统资源分配的最小单位,它被包含在进程之中,是进程中的实际运作单位。JVM 允许应用程序同时运行、执行多个线程,每个线程都有优先权,具有较高优先级的线程优先于优先级较低的线程执行在Java中线程分为两类:User Thread(用户线程)、Daemon Thread(守护线程)在JVM启动时候会调用main函数,main函数所在的线程是就是一个用户线程,在此...原创 2019-07-19 22:37:09 · 241 阅读 · 3 评论 -
深深的码丨Java Object 透析
Object 相关概念Object 是 java 中的顶级父类,它是所有类的超类,所有对象以及数组均会实现这个类提供的方法JVM 在编译源码过程中,遇到没有继承 Object 的对象时,编译器会指定默认父类 Object接口没有继承顶级父类,但会隐式的声明一套和 Object 中的方法签名完全一样的方法,这也就符合万物皆对象的面向对象思想,任何对象直接或间接的跟 Object 对象有关...原创 2019-07-31 08:31:57 · 142 阅读 · 0 评论