JVM-14: 逃逸分析:对象不一定在堆上
一、全景:对象不一定在堆上前面几章我们反复说:new 出来的对象都在堆上。这句话在 Java 课里成立,在 JIT 的世界里只对了一半。有些对象从头到尾没进过堆。JIT 把它拆成几个寄存器里的值,new 这个动作本身都省了。干这件事的机制,叫逃逸分析。
彻底搞懂Rust!对比Java、C、Python、C#,老程序员专属学习攻略
Rust编程语言如果你会Java、Python、C、C#,再学Rust,一定会有一种颠覆认知的感觉。 别的语言都是“写代码、运行、出Bug再改”,唯独Rust是“写完代码先严格检查,没问题才允许你运行”。
JVM-12:对象的内存布局与指针压缩:一个对象到底多大
上一篇把常量池的事了结了。这一篇回答一个更实在的问题:new 一个对象,堆里到底划走多少字节?面试里问"空对象占多少内存",十个候选人里八个答"没字段,0 字节",剩下两个答 8 字节。都对不上账。实测答案是 16 字节,一半是看不见的开销。这篇不背书,拿探针直接量。
软件专业毕设,为什么90%学生选Java,不选C?真实成本差距太现实
观察过软件专业近几年的毕设,有一个特别统一的现象: 绝大多数同学做毕业设计,首选一定是Java,几乎没人主动选C语言做主力开发。 很多人以为是Java热门、好找工作,其实根本不是。真正核心原因,只有过来人懂:纯从学生的时间成本、试错成本、落地成本来看,C做毕设太亏了。
一杯咖啡的三十年:Java 的不完整简史
1991 年,湾区一间不太起眼的办公室里,一群工程师领到一个活儿:给电视机顶盒写点程序。他们嫌 C++ 太重,索性自己造一门语言。三十多年后,这门语言跑在银行的核心账务系统里,跑在阿里和亚马逊的服务器上,跑在你手机里那些十年前的老游戏里,也跑在每一个后端面试官的口中。
JVM 如何运行 Java 程序?从类加载到内存模型,一文看懂 JVM 核心原理
《Java 技术进化论》专栏 · 第四篇我们每天都在编写 Java 代码。例如:public class HelloWorld { public static void main(String[] args) { System.out.
深度复盘:为什么Java的诞生,是编程语言史上最重磅的一次革命?
纵观计算机编程语言发展史,真正做到改变行业规则、重塑开发模式、统治行业数十年的语言寥寥无几。如果说C语言奠定了操作系统底层,C++开启了面向对象编程,那么1995年诞生的Java,就是彻底引爆互联网时代、完成软件开发工业化的重磅炸弹。
JVM-11: 运行时常量池与字符串常量池
篇九把 Java 堆拆开了,篇十把方法区和元空间讲透了。这两篇各自都提到过一个东西:字符串常量池。堆里有它的对象,元空间里有它的账本,两边都跟它沾边。这一篇就专门讲它,顺带把运行时常量池一起说清楚,这俩名字太像,混着背的人不在少数。