EKS自建ES8.8
EKS自建ElasticSearch8.8+IK分词器
……专注于Jvm(openjdk)、Go语言(golang)、云计算、效率工具、项目管理、软件架构、金融科技
EKS自建ElasticSearch8.8+IK分词器
……最近做了不少Stable Diffusion相关的尝试,这里整理一些资源情况
……19年以来,clojure社区新出了不少好东西,这里做个整理。
……JVM拾遗-4-Java对象的内存布局讲了JVM如何实例化对象以及对象在内存中的表示. 本次讲解如何计算一个对象的大小.
为啥要讲这个? 因为笔者在做一块业务的时候,老板有次让从数据库取100000条天气数据,在内存里按业务规则排序. 这明显不合理会让内存爆炸的需求,怎么怼回去呢?
这时候就要搬出我们的理论支持来计算一番了.
……上一节JVM拾遗-3-类装载机制讲了JVM如何将类装载到虚拟机以供后续使用 那么JVM是如何创建类的实例呢?该对象是如何分配内存的?
Java对象的创建, 有多种方式,最简单就是new XXClass
, 还可以通过反射
,xx.clone()
,反序列化
以及黑科技Unsafe.allocateInstance
等方法.
new
和反射创建对象实例的时候,会初始化实例字段.
如果类没有构造器,会默认添加构造器,并且编译成<init>
方法.
默认生成的构造器里,如果父类有无参构造器, 会隐式递归调用父类的构造器.
上一篇我们了解了class文件结构, 那么JVM如何使用编译好的class二进制文件?
简言之: JVM会读取.class
文件并加载和初始化到方法区, 之后才能被后续程序使用.
同时该过程还需要满足一些要求:
JVM是解释执行字节码的,不像c/c++那样编译的时候静态链接完了, 是在运行时期动态链接的。
……博客备案了一个月,中途也有各种工作的事情,现在继续更新。 前面从比较远的角度介绍了JVM的一些小常识, 如果没看懂也没关系,毕竟学习的过程就是 先感性认识,后才能升华到理性认识。所谓书读百遍其义自见也是类似的道理。
这次谈谈Java的平台无关性的基石: Class
文件。
开个新系列,本系列会对JVM的知识点拾遗, 也是对自己JVM学习的一个梳理。 关于JVM的方方面面都会讲到,应该会是理论为主,辅代码和图(不会是纯理论的)。
以前看过林林总总的JVM书籍,比如周志明大佬的<<深入理解Java虚拟机>>
和张秀宏大佬的<<自己动手写Java虚拟机>>
, 也跟着造了个小JVM,所以也尝试将知识整理下
本系列会比较长,但是会把知识点细分,前后贯通串起来。
如果没有特殊指出,JVM使用的是Hotspot VM,JDK使用的是OpenJDK8
迟来的总结,NIO系列写了11篇了,本篇做个总结吧
写这个系列的起因是各个框架比如netty
, tomcat
, jetty
这些高性能框架的
基石就是NIO
, 一直想讲讲它们高性能的原因。