`

深入理解Java虚拟机读书笔记之:第1章 Java体系结构介绍

阅读更多
    几年前买了《深入Java虚拟机(原书第2版)》一书,由于当时能力有限只看了前几章,最近又重新拿出来细细研读。
 
Java体系结构包括四个独立但相关的技术:
Java程序设计语言;
Java class文件格式;
Java应用编程接口(API);
Java虚拟机。
 
    Java虚拟机和Java API一起组成了一个“平台”,所有Java程序都在这上面编译。Java虚拟机和Java API的组合除了被称为Java运行时系统之外,还被称为Java平台(从版本1.2开始,称为Java 2平台)。
    Java的面向网络的核心就是Java虚拟机,它支持Java面向网络体系结构三大支柱的所有方面:平台无关性、安全性和网络移动性。


 

 
Java虚拟机的主要任务是装载class文件并且执行其中的字节码。
Java API中只有程序执行时需要的那些类才会被装载。字节码由执行引擎来执行。


 
Java中有两种方法:Java方法和本地方法。
本地方法是联系Java程序和底层主机操作系统的连接方法。


 
一个Java应用程序可以使用两种类装载器:启动(bootstrap)类装载器和用户定义的类装载器。
当被装载的类引用了另外一个类时,虚拟机就会使用装载第一个类的类装载器装载被引用的类。


 
运行时的Java程序中的每一个类装载器都有它自己的命名空间。
被不同的类装载器装载的类存放在不同的命名空间中,它们不能相互访问,除非应用程序地允许这样做。
 
通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。
当编译和连接一个C++程序的时候,所获得的可执行二进制文件只能在指定的硬件平台和操作系统上运行,因为这个二进制文件包含了目标处理器的机器语言。而Java编译器把Java源文件的指令翻译成字节码,这种字节码就是Java虚拟机的“机器语言”。
Java class文件中字节顺序是高位在前,这与使用何种平台产生这个文件和在何种平台上使用这个文件都没有关系。


 
 
第一个Java虚拟机诞生于1995年。
 
(转载请注明来源:http://zhanjia.iteye.com/blog/1841932)
  • 大小: 19.8 KB
  • 大小: 11.1 KB
  • 大小: 7.4 KB
  • 大小: 11.4 KB
  • 大小: 12.6 KB
  • 大小: 8.9 KB
3
2
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    深入理解Java虚拟机读书笔记之:第3章 安全(2)

    总的来说,"深入理解Java虚拟机读书笔记之:第3章 安全(2)"主要涵盖了Java安全体系的核心概念,包括类加载器、权限模型、安全管理器以及相关工具的使用。理解这些内容对于任何希望构建安全、可靠的Java应用程序的...

    深入java虚拟机笔记

    #### 第一章 Java体系结构介绍 - **Java体系结构概述**:本章主要介绍了Java体系结构的基本概念及其组成部分。Java体系结构旨在为开发者提供一个统一、高效且跨平台的应用开发环境。 - **Java虚拟机(JVM)**:JVM是...

    java学习笔记 良格格

    ### Java学习笔记要点 #### 一、了解Java ##### 1.1 Java的起源与发展历程 - **起源**: Java 最初是由 Sun 公司在 Green Project 中为了开发 Star7 应用程序而创建的一种编程语言。 - **命名**: 语言的名字来源于 ...

    Java基础知识笔记详细版-菜鸟翻阅必备

    ### Java基础知识笔记详细版-菜鸟翻阅必备 #### 一、Java概述 1. **Java语言发展史**: - Java由Sun Microsystems公司于1995年推出。 - 最初由James Gosling领导的设计团队开发,目标是用于家用电器的编程。 - ...

    Java+JDK+6学习笔记.pdf

    - **基础语法**:理解 Java 语法是学习 Java 的第一步,包括变量、数据类型、控制结构等。 - **基本 API 使用**: - 字符串处理:掌握 String 类的使用。 - 异常处理:了解如何使用 try-catch 语句捕获异常。 - ...

    java\CoreJava笔记\CoreJAVA_day01

    - 夸平台性:通过Java虚拟机(JVM),Java程序可以在不同的操作系统上运行,实现"Write Once, Run Anywhere"。 - 内存管理:Java自动进行内存管理,包括垃圾回收机制(GC),程序员无需手动释放内存。 - 代码安全...

    Java_第一章

    【Java_第一章】是关于Java编程语言入门的学习资料,涵盖了计算机基础知识、Java语言的基本概念、JDK的获取与安装,以及编写第一个Java程序——“Hello, World!”的实践。这一章的学习是Java开发者必备的起点,对...

    传智播客Java_SE基础毕向东老师全程笔记

    ### 第一章:编程基础 1. **Java的特性和优势**: - **简单性**:Java设计简洁,易于理解和学习。 - **面向对象**:支持封装、继承和多态等面向对象特性。 - **可移植性**:“一次编写,到处运行”(Write Once ...

    JAVA编程笔记

    Java平台的体系结构 - **Java SE (Java Platform Standard Edition)**:这是 Java 的基础部分,包含了核心类库、API 和 JVM,为 Java ME 和 Java EE 提供了基础。 - **Java ME (Java Platform Micro Edition)**:...

    JAVA SE阶段全部笔记

    - **Java虚拟机**:`java.exe`解释执行器将字节码加载至JVM中运行。 #### 十四、简单的加法运算程序 ```java public class SimpleAddition { public static void main(String[] args) { int a = 5; int b = 10;...

    常用文档Java4.rar

    1. **JVM(Java虚拟机)**: JVM是Java程序运行的基础,它负责解释和执行字节码。《操作系统:精髓与设计原理》笔记和原书可以帮助你理解JVM如何与操作系统交互,包括内存管理、线程调度和垃圾回收机制。理解JVM的...

    java基础课程视频学习笔记分享.ppt

    - **1995年**:推出了Java的第一个测试版。 - **1996年**:发布了JDK 1.0,标志着Java正式成为一种可用的编程语言。 - **1997年**:推出了JDK 1.1,增加了许多新特性并改进了性能。 - **1998年**:发布了JDK 1.2,这...

    达内COREJAVA学习笔记.doc

    - **JVM**: Java Virtual Machine,Java虚拟机。 - **环境变量配置**: - **JAVA_HOME**: 指向JDK安装目录。 - **PATH**: 添加JDK bin目录至系统路径。 - **CLASSPATH**: 设置类库路径,通常包含JDK自带的rt.jar...

    java从入门到精通视频笔记

    Java是一种广泛使用的高级编程语言,由Sun Microsystems(后被Oracle收购)于1990年代初启动的“绿色计划”中诞生,最初名为Oak,1995年正式发布第一个版本JDK1.0。Java的设计理念是“一次编写,到处运行”,这得益...

    java初学笔记

    学习Java的第一步通常是安装Java Development Kit(JDK),并设置好环境变量`JAVA_HOME`、`PATH`和`CLASSPATH`,确保系统能够找到Java编译器和运行时环境。 3. **Java语法基础** - **数据类型**:包括基本数据...

    Java零基础学习.pdf

    Java是一种跨平台的编程语言,这意味着同样的Java程序可以在不同操作系统上运行,只需要安装相应的Java虚拟机(JVM)。而Eclipse作为一款流行的集成开发环境(IDE),提供了丰富的工具和功能,可以帮助开发者更高效...

    javaweb期末复习笔记

    #### 第一章:JAVA概述 - **Java 之父**:詹姆斯·高斯林(James Gosling),最初名为Oak(橡树)语言。 - **Java 体系架构**: - **Java SE**:标准版,提供基本功能支持。 - **Java EE**:企业版,针对大型应用...

    JDK 5.0学习笔记三)

    编译Java程序是将其源代码转换为字节码的过程,字节码是一种中间代码,可由Java虚拟机(JVM)执行。在命令行下编译Java程序,通常使用`javac`命令。例如,对于`HelloJava.java`文件,可以通过`javac HelloJava.java`...

Global site tag (gtag.js) - Google Analytics