爱看书的阿东

赐他一块白色石头,石头上写着新名

前言

上一节讲述了栈桢和分派的细节,这一节我们来讲讲自java语言诞生新增加的新语言特性:动态类型语言支持,这一节将会根据动态语言的特性以及相关的介绍同时讲述jvm一个重要的指令:invoke dynamic指令。但是需要注意的是:invokedy namic指令面向 的主要服务对象并非Java语言,而是其他Java虚拟机之上的其他动态类型语言

概述

  1. 介绍什么是动态类型语言,以及java为什么是静态语言的讲解。

  2. 介绍invokeDynamic指令在实际案例中的运用

  3. 介绍java实现动态语言调用的一些曲线救国的手段。

阅读全文 »

深入理解JVM - 类文件结构

前言

​ JVM的类文件结构基本都会要记忆的内容,我相信你也记不住,当然我也是记不住的,所以这里只会列出大致的类文件结构,我们需要大致了解类文件结构是怎么一回事就行了,具体到那个位存哪个内容,内容确实太多了,感兴趣可以直接去读书中对应的第6章 类文件结构这一个章节的内容。

​ 类文件结构个人认为需要注意的点就是这几点:大致的类文件结构,部分Jdk的特性如何通过改动class文件结构实现,比如泛型,自动拆装箱,动态代理,lambada语法等。

概述:

​ 其实主要内容就是介绍CLASS的文件结构。

  1. 了解JVM的类文件基本结构。
  2. 了解常量池的内容
  3. 了解重点内容属性表集合
阅读全文 »

深入理解JVM - 字节码指令

前言

​ 字节码指令的部分更多要和实战搭配学习和使用,所以这一节将会是简单概述字节码的相关指令内容,和class结构不同,字节码指令常见的命令是需要了解的,虽然我们很多时候并不需要研究底层字节码的指令,但是譬如动态语言的支持就是通过新增字节码指令完成的。

​ 这一节内容更加建议配合阅读字节码,根据字节码阅读来加强记忆。后续的文章将会单独开一篇讲一讲字节码的源代码处理。

概述

  1. 了解jvm字节码指令的基本特点
  2. 了解jvm的常见字节码指令(建议在阅读字节码的时候不知道什么意思的时候再来查)
  3. 部分指令的处理细节讲解。
  4. 最后根据书中的内容整理了一个excel表格,供阅读的时候进行快速查阅
阅读全文 »

《半小时漫画世界史(一)》读书笔记

前言

​ 额,一本漫画确实不太好做读书笔记,这本书不应该算书,更像是给儿童科普的漫画,把枯燥乏味的历史用漫画的方式表现挺有意思的,当然作为一个成年人来看肯定不能把里面的内容当真(当真就完了)。历史不是靠一两张图片和一段话就能叙述完的,这部漫画最多最多让你了解历史大概的进程是怎么回事。

推荐程度

​ 3星,轻松娱乐向的书,有点让我找回了当年看阿衰的感觉,这本书是边做笔记边看的,没有也不需要翻第二遍,第一部讲述了欧洲历史,希波战争,美国的崛起和独立,三大骑士团条顿骑士团、医院骑士团、圣殿骑士团的出身和发展,以及最后快速的过了一遍日本历史。

阅读全文 »

深入理解JVM - ZGC收集器

前言

​ 上文讲到了Shenadoah收集器,这一节我们来讲一下ZGC收集器,ZGC收集器是JDK11之后由Oracle官方开发的一款低延迟垃圾收集器。另外这里吐槽一句ZGC的内容非常复杂并且知识点巨多,所以建议泡杯茶边喝边看。

​ 在正式的介绍之前,先看下ZGC支持的内容:

关于ZGC的关键字如下:

  • Concurrent(并发)
  • Region-based(region)
  • Compacting(压缩-整理算法)
  • NUMA-aware(NUMA支持)
  • Using colored pointers(染色指针)
  • Using load barriers(读屏障)

概述

  1. 介绍ZGC收集器,以及ZGC收集器的特点(重点:染色指针)
  2. 了解ZGC的基本工作原理,以及工作流程和步骤
  3. ZGC的深入学习方式了解(文末)
阅读全文 »

深入理解JVM - Shenadoah收集器

前言

​ zgc和shenadoah的收集器是面向未来的收集器,目前还处于不断完善的阶段,虽然我们平时可能不太用的上,但是了解和基本掌握它是必须的,关于这一块网上的内容确实比较少,所以个人还是使用了书本里面的内容进行总结。

