会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
专注虚拟机与编译器研究
管理
[置顶]
为Java虚拟机分配堆内存大于机器物理内存会怎么样?
摘要: 之前在某个地方看到的一个问题,“如果为Java虚拟机指定的堆内存大于物理内存会怎么样?”,今天正好又看到了HotSpot VM中关于为堆分配内存的源代码实现,顺便从源代码角度解答一下这个问题。 我们平时为堆分配内存时,会调用到os::reserve_memory()函数,这个函数的实现如下: cha
阅读全文
posted @ 2025-05-12 08:28 鸠摩(马智)
阅读(897)
评论(0)
推荐(0)
[置顶]
深度研究JDK的各种技术细节
摘要: 打算建立一个JDK网站,将目前JDK的各种重要特性都深入分析一下。希望JDK中各种技术实现细节都可以在这个网站上查到。相关的模块以及阅读顺序如下图所示。 没有将一些内容规划进来,Java语言基本语法太简单,Java框架、中间件等内容太多了,JDK类库资料太丰富了,所以这些内容就暂时不写了。下面就是3
阅读全文
posted @ 2025-03-01 09:39 鸠摩(马智)
阅读(150)
评论(0)
推荐(0)
2025年5月23日
JDK网站最终的拼图
摘要: “JDK源码剖析网”目前只上线了一小部分的内容(而且还未更新完成),Javac编译器,HotSpot基础、垃圾收集器以及HotSpot运行时将在今年10月份之前做为付费内容努力更新完毕。到时候,整个JDK就完成了最核心的一块拼图,剩下2块最主要的拼图就是G1垃圾收集器和C2编译器了,G1垃圾收集器和
阅读全文
posted @ 2025-05-23 16:11 鸠摩(马智)
阅读(316)
评论(0)
推荐(0)
2025年5月13日
Java和C++性能大比拼
摘要: 用来运行Java语言的HotSpot VM主要是用C++语言来写的,所以我们在研究JDK时不得不去学习C++这门语言。C++和Java都是面向对象的语言,所以它们常被拿来做比较。本文将从性能的角度对比分析 Java 和 C++,粗略探讨两者在峰值速度、启动时间和启动性能以及内存利用率方面的差异。 1
阅读全文
posted @ 2025-05-13 09:07 鸠摩(马智)
阅读(398)
评论(0)
推荐(1)
2025年5月8日
历数Java虚拟机GC的种种缺点
摘要: Java通过垃圾收集器(Garbage Collection,简称GC)实现自动内存管理,这样可有效减轻Java应用开发人员的负担,也避免了更多内存泄露的风险。 如果你用过C++等需要手动管理内存的语言,那么你就会体会到GC带来的便利,降低了语言使用的门槛。 不过在我们享受自动内存管理带来的便利时,
阅读全文
posted @ 2025-05-08 10:12 鸠摩(马智)
阅读(322)
评论(0)
推荐(1)
2025年5月6日
Java的"伪泛型"变"真泛型"后,会对性能有帮助吗?
摘要: 泛型存在于Java源代码中,在编译为字节码文件之前都会进行泛型擦除(type erasure),因此,Java的泛型完全由Javac等编译器在编译期提供支持,可以理解为Java的一颗语法糖,这种方式实现的泛型有时也称为“伪泛型”。 泛型擦除本质上就是擦除与泛型相关的一切信息,例如参数化类型、类型变量
阅读全文
posted @ 2025-05-06 15:51 鸠摩(马智)
阅读(685)
评论(1)
推荐(0)
2025年4月29日
经典面试题目“OOM异常会导致JVM退出吗?”
摘要: 经典面试题目“OOM异常会导致JVM退出吗? 我的回答是“这要分情况看,对于守护线程来说,OOM并不会导致JVM退出;对于非守护线程来说,如果某个线程捕获了OOM异常并处理异常后线程并未退出,那JVM并不会退出;如果线程没有捕获Error异常,那么将由全局的异常处理器处理,默认的全局的异常处理器也会
阅读全文
posted @ 2025-04-29 16:50 鸠摩(马智)
阅读(485)
评论(1)
推荐(1)
2025年4月26日
GC垃圾收集时,居然还有用户线程在奔跑
摘要: 之前面试被问到过“当GC垃圾收集时,是所有的用户线程都停止了吗?”,这一篇我们来探究一下这个问题。 其实执行本地代码的线程仍然可以运行,那么这些线程一旦改变了对象中的引用关系或创建了新的对象,这会不会造成GC错误,引发问题呢? 首先举一个例子,证明在GC期间,执行native函数的线程仍然在运行,实
阅读全文
posted @ 2025-04-26 11:11 鸠摩(马智)
阅读(508)
评论(0)
推荐(0)
2025年4月25日
Java虚拟机代码是如何一步一步变复杂且难以理解的?
摘要: 有相关统计数据显示,Java开发者有1000万+,这么多的人每天都在使用Java虚拟机进行开发,不过真正看过虚拟机代码的人应该非常非常少吧,可能有些人研究过,不过由于Java虚拟机是一个高度复杂的系统性工程,过于复杂的实现让他们最终放弃。 目前服务器上使用最多的虚拟机还是HotSpot,HotSpo
阅读全文
posted @ 2025-04-25 09:22 鸠摩(马智)
阅读(1831)
评论(2)
推荐(4)
2025年4月23日
没几个人需要了解的JDK知识,我却花了3天时间研究
摘要: 目前国内发布自己JDK版本的几家公司: 腾讯和阿里是因为有Java应用和云业务,所以在优化发布自己的版本 华为也是因为Java应用和云业务,不过因为还有服务器业务,所以还有Java课题的跑分需求,如SPECpower和SPECjbb跑分高代表自己服务器性能好 一些CPU厂,如龙芯,由于自己的指令集与
阅读全文
posted @ 2025-04-23 09:03 鸠摩(马智)
阅读(1257)
评论(6)
推荐(3)
2025年4月21日
多年后再做Web开发,AI帮大忙
摘要: 最近在AI辅助下做一个简单的网站开发,真是感叹AI的强大呀! 虽然多年前我做过Web前端和后端开发,但是那时候的开发没有现在这么容易入门、上手。 之前SSH(Structs2+Spring+Hibernate)整合都的费点功夫,现在Spring已经一家独大了; 之前Web开发还需要单独下载Tomca
阅读全文
posted @ 2025-04-21 08:03 鸠摩(马智)
阅读(1570)
评论(5)
推荐(5)
公告