Java基础-Java的体系结构

目录
  • 1 前言
    • 1. 1 Java技术平台
    • 1.2 Java开源文化
    • 1.3 Java强大社区
  • 2 Java体系结构的组成
    • 2.1 Java编程语言
    • 2.2 字节码
    • 2.3 Java API
    • 2.4 Java虚拟机
  • 3 总结

1 前言

到目前为止Java仍然是使用最多的编程语言,随着Java以及Java社区的不断壮大,Java也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。

1. 1 Java技术平台

根据不同的技术规范,Java划分为3中结构独立但又相互依赖的技术分支:Java SE(标准版)、Java EE(企业版)、Java ME(精简版)。此外, Java的发展,除了来自互联网的崛起,还有Google选择Java作为Android操作系统,Groovy、Scala、JRuby、Kotlin等都是Java平台的一部分。

Java SE

活跃在桌面领域,主要包含Java API组件。这个版本是Java平台的核心。

Java EE

活跃在企业级领域,主要包含Java API组件、Web组件、事务组件、分布式组件、EJB组件、消息组件;综合这些技术开发人员完全可以构建出一个具备高性能、结构严谨的企业级应用,并且Java EE也是构建SOA架构的首选平台。Java EE是Java SE的扩展。

Java ME

活跃在嵌入式领域,称为精简版是因为JavaME仅保留了Java API中的部分组件,以及适应设备的一些特有组件。Java ME是Java SE的内伸。

1.2 Java开源文化

Java几乎成为了“开源”的代名词。第三方开源软件和框架。如Tomcat、Struts,MyBatis,Spring等。就连JDK和JVM自身也有不少开源的实现,如openJDK、Harmony。

1.3 Java强大社区

Java的文化造就了Java社区,Java拥有全世界最多的技术拥护者和开源社区支持,有数不清的论坛和资料。所谓,众人拾柴火焰高!

2 Java体系结构的组成

Java技术的核心就是Java虚拟机——所有Java程序都在其上运行,需要Java虚拟机、Java API和Java,class文件的配合,Java程序才能够运行。

2.1 Java编程语言

首先我们理一下一个Java程序从编写到最终执行的过程:

  • (1)一个A.java程序源文件执行javac命令后编程成A.class二进制的字节码文件
  • (2).class文件会被ClassLoader装载到内存中,同时装载java相关核心类库
  • (3)调用字节码解释器或即时编译器(java是解释器和编译器混合执行)
  • (4)执行引擎调用操作系统或硬件运行

2.2 字节码

任何编程语言的编译结果满足并包含Java虚拟机的内部指令集、符号表以及一些其他辅助信息的话,这个编译结果就是一个有效的字节码文件。

字节码的重大作用:为Java跨平台提供了支持。正是因为源代码编译后为字节码文件,而字节码文件相较机器指令,字节码可以解决程序的安全性问题、跨平台移植性问题。而且源码只需一次编译,得到的字节码文件可以在不同的平台上运行。

2.3 Java API

API(Application Programming Interface)应用程序编程接口,是一些预先定义的类。目的是使开发人员可以直接使用这些已经被打包的类来做具体的应用,节约了程序员大量的时间和精力。

2.4 Java虚拟机