​ 另外这两个垃圾收集器是完全舍弃分代这个概念的,注意是完全舍弃,并不是类似G1收集器虽然使用了分区但是本质上还是分代收集的收集器。

​ 由于这两个收集器的内容较多,这里分开进行讲解,本篇讲解Shenadoah收集器。

思维导图:

不想看文字的,可以查看思维导图:https://www.mubucm.com/doc/7L4W-FA0CFB

阅读全文 »

JAVA8实战 - 日期API

前言

​ 这一节我们来讲讲JAVA8的日期类,源代码的作者其实就是Joda-Time,所以可以看到很多代码的API和Joda类比较像。日期类一直是一个比较难用的东西,但是JAVA8给日期类提供了一套新的API让日期类更加好用。

​ 本文代码较多,建议亲自运行代码理解。
(微信公众号建议阅读原文)

思维导图:

地址:https://www.mubucm.com/doc/ck5ZCrgHkB

内容概述:

  1. 关于JDK8日期的三个核心类:LocalDate、LocalTime、LocalDateTime的相关介绍
  2. 机器时间和日期格式Instant等关于细粒度的时间操作介绍
  3. TemporalAdjusters 用于更加复杂的日期计算,比如计算下一个工作日的时候这个类提供了一些实现
  4. DateTimeFormatter 格式化器,非常的灵活多变,属于SimpleDateFormat的替代品。
  5. 日期API的一些个人工具封装举例,以及在使用JDK8的时候一些个人的踩坑

​ 最后希望通过本文能帮你摆脱new Date()

阅读全文 »

深入理解JVM - 对象分配内存

前言

​ 这一节我们来讨论对象分配内存的细节,这一块的内容相对比较简单,但是也是比较重要的内容,最后会总结书里面的OOM的溢出案例,在过去的文章已经讲到过不少类似的情况。

思维导图:

地址:https://www.mubucm.com/doc/6nFUcbEn-3B

概述

  1. 讲述对象分配内存的方式:“指针碰撞”和“空闲列表”的实现方式
  2. 对象分配中使用了哪些方法,当出现并发分配使用什么方式进行处理的。
  3. 对象的访问方式有哪些,访问的过程的优劣对比
  4. 对象在内存当中的布局,分为三个大类,需要重点掌握对象头的部分
  5. 实战OOM的内容,这部分适合实战的时候再看。
阅读全文 »

《长腿叔叔》读书笔记

前言

​ 这本书是推荐给同事看的,当然最后还是自己先看完了,还算不错的一本书,内容讲述的是关于“感恩”这一个题材的,还算是比较少见的书。

资源链接:

​ 下面是对应的资源链接

链接:https://pan.baidu.com/s/1L4Keex_9OWSL8OKYqx7w9w
提取码:avni
–来自百度网盘超级会员V6的分享

推荐程度

​ 4星,本书整体都使用了一种书信的格式来传达,讲述了收养人与被收养人之间的书信来往,我们可以从这篇文章看到朱蒂(杰露莎)由最开始的埋怨长腿叔叔(这里其实可以看作是读者)并且写出第一封信之后逐渐成长,也可以看到一个从来没有读过书的孤儿院女孩是如何靠自己的努力成为一名合格的作家。

​ 从朱蒂的身上也可以看到不少闪光点,而由于“我”和朱蒂的关系逐渐亲近,我们越发的了解一个人的内心,在时而坚强时而柔弱的朱蒂背后,是一个不断走向成熟的背影,而“我”(长腿叔叔)则是注视这一切的人。

阅读全文 »

【Java】Java 8 实战 - Optional 工具类

[toc]

前言

​ 没错,这又是一个新的专栏,JAVA8可以说是JAVA划时代的一个版本,几乎是让JAVA焕发了第三春(第二春在JDK5),当然里面的新特性也是十分重要的,虽然Java现在都已经到了10几的版本,但是国内多数使用的版本还是JAVA8,所以这个系列将会围绕Java8的新特性和相关工具做一些总结。希望对大家日常学习和工作中有所帮助。

概述:

  1. 日常工作学习我们大致是如何规避空指针的。
  2. 关于Optional的系统介绍,常见的使用和处理方法
  3. Optional的使用场景以及一些小型案例代码
  4. 来看看《Effective Java》这个作者如何看待Optional这个工具类>

思维导图:

地址:https://www.mubucm.com/doc/2qS40EL1g_B

阅读全文 »