以前一直在学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. shell管道与重定向

    输出重定向 $ ls -l > lsoutput 这条命令将ls命令执行后的结果输入出到lsoutput文件中. 在linux shell中使用符号 > ,< 来完成输入输出的重定向 ...

  2. 生产环境项目问题记录系列(二):Docker打包镜像Nuget包因权限问题还原失败

    docker打包镜像遇到一个因为nuget权限验证问题导致镜像打包失败的问题,公司Nuget包用的是tfs管理的,tfs有权限验证,结果导致nuget还原失败,原有的NuGet.config文件如下: ...

  3. 集合线性表--List之LinkedList(队列与栈)

    队列和栈1. Queue 队列(Queue)是常用的数据结构,可以将队列看成特殊的线性表,队列限制了对线性表的访问方式:只能从线性表的一端添加(offer)元素,从另一端取出(poll)元素.队列遵循 ...

  4. 【Java基础】Java中的语法糖

    目录 Java中的语法糖 switch对String和枚举类的支持 对泛型的支持 包装类型的自动装箱和拆箱 变长方法参数 枚举 内部类 条件编译 断言 数值字面量 for-each try-with- ...

  5. 程序员修神之路--设计一套RPC框架并非易事

    菜菜哥,我最近终于把Socket通信调通了 这么底层的东西你现在都会了,恭喜你离涨薪又进一步呀 http协议不也是利用的Socket吗 可以这么说,http协议是基于TCP协议的,底层的数据传输可以说 ...

  6. 微人事 star 数超 10k,如何打造一个 star 数超 10k 的开源项目

    看了下,微人事(https://github.com/lenve/vhr)项目 star 数超 10k 啦,松哥第一个 star 数过万的开源项目就这样诞生了. 两年前差不多就是现在这个时候,松哥所在 ...

  7. 02-05 scikit-learn库之线性回归

    目录 scikit-learn库之线性回归 一.LinearRegression 1.1 使用场景 1.2 代码 1.3 参数详解 1.4 属性 1.5 方法 1.5.1 报告决定系数 二.ARDRe ...

  8. SecureCRT连接虚拟机下的CentOS7

    1.首先在VMWare下配置CentOS为桥接模式: 2.查看本机ip: 3.ip addr查看centos的mac地址: 4.在root权限下修改/etc/sysconfig/network-scr ...

  9. drf框架serializers中ModelSerializer类简化序列化和反序列化操作

    0905自我总结 drf框架serializers中ModelSerializer类 基于seriallizer类进行简化 https://www.cnblogs.com/pythonywy/p/11 ...

  10. 算数运算符and数据类型转换

    一元(单目)运算符有且只有一个运算参数,二元(双目)运算符有且只有两个运算参数. 二元运算符:+(加).-(减).*(乘)./(求商).%(求余) 一元运算符:+(正),-(负),++(自增),--( ...