Hello World
摘要: 用法: javap 参数 class文件路径 其中, 可能的选项包括: -help --help -? 输出此用法消息 -version 版本信息 -v -verbose 输出附加信息 -l 输出行号和本地变量表 -public 仅显示公共类和成员 -protected 显示受保护的/公共类和成员 阅读全文
posted @ 2018-08-22 16:41 小小忧愁米粒大 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 1. 标记—清除(Mark-Sweep)算法 1. 标记—清除(Mark-Sweep)算法 1.1 定义 最基础的算法,包括标记和清除两部分。 首先把需要回收的对象进行标记,标记完成后进行回收。 1.1 定义 最基础的算法,包括标记和清除两部分。 首先把需要回收的对象进行标记,标记完成后进行回收。 阅读全文
posted @ 2018-08-21 10:32 小小忧愁米粒大 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 1. 判断对象是否可以进行回收 1.1 引用计数算法 定义 : 为对象添加一个引用计数器, 每当有一个地方引用它,计数器值就加一, 当引用失效时, 计数器值就减一. 优点 : 实现简单, 效率高 缺点 : 很难解决对象之间相互循环引用的问题 1.2 可达性分析算法 基本思想 : 通过一系列称为"GC 阅读全文
posted @ 2018-08-21 10:26 小小忧愁米粒大 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 1.对象的创建 1.对象的创建 1.1 当虚拟机遇到一条new指令时 a.判断该指令参数能否在常量池定位到一个类的符号引用; b.符号引用代表的类是否已被加载 解析和初始化过。如果没有则执行类加载。 c.内存分配,对象所需的内存大小在类加载后就完全确定; 根据堆中的内存是否为规整的可分为两种分配方式 阅读全文
posted @ 2018-08-21 09:43 小小忧愁米粒大 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1. Java内存结构 ​ 1. 1程序计数器(线程私有) 当前线程的所执行字节码的行号指示器, 字节码解释器工作时通过改变计数器的值选择下一条需要执行的字节码指令。 java虚拟机的多线程通过轮流切换分配处理器(对于多核处理器来说是一个内核)执行时间来实现,一个时刻,一个处理器只会执行一条线程。 阅读全文
posted @ 2018-08-20 19:45 小小忧愁米粒大 阅读(290) 评论(0) 推荐(0) 编辑
摘要: private static final Object PRESENT = new Object(); // 使用 HashMap 实现 public HashSet() { map = new HashMap(); } // value 为 一个常量的Object public boolean add(E e) { ... 阅读全文
posted @ 2018-08-20 14:46 小小忧愁米粒大 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-08-20 08:29 小小忧愁米粒大 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 传送门 : Java7/8中ConcurrentHashMap全解析 1.基本属性 元素存储在Node类型的table[]中 线程安全通过Synchronzied和CAS操作实现 1.1 sizeCtl -1代表正在初始化 -N 表示有N-1个线程正在进行扩容操作 正数或0代表hash表还没有被初始 阅读全文
posted @ 2018-08-20 00:28 小小忧愁米粒大 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 传送门:Java 8系列之重新认识HashMap HashMap 里面是一个数组,然后数组中每个元素是一个单向链表。 链表中存储的是一个个Node 节点, Node 包含四个属性:key, value, hash 值和用于单向链表的 next。 1.基本属性 2. put() 2.1 计算数组下标 阅读全文
posted @ 2018-08-18 15:51 小小忧愁米粒大 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。 那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 泛 阅读全文
posted @ 2018-08-16 19:48 小小忧愁米粒大 阅读(196) 评论(0) 推荐(0) 编辑
瞅啥瞅,好好看书