Java基础-Java的体系结构

 更新时间:2022年01月26日 16:05:37   作者:码农洞见  
这篇文章主要介绍了Java的体系结构,Java几乎成为了“开源”的代名词。第三方开源软件和框架。如Tomcat、Struts,MyBatis,Spring等,下面我们来看看文章具体的内容介绍吧

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的体系结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot应用发布到Docker的实现

    Spring Boot应用发布到Docker的实现

    这篇文章主要介绍了Spring Boot应用发布到Docker的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 在maven工程里运行java main方法

    在maven工程里运行java main方法

    这篇文章主要介绍了在maven工程里运行java main方法,需要的朋友可以参考下
    2014-04-04
  • java设计模式-单例模式实现方法详解

    java设计模式-单例模式实现方法详解

    单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例(根据需要,也有可能一个线程中属于单例
    2021-07-07
  • Spring事务管理只对出现运行期异常进行回滚

    Spring事务管理只对出现运行期异常进行回滚

    Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚,需要了解更多Spring事务方面的知识,可详看本文
    2012-11-11
  • Java 面试题和答案 -(上)

    Java 面试题和答案 -(上)

    本文主要介绍Java 面试题和答案,这里整理了Java面试中出现的各种题型,和相应知识点,有需要的小伙伴可以好好参考下,帮助大家面试成功
    2016-09-09
  • SpringBoot下使用MyBatis-Puls代码生成器的方法

    SpringBoot下使用MyBatis-Puls代码生成器的方法

    这篇文章主要介绍了SpringBoot下使用MyBatis-Puls代码生成器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • JDBC用IDEA连接SQLServer数据库的超实用教程

    JDBC用IDEA连接SQLServer数据库的超实用教程

    JDBC是Java连接数据库的一种接口,它由各个数据库厂商为开发者提供的接口,要使用它需要到相应厂商下载对应的jar包,下面这篇文章主要给大家介绍了关于JDBC用IDEA连接SQLServer数据库的超实用教程,需要的朋友可以参考下
    2023-05-05
  • springsecurity实现拦截器的使用示例

    springsecurity实现拦截器的使用示例

    Spring Security 可以替代拦截器,同时还可以提供更加细粒度的权限控制和身份认证,本文就来介绍一下springsecurity实现拦截器的使用示例,感兴趣的可以了解一下
    2023-10-10
  • spring boot教程之IDEA环境下的热加载与热部署

    spring boot教程之IDEA环境下的热加载与热部署

    这篇文章主要介绍了spring boot系列教程中的IDEA环境下的热加载与热部署的相关资料,需要的朋友可以参考下
    2022-09-09
  • 常用Eclipse快捷方式(推荐)

    常用Eclipse快捷方式(推荐)

    下面小编就为大家带来一篇常用Eclipse快捷方式(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论