摘要: #前言 今天学习了Java内存模型第一课的视频,讲了硬件层面的知识,还是和大学时一样,醍醐灌顶。老师讲得太好了。 Java内存模型,感觉以前学得比较抽象。很繁杂,抽象。 这次试着系统一点跟着2个老师学习一下。 学习Java内存模型目的: 1.高并发情况下,java内存模型是怎么提供支持的? 2.一个 阅读全文
posted @ 2020-07-18 22:09 可苦可乐 阅读(331) 评论(0) 推荐(0) 编辑
摘要: #前言 Java虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。 所以在整个类加载阶段,类加载器的作用就只是在第一步“加载”阶段。 今天就简单记录下类加载器的基本知识。(本文的讨论都 阅读全文
posted @ 2020-07-17 22:01 可苦可乐 阅读(140) 评论(0) 推荐(0) 编辑
摘要: #前言 JAVA代码经过编译从源码变为字节码,字节码可以被JVM解读,使得JVM屏蔽了语言级别的限制。才有了现在的kotlin、Scala、Clojure、Groovy等语言。 字节码文件中描述了类的各种信息,都需要加载到虚拟机之后才能运行和使用。 简单学习了类加载进制后,写一篇文章记录一下以便加深 阅读全文
posted @ 2020-07-16 12:46 可苦可乐 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 第一次学习看字节码文件,这个对工作没什么用,但是会提升内功。 首先介绍两个IDEA插件以及使用: BinEd:以16进制格式查看class文件 使用方法:右键class文件,点击Open as binary JClassLib:以一种更为方便的方式查看字节码,相当于javap -v HelloWor 阅读全文
posted @ 2020-07-11 16:52 可苦可乐 阅读(267) 评论(0) 推荐(0) 编辑
摘要: #2.NIO 当与别人谈论NIO时,一定要弄清楚别人说的NIO是指哪个含义? NIO有2种含义: 1、NonBlocking IO,基于操作系统谈 2、Java New IO,基于Java谈 我们这里主要说的是NonBlocking IO ##NonBlocking IO 基于上一篇文章https: 阅读全文
posted @ 2020-06-29 23:54 可苦可乐 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 以前从来不懂IO的底层,只知道一个大概,就是输入输出的管道怼到一起,然后就可以传输数据了。 最近看了周志垒老师的公开课后,醍醐灌顶。 所以做一个简单的记录。 #0 计算机组成原理相关 ####0.1. 计算机的基本组成大家都了解一点,如下图,当操作系统启动的时候,首先进入内存的除了BIOS,然后就是 阅读全文
posted @ 2020-06-26 16:01 可苦可乐 阅读(727) 评论(0) 推荐(0) 编辑
摘要: JDK 8 提供的重要函数式接口: Consumer (消费者) 功能:接收一个对象,返回void。 定义:void accept(T t) 默认方法:Consumer andThen(Consumer after) BiConsumer (双参消费者) 功能:接收两个对象,返回void。 定义:v 阅读全文
posted @ 2020-06-25 23:20 可苦可乐 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 使用Stream已经快3年了,但是从未真正深入研究过Stream的底层实现。 今天开始把最近学到的Stream原理记录一下。 本篇文章简单描述一下自己对pipeline的理解。 基于下面一段代码: public static void main(String[] args) { List<Strin 阅读全文
posted @ 2020-06-20 23:05 可苦可乐 阅读(1623) 评论(0) 推荐(0) 编辑