Java基础-Java的体系结构

作者:码农洞见 时间:2022-05-18 00:19:05 

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的内伸。

Java基础-Java的体系结构

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)执行引擎调用操作系统或硬件运行

Java基础-Java的体系结构

2.2 字节码

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

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

Java基础-Java的体系结构

2.3 Java API

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

2.4 Java虚拟机

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

Java基础-Java的体系结构

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

Java基础-Java的体系结构

3 总结

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

来源:https://blog.csdn.net/pangpengshuai/article/details/121928590

标签:Java,体系,结构
0
投稿

猜你喜欢

  • JAVA利用HttpClient进行HTTPS接口调用的方法

    2023-10-24 16:28:11
  • Android 如何获取设备唯一标识

    2022-09-03 10:47:48
  • Java实现单链表基础操作

    2021-08-07 13:46:04
  • Android实现定时任务及闹钟

    2023-05-20 13:34:45
  • Java 8新的时间日期库的20个使用示例

    2022-11-06 06:55:00
  • Studio 编译报错:compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.的解决办法

    2023-06-19 17:19:41
  • C#多线程学习之(五)使用定时器进行多线程的自动管理

    2022-03-05 13:55:44
  • Android用PopupWindow实现自定义Dailog

    2023-11-03 13:34:57
  • java并发编程专题(三)----详解线程的同步

    2022-03-18 05:35:42
  • 为Android系统添加config.xml 新配置的设置

    2022-02-19 23:31:48
  • Mybatis通过数据库表自动生成实体类和xml映射文件

    2022-01-11 07:05:46
  • C#调用Oracle存储过程的方法

    2022-10-19 02:29:19
  • Json传输出现中文乱码问题的解决办法

    2022-06-23 06:38:04
  • Java 添加超链接到 Word 文档方法详解

    2023-01-29 08:49:30
  • Java用BigDecimal类解决Double类型精度丢失的问题

    2022-01-07 16:49:24
  • Android中 动态改变对话框值的方法

    2023-08-17 19:44:30
  • Android ListView弹性效果的实现方法

    2023-08-07 19:06:40
  • Java解决计算相邻两个数的最大差值的问题

    2022-03-29 05:47:20
  • Kotlin协程之Flow基础原理示例解析

    2021-10-17 21:07:44
  • 一行命令同时修改maven项目中多个module的版本号的方法

    2023-09-13 09:43:10
  • asp之家 软件编程 m.aspxhome.com