Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少。现在介绍下java的四个核心概念:
1.Java虚拟机
Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和 API中装载class文件。Java API中只有程序执行时需要的那些类才会被装载。字节码由执行引擎来执行。不同的Java虚拟机中,执行引擎可能实现得非常不同。在由软件实现的虚拟机中,最简单的执行引擎就是一次性解释字节码。
另一种执行引擎更快,但是也更消耗内存,叫做"即时编译器(just-in-time compiler)"。在这种情况下,第一次被执行的字节码会被编译成本地机器代码。编译出的本地机器代码会被缓存,当方法以后被调用的时候可以重用。
第三种执行引擎是自适应优化器。在这种方法里,虚拟机开始的时候解释字节码,但是会监视运行中程序的活动,并且记录下使用最频繁的代码段。程序运行的时候,虚拟机只把那些活动最频繁的代码编译成本地代码,其他的代码由于使用得不是很频繁,继续保留为字节码-由虚拟机继续解释它们。
一个自适应的优化器可以使得Java虚拟机在80%~90%的时间里执行被优化过的本地代码,而只需要编译10%~20%的对性能有影响的代码。
2.类装载器的体系结构
一个Java应用程序可以使用两种类装载器:"启动(bootstrap)"类装载器和用户定义的类装载器。启动类装载器(这是系统中唯一的)是 Java虚拟机实现的一部分。启动类装载器通常使用某种默认方式从本地磁盘中装载类,包括Java API类(启动类装载器也被称为原始类装载器、系统类装载器或者默认类装载器)。
Java应用程序能够在运行时安装用户定义的类装载器,这种类装载器能够使用自定义的方式来装载类。例如,从网络下载class文件。尽管启动类装载器是虚拟机实现的本质部分,而用户定义的类装载器不是,但用户定义的类装载器能够用Java来编写,能够被编译成class文件,能够被虚拟机装载,还能够像其它对象一样实例化。
3.Java class文件
Java class文件主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。这种途径途径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。
通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件时可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。
4.Java API
Java API通过支持平台无关性和安全性,使得Java适应于网络应用。Java API是运行库的集合,它提供了一套访问主机系统资源的标准方法。运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。
分享到:
相关推荐
### 浅谈Java的输入输出流 #### 一、引言 Java的输入输出功能是其强大特性之一,为开发者提供了灵活多样的处理方式。尽管如此,初学者可能会觉得Java的IO操作相对复杂,因为涉及到多种不同的对象和类。本文旨在提供...
### 浅谈Java代理机制 #### 一、引言 在深入探讨Java代理机制之前,我们首先需要了解代理模式的基本概念及其应用场景。代理模式是一种结构型设计模式,它为其他对象提供了一种代理以控制对这个对象的访问。在Java...
浅谈java中OO的概念和设计原则 OO(面向对象)是Java语言的核心概念,深入理解OO的概念和设计原则是每个Java开发者必备的技能。下面我们将从OO的设计基础、面向对象设计模式、设计目标、设计原则五大方面来浅谈Java...
### Java之浅谈深说——教你如何成长为Java编程高手 在IT行业中,Java作为一种广泛使用的编程语言,其重要性不言而喻。对于希望成为Java编程高手的学习者来说,掌握正确的学习路径至关重要。本文将根据提供的标题、...
1. 课程体系设计:Java在线课程应包含基础语法、面向对象编程、集合框架、异常处理、多线程、网络编程等核心模块。每个模块应由易到难,逐步深入。 2. 实践项目:理论与实践相结合,设置实际的编程项目,如开发简单...
封装是面向对象编程的核心概念之一,它在Java中扮演着至关重要的角色。封装的主要目的是保护数据,防止外部代码直接访问和修改对象的内部状态,从而提高代码的安全性和可维护性。下面我们将深入探讨封装的概念、原因...
### 浅谈Java输入输出流 #### 一、引言 Java作为一种广泛应用的编程语言,在处理数据时提供了非常强大且灵活的输入输出功能。然而,Java的输入输出操作可能看起来较为复杂,因为开发者通常需要处理多种不同的对象...
"浅谈Java实现面向对象编程java oop" 面向对象编程(OOP)是当前软件开发中最流行的编程范式之一。它具有多方面的吸引力,对管理人员、分析与设计人员和程序员都具有很高的实用价值。 一、对象的综述 对象是面向...
在Java编程语言中,对象、类以及方法的重载是面向对象编程的核心概念。这篇文章将对这些主题进行简要概述。 首先,让我们了解什么是对象。在Java中,万物皆为对象,即所有程序中的数据都是以对象的形式存在的。对象...
本文将深入探讨这四个概念。 **抽象**是面向对象编程中的一个重要概念,它代表对现实世界中事物的一种简化表示。在Java中,抽象主要体现在抽象类和抽象方法上。抽象类是一种不能实例化的类,它通常包含抽象方法,即...
浅谈JDBC的概念理解与学习 JDBC(Java Database Connectivity)是Java中用来对数据库进行统一访问、管理的一种机制。通过JDBC,开发人员可以使用标准Java API来连接不同的数据库管理系统。 - **JDBC驱动模型**:...
四维权限管理模型是一种广泛使用的管理策略,它通常包括四个维度:用户、角色、资源和操作。用户是系统中的主体,角色代表用户的职责或权限集合,资源是可供操作的对象,而操作则定义了用户可以对资源进行的行为。...
一个完整的分布式操作系统应具备以下四个核心功能: 1. 资源透明性:用户不应感知到资源的实际位置。 2. 故障透明性:系统应能自动处理节点故障,保持服务连续性。 3. 安全性:确保数据安全和访问控制,防止未经授权...
在这个“对大数据的透彻理解”文档中,我们将深入探讨大数据的核心概念、特征、应用以及与其紧密相关的Java编程语言在大数据处理中的角色。 首先,大数据的四个基本特征,通常被概括为4V:Volume(大量)、Velocity...
1. **命令行基础**:掌握至少50个常用的命令,理解shell管道、文件流重定向等概念。 2. **桌面环境**:熟悉Gnome/KDE等X-windows桌面环境的基本操作。 3. **软件管理**:学习.tgz、rpm、deb等格式的软件包的安装方法...
- **5.5 Java实现浅克隆与深克隆**:说明Java中克隆机制的两种形式及其应用场景。 - **5.6 枚举可以序列化吗**:探讨枚举类型的序列化可能性。 - **5.7 Java创建对象的方式**:列举并解释创建Java对象的各种方法。 -...
- **浅谈搜索**:本文档开篇介绍了搜索业务的一般需求,包括但不限于用户体验、搜索速度、准确性等方面的需求,并强调了Elasticsearch 在这些场景中的适用性。 #### 第二部分:Elasticsearch 的基本应用 - **增删改...