以前一直在学java程序设计语言,学完了就以为自己已经把java学得差不多了,直到最近在看一本书《深入理解java虚拟机》,才发现自己以前学的只不过是冰山一角。相信很多小伙伴跟我一样,在没有了解过java技术体系之前,都搞不明白Java SE,Java EE一系列跟Java是什么关系,今天就来简单说一下java技术体系。

(1)从传统意义上来说,sun公司定义的Java技术体系包括以下几个部分:

  • Java程序设计语言
  • 各种硬件平台上的Java虚拟机
  • Class文件格式
  • Java API类库
  • 来自商业机构和开源社区的第三方Java类库

Java程序语言不用多说,就是我们平常编写的代码等等,我们一开始也是从语言学起;

Java虚拟机则是很重要的一部分,我们都知道Java除了面向对象之外,还有很多其他优点,比如:摆脱了硬件平台的束缚,实现“一次编写,到处运行”,那java是怎么实现这个技术的呢?是因为Java虚拟机有自己一套完善的硬件架构和指令系统,不管具体的操作系统平台是什么,Java程序只要生成在Java虚拟机上运行的目标代码,就可以在多种平台上运行。

Class文件格式也是Java能够跨平台的基础,Java字节码能够跨不同的虚拟机在不同的平台上运行,是因为这些字节码按照Calss文件格式规范组成了Class文件,不同的语言都可以根据Calss文件格式生成能够在JVM上运行的字节码。

Java API类库的作用也十分强大,我们在写代码的时候,经常会用到import,实际上我们导入的就是Java程序设计师已经打包好的接口和类,这些接口和类对应着实现某些具体的功能,我们在编写程序时,可以直接把这些接口和类拿来使用,大大提高了编程效率。此外,API除了有“应用程序编程接口”的意思,还特指API的说明文档,也称为帮助文档,里面包含了很多java 类和方法说明,是编写java必不可少的帮助工具,everybody 用起来呀!

有需要帮助文档的可以去我网盘里下载哦

链接:https://pan.baidu.com/s/17CLdvpKitX70fbmjvQ8ehg
提取码:ymbq
第三方Java类库嘛,我也不知道是啥,有兴趣的小伙伴可以自己上网搜一搜~

(2)如果按照Java技术所关注的重点领域来分,Java技术体系可以分为四个平台:

  • Java Card:支持一些Java小程序(Applets)运行在小内存设备(如智能卡)上的平台。
  • Java ME(Micro Edition):支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,以前被称为J2ME.
  • Java SE(Standard Edition):支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的java核心API,以前被称为J2SE.
  • Java EE(Enterprise Edition):支持使用多层架构的企业应用(如ERP、CRM应用)的Java平台,除了提供Java SE API外,还对其做了大量的补充并提供了相关的部署支持,以前被称为J2EE。

如果按照我的理解,就直接把他们理解为关注的领域由小到大嘿嘿嘿~

(3)在这里还想多提几句,第一种划分方法中,我们一般把Java 程序设计语言,Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。而一般把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境,二者一定要区分开来。

简要概括java技术体系的更多相关文章

  1. JVM笔记-Java技术体系与JVM概述

    1. 简述 Java 不仅仅是一门编程语言,还是一个由一系列计算机软件和规范组成的技术体系. Java 的广告词为 "一次编写,到处运行",之所以能够做到"跨平台&quo ...

  2. JAVA技术体系发展路线

    JAVA技术体系 1.1 Java程序员 ·高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变参数.可变返回类型.增强循环.静态导入 ·核心编程 IO.多线程.实体类.集合类.正则表达式.XM ...

  3. 深入理解java虚拟机----java技术体系(一)

    1.java技术体系 举例: class文件格式:如下图所示,java源代码可以根据不同的编译器可以编译成不同的代码.即可以自定义语言规范比如beanshell,并编写代码; 然后自己编写java编译 ...

  4. Java 技术体系(JDK 与 JRE 的关系)、POJO 与 JavaBeans

    Java 技术体系的分层结构(不同的颜色表示不同的层次),尤其注意 JDK 与 JRE 之间的包含关系: 图见 Java Platform Standard Edition 7 Documentati ...

  5. Java技术体系 JDK与JRE

    从广义上讲,Clojure.JRuby.Groovy等运行于Java虚拟机上的语言及其相关的程序都属于Java技术体系中的一员.如果仅从传统意义上来看,Sun官方所定义的Java技术体系包括以下几个组 ...

  6. JVM学习之Java技术体系

    目录 一.Java技术体系 1.Java体系构成 2.JDK.JRE.JVM之前的关系 JVM介绍 (1)JVM官方文档定义 (2)中文解释 JVM结构 Java代码执行流程 JVM架构模型 1.指令 ...

  7. Java技术体系图

    Java程序员高级特性              反射.泛型.注释符.自动装箱和拆箱.枚举类.可变              参数.可变返回类型.增强循环.静态导入        核心编程       ...

  8. Java 技术体系图

    Java 程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 IO.多线程.实体类. 集合类.正则表达式. XML 和属性文件 图形编 ...

  9. Java技术体系

    Shell 解释型编程语言(脚本语言都是解释型语言) Shell通过解释器/bin/bash 解释,运行在进程中 Java 编译型解释型语言(先编译再解释) Java通过编译器转换成字节码语言,再用过 ...

随机推荐

  1. 使用Espresso测试记录

    准备工作 建立测试项目 添加测试依赖 编写Espresso测试 运行测试并检查测试结果 建立测试项目 使用Android Studio建立测试项目,Activity模版使用 LoginActivity ...

  2. java+maven+jenkins+svn构建

    操作参照:https://blog.csdn.net/qq_34977342/article/details/82346915 1.创建一个自由风格的项目,起名字 2.设置构建项目最大保存数量,与天数 ...

  3. Flask基础(13)-->Flask扩展Flask-Script

    Flask基础(12)-->Flask扩展Flask-Script # 前提是安装了Flask-Script # 联网运行 pip install flask-script from flask ...

  4. Docker 网易镜像仓库使用

    Docker 网易镜像仓库使用: 网易账号注册: https://id.163yun.com/register?h=fc&referrer=https://console.163yun.com ...

  5. MongoDB 学习笔记之 索引选项和重建索引

    索引选项: {background:true}在后台创建索引,索引在构建过程中,其他客户端仍然可以查询数据,不会阻塞. db.comments.createIndex({anonymous: 1},{ ...

  6. C#刷遍Leetcode面试题系列连载(2): No.38 - 报数

    目录 前言 题目描述 相关话题 相似题目 解题思路: 运行结果: 代码要点: 参考资料: 文末彩蛋 前言 前文传送门: C# 刷遍 Leetcode 面试题系列连载(1) - 入门与工具简介 上篇文章 ...

  7. [转] Julia 高性能动态编程语言入门

    本文共 851字,阅读大约需要 3分钟 ! 概 述 Julia 是一个 "全新"的高性能动态编程语言,前两天迎来了其 1.0 正式版的重大更新.Julia集 Python.C.R. ...

  8. Spring bean的作用域以及生命周期

    一.request与session的区别 request简介 request范围较小一些,只是一个请求. request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请 ...

  9. Spring-Data-Jpa使用总结

    参考资源列表 官方文档:https://docs.spring.io/spring-data/jpa/docs/2.1.5.RELEASE/reference/html/ <Spring Dat ...

  10. bugku 各种·绕过

    点开是一段PHP的代码,先来审计一波代码. 发现将uname和passwd用sha1进行了加密,那么我们只要绕过这个函数构造相等就可以了. 可以使这两个值sha1的值相等,但他们本身的值又不等.(想详 ...