Java虚拟机(Java Virtual Machine简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,其主要任务为将字节码装载到内部,解释/编译为对应平台上的机器指令执行。

Java虚拟机规范定义了一个抽象的——而非实际的——机器或处理器。这个规范描述了一个指令集,一组寄存器,一个堆栈,一个“垃圾堆”,和一个方法区。一旦一个Java虚拟机在给定的平台上运行,任何Java程序(编译之后的程序,称作字节码)都能在这个平台上运行。Java虚拟机(JVM)可以以一次一条指令的方式来解释字节码(把它映射到实际的处理器指令),或者字节码也可以由实际处理器中称作just-in-time的编译器进行进一步的编译。

3 总结

笔者是一名Java编程语言的深度使用者,到目前为止,Java仍是世界上的头号编程语言。然而,Java最终将会减弱,就像C++一样,沦为只在特殊情况下使用(或者只是用来支持传统的代码,因为它不能像C++那样和硬件连接)。但是无意中的好处,也是Java真正意外的光彩之处在于它为自己的替代品创造了一条非常畅通的道路,即使Java本身已经达到了无法再发展的程度。未来所有的语言都应该从中学习:要么创建一个可以重构的文化(像Python和Ruby做的那样),要么就让竞争者茁壮成长。

到此这篇关于Java基础-Java的体系结构的文章就介绍到这了,更多相关Java的体系结构内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JAVA异常体系结构详解

    一.什么是异常 异常:程序在运行过程中发生由于硬件设备问题.软件设计错误等导致的程序异常事件.(在Java等面向对象的编程语言中)异常本身是一个对象,产生异常就是产生了一个异常对象.      --百度百科 二.异常体系 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类. 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception.   其中异常类Exception又分为运行时异常(RuntimeEx

  • java集合框架的体系结构详细说明

    最近在一本J2EE的书中看到了很不错的对集合框架的说明文章,筛选后发上来和大家共享,集合框架提供管理对象集合的接口和类.它包含接口,类,算法,以下是它的各个组件的说明. Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自

  • 深入理解Java虚拟机体系结构

    1概述 众所周知,Java支持平台无关性.安全性和网络移动性.而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么.正是得益于Java虚拟机,它号称的"一次编译,到处运行"才能有所保障. 1.1Java程序执行流程 Java程序的执行依赖于编译环境和运行环境.源码代码转变成可执行的机器代码,由下面的流程完成: Java技术的核心就是Java虚拟机,因为所有的Java程序都在虚拟机上运行.Java程序的运行需要Java虚拟

  • Java IO流体系继承结构图_动力节点Java学院整理

    Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是一套字节输入-输出,字符输入-输出体系 2. 原始处理器(适配器)与链接流处理器(装饰器) 其结构图如下: Reader-Writer体系 1. 基类 InputStream与OutputStream是所有字节型输入输出流的基抽象类,同时也是适配器(原始流处理器)需要适配的对象,也是装饰器(链接流处

  • 简介Java的Spring框架的体系结构以及安装配置

    体系结构 Spring有可能成为所有企业应用程序的一站式服务,然而,Spring是模块化的,使您可以挑选哪些模块是适用的,而不必把在余下的也引入.以下部分给出详细介绍在Spring框架中所有可用的模块. Spring框架提供约20个模块,可以根据应用程序的要求来使用. 核心容器: 核心容器组成的核心,Beans,上下文和表达式语言模块,其细节如下: 核心模块提供了框架的基本组成部分,包括IoC和依赖注入功能. Bean模块提供BeanFactory是工厂模式的经典实现. Context 上下文模

  • Java基础-Java的体系结构

    目录 1 前言 1. 1 Java技术平台 1.2 Java开源文化 1.3 Java强大社区 2 Java体系结构的组成 2.1 Java编程语言 2.2 字节码 2.3 Java API 2.4 Java虚拟机 3 总结 1 前言 到目前为止Java仍然是使用最多的编程语言,随着Java以及Java社区的不断壮大,Java也早已不再是简简单单的一门计算机语言了,它更是一个平台.一种文化.一个社区. 1. 1 Java技术平台 根据不同的技术规范,Java划分为3中结构独立但又相互依赖的技术分

  • Java基础-Java编程语言发展史

    目录 1 Java由来 2 Java发展阶段 3 码农洞见 3.1 为什么企业程序开发要用JDK8 1 Java由来 Java源自Sun公司的一个叫Green的项目,其原先的目的是为家用电子消费产品开发一个分布式代码系统,这样就可以将通信和控制信息发给电冰箱.电视机.烤面包机等家用电器,对它们进行控制和信息交流.最初Green项目的工程师们准备采用C++,但C++比较复杂,最后经过裁剪.优化和创新,1990年,由Sun公司的James Gosling(詹姆斯·高斯林)领导的小组基于C++开发了一

  • Java基础-Java变量的声明和作用域

    目录 1 前言 2 变量的声明 3 变量的作用域 4 总结 1 前言 变量是计算机语言中的一个概念,可以表示某个具体数值,并且这个值可以改变,所以叫变量.与之对应的是常量,常量也是用来表示某个数值的,但值是固定的,不能改变. 2 变量的声明 声明变量就是要告诉编译器这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据.在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量.为了便于操作,给这个空间取个名字,称为变量名. 语法: 数据类型 变量名 [=初始值]

  • Java基础-Java常量和常量值

    目录 1 常量定义 2 常量语法命名 3 常量值 3.1 整型常量值 3.2 浮点数常量值 3.3 布尔常量值 3.4 字符型常量值 3.5 字符串常量值 4 码农来洞见 4.1 注意事项 4.2 常量作用 4.3 常量声明位置 1 常量定义 在程序中存在大量的数据来代表程序的状态,其中有些数据在程序运行过程中值不能发生改变,这些数据在程序中被叫做常量. 2 常量语法命名 Java常量的语法格式如下: final 数据类型 常量名称 = 值: 示例代码如下: //声明双精度型常量PI并赋值 fi

  • Java基础-Java基本数据类型

    目录 1 前言 2 布尔类型 3 字符类型 4 值类型 4.1 byte 4.2 short 4.3 int 4.4 long 4.5 float 4.6 double 5 码农来洞见 5.1 类型转换 5.2 存储空间 1 前言 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. 因此,通过定义不同类型的变量,可以在内存中储存整数.小数或者字符. Java支持八种基本数据类型,包括一种布

  • java基础教程之拼图游戏的实现

    目录 前言 废话不多说,直接上效果图: 1.所需技术 2.具体实现 2.1 图片制作 2.2 创建项目 2.3 编码实现 总结 前言 大家在初学java的时候,大部分的代码都是在控制台上运行的.可能大家辛辛苦苦写了几十行代码,最终就只是在控制台输出一个字符,这个时候,心里肯定是拔凉拔凉的,心中那一朵编程的火花,就马上给扑灭了.我们都知道兴趣是最好的老师.为了拯救大家快要熄灭的小火花,小编在这里给大家带来使用java做个小游戏,并且通过做这个游戏,好好收悉一下面向对象的实际使用. 废话不多说,直接

  • Java基础之集合框架详解

    一.前言 本节学习到的内容有以下5类,不分先后顺序: 集合Collection体系结构 List子类 与集合结合使用的迭代器对象 集合与数组的区别? 常见的一般数据结构整理 二.集合的由来? Collection List ArrayList Vector LinkedList Set hashSet treeSet 在集合没有出现之前,使用对象数组来存储对象,但是,对象数组的长度一旦确定,则不可以发生变化,所以我们希望存在一个容器就像StringBuffer一样存储字符串,同时依据传入的值的个

  • Java基础之JDBC的数据库连接与基本操作

    一.JDBC概述 JDBC全称Java Database Connectivity,它是一个独立于特定数据库管理系统.通用的SQL数据库存取和操作的公共接口,定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法.方便地访问数据库资源 通俗的来说,JDBC就是让我们通过Java来连接任何提供了JDBC驱动程序的数据库系统,比如我有一个SQLServer数据和一个Mysql数据库,我可以通过Java的JDBC来完成前面学习SQL中的所有操作,而无需在命令行来分别连接它们两个,就像

  • 新手了解java基础知识(一)

    目录 1.java基础 1.1Java历史 1.2Java特点 1.2.1 简单性 1.2.2 面向对象 1.2.3 分布式(微服务) 1.2.4 健壮性 1.2.5 安全性 1.2.6 体系结构中立 1.2.7 可移植性 1.2.8 高性能 1.2.9多线程 1.2.10 动态性 1.3Java基本数据类型 byte: short: int: long: float: double: boolean: char: 1.4例子 1.5基本数据类型的包装类 1.6强制类型转换 1.7隐含强制类型转

  • Java基础知识汇总

    Java基础知识 1.Java语言的优点: 1)Java是纯面向对象语言 2)与平台无关性,一次编译到处运行 3)Java提供了狠多内置类库 4)提供了对web应用的支持 5)具有较好的安全性(数组边界检测.Bytecode检测)和健壮性(强制型机制.垃圾回收器.异常处理) 6)去除c++难以理解的一些特性(头文件 指针 运算符重载 多重继承) 2.java与c++的异同: 1)Java为解释型语言,c++为编译型语言,java会慢但是跨平台 2)Jave为纯面向对象,c++既面向对象又能面向过

随机推荐