分类: Java

6 篇文章

深入理解 JVM 之——字节码指令与执行引擎
类文件结构 Write Once,Run Anywhere 对于 C 语言从程序到运行需要经过编译的过程,只有经历了编译后,我们所编写的代码才能够翻译为机器可以直接运行的二进制代码,并且在不同的操作系统下,我们的代码都需要进行一次编译之后才能运行。 而 Java 不同于 C,由于 JVM 内置了解释…
深入理解 JVM 之——垃圾回收与内存分配策略
垃圾回收策略 说起垃圾收集(Garbage Collection,下文简称GC),有不少人把这项技术当作Java语言的伴生产物。事实上,垃圾收集的历史远远比Java久远,在1960年诞生于麻省理工学院的Lisp是第一门开始使用内存动态分配和垃圾收集技术的语言。 回收三问 哪些区域的内存需要回收? J…
深入理解 JVM 之——Java 内存区域与溢出异常
本篇为深入理解 Java 虚拟机第二章内容,推荐在学习前先掌握基础的 Linux 操作、编译原理、计算机组成原理等计算机基础以及扎实的 C/C++ 功底。 该系列的 GitHub 仓库:https://github.com/Doge2077/learn-jvm 运行时数据区域 Java 虚拟机在执行…
深入理解 JVM 之——动手编译 JDK
本篇为深入理解 Java 虚拟机第一章的实战内容,推荐在学习前先掌握基础的 Linux 操作、编译原理基础以及扎实的 C/C++ 功底。 该系列的 GitHub 仓库:https://github.com/Doge2077/learn-jvm 构建编译环境 系统准备 在官方文档上要求编译 OpenJ…
浅谈 Java 中的 Lambda 表达式
Lambda 表达式是一种匿名函数,它可以作为参数传递给方法或存储在变量中。在 Java8 中,它和函数式接口一起,共同构建了函数式编程的框架。 什么是函数式编程 函数式编程是一种编程范式,也是一种思想。 它将计算视为函数求值的过程,并强调函数的纯粹性和不可变性。在函数式编程中,函数被视为一等公民,…
Java 语法基础(持续更新中)
1. Java 初识 1.1 第一个Java程序 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。类似 C/C++ 语言,需要一个函数(在面向对象中,这被称为方法)作为程序执行的入口点。 基本概念: 对象:对象是类的一个实例,有状态和行为。 类:类是一个模板,…