学习关键字Java,JDK,JRE,JVM

如果对本文有更好的建议,请联系助教,我们表示非常感谢。

目录

第 1 章         认识一下Java. 1

1.1.         为何学习Java?... 2

1.2.         是谁发明了Java. 3

1.3.         Java的版本发展... 4

1.4.         Java的三个版本... 4

1.5.         Java的跨平台原理... 5

1.6.         JRE与JDK. 6

1.7.         总结... 7

1.8.         思考与作业... 7

你知道Java是谁发明的吗?那就是曾经辉煌的Sun公司,现在它已经被Oracle甲骨文公司收购。

Java经过20多年的发展,在各个方面已经十分成熟,并在各个领域都大显身手。

Java项目能过做到一次编译到处运行,这是它独特的优势。

  1. 为何学习Java?

当你拿到这本书的时候,有没有想过,我为何要学习Java呢?

Java广受大企业单位和程序员的追捧和喜爱。根据TIOBE公布的历年编程语言排行榜,Java一直是王者,经常和C系列编程语言一起霸占前三名。

数据来自:https://www.tiobe.com/tiobe-index/

应用领域十分广泛。在手机应用软件、Web服务器等等领域,Java可谓是大显身手。像阿里巴巴、淘宝、京东等大型网站,他们大部分功能使用了Java语言开发。大型企业级的应用软件,比如CRM、ERP等业务管理系统也是使用Java开发的。还有比较流行主流的大数据框架Hadoop的也是主要用Java开发的。总之,Java在各个领域都有很深的耕耘。

Java学习比较简单。它是面向对象的编程语言,是在现实物理世界的基础上进行的抽象表达,比较容易理解。Java的编程工具包JDK(Java Development Kit)提供了特别丰富的接口,也就是说,要想完成一个功能,通常不需要关心太多底层实现,你只需要调用这个接口即可。

备注:编程工具包JDK,Java Development Kit,是Java开发时必备的工具,有非常丰富的功能。

  1. 是谁发明了Java

20世纪90年代,硬件领域出现了单片式计算机系统,这种系统有两个优点,一是价格很低,二是提高了消费类电子产品的智能化程度,比如让电视机顶盒、面包烤箱、移动电话等产品更加智能,这使得此类产品在当时受到了广大消费者的喜爱和追捧。1991年,Sun公司为了抢占这片蓝海市场,专门成立了Green项目小组,主要成员有詹姆斯·高斯林、帕特里克、麦克·舍林丹等,他们的任务是发明一种计算机语言,使Sun公司可以在智能化市场可以分一杯羹。

Green项目小组对C++进行了改造,1992年成功开发出一种叫做Oak的面向对象语言。但是,当时大量的硬件生产商对Oak是一无所知的,不敢冒然地让自己的硬件设备使用Oak这个新兴的语言。所以,Oak也就因为缺乏硬件的支持而无法进入市场,从而被搁置了下来。

俗话说:功夫不负有心人。时间走到1995年,互联网的蓬勃发展给了Oak带来了机遇。Sun公司在Oak基础上,首先推出了可随网页在网络上传输的Applet,Applet可以让网页和用户进行交互,并实现图形绘制、字体和颜色控制、动画和声音的插入、人机交互、网络交流等等功能,这样的网页更加丰富多彩,在当时成为主流。从此,Sun公司决定大力发展Oak。但在申请注册商标时,发现Oak已经被人使用了,再想了一系列名字之后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java词语,并将Oak更名为Java。

同年,1995年5月23日,Sun公司在Sun world会议上正式发布Java

  1. Java的版本发展

1996年1月,Sun公司发布了Java的第一个开发工具包JDK 1.0,这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具,开发者可以在JDK的基础上开发自己想要的功能。

Java语言的版本迭代,是以封装成JDK进行整体迭代发布的,JDK包括Java语言本身和已经实现的众多功能接口,这些接口是供开发人员使用的。

随后Java进入快速发展,1997年发布JDK1.1,1998年发布JDK1.2,2000年发布JDK1.3,2002年发布JDK1.4。

2004年,Sun公司对JDK进行了大更新,发布了JDK5,2006年发布了JDK6。

2009年甲骨文公司收购了Sun公司。

2011年发布了JDK7,2014年发布了JDK8。JDK8是目前企业使用最广泛的版本。

而2017年9月的JDK9和2018年3月的JDK10是属于过度性的版本。截止到2021年5月,最新版本是Java16。

Green项目小组成员詹姆斯·高斯林博士(James Gosling)是Java编程语言的共同创始人之一,一般公认他为“Java之父”。

  1. Java的三个版本

Java具有三个版本,分别是Java SE、Java EE、Java ME。

Java SE,Java Platform Standard Edition,标准版,是为开发普通桌面和商务应用程序提供的解决方案版本。Java SE是三个版本中核心的部分,Java EE和Java ME都是从 Java SE的基础上发展而来的。

Java EE,Java Platform Enterprise Edition,企业版,是为开发企业级应用程序提供的解决方案版本,定位在服务器端的应用。主要包括 Servlet、JSP、 JavaBean、JDBC、EJB、Web等技术。

Java ME, Java Platform Micro Edition,微型版,是为开发电子消费产品和嵌入式设备提供的解决方案版本。主要为家用电器增加智能化控制和联网功能,为手机增加新的游戏和通讯录管理功能。此外,JavaME提供了HTTP等高级Internet协议,使移动电话能以Client/Server方式直接访问 Internet的全部信息,提供最高效率的无线交流。

  1. Java的跨平台原理

Java具有跨平台的特性,可以“一次编译,到处运行。”比如,在Windows下编写的程序,无需任何修改就可以在Linux下运行。这里“到处”说的是任意平台,平台是CPU和操作系统的结合体,在平时,大家更偏好于操作系统就是平台。

Java的跨平台是如何实现的呢?

举个生活中的例子,比如“小明”就是编译好的Java项目,世界上的国家就是平台,那么如何做到“到处运行”,也就是说“小明”在任意国家畅通无阻。我们可以给小明配置翻译官,在英语国家给他配一个英语翻译官,在俄语国家给他配一个俄语翻译官。这儿的翻译官在Java中指的是Java虚拟机(Java Virtual Machine,简称 JVM),它是用软件虚构出来的一个计算机,如同上边的两个翻译官,JVM在不同的平台有着不同的版本。

  1. JRE与JDK

JVM、核心类库组成了JRE(Java Runtime Environment,Java运行时环境),也就是说运行一个Java编译好的项目,有JRE就够了。JRE并不是一个开发环境,所以没有包含任何开发工具。

图片来自:https://docs.oracle.com/javase/8/docs/

JRE、Java开发工具、基础类库组成了JDK(Java Development Kit,Java的软件开发工具包),JDK是给开发者使用的,也是我们学习研究Java经常接触的。

  1. 总结

Sun公司于1995年发布了Java编程语言。

JDK8是目前企业使用最广泛的版本。

詹姆斯·高斯林博士被公认为“Java之父”。

Java具有Java SE、Java EE、Java ME三个版本,我们学习以Java EE为主。

JVM机制使得Java可以做到“一次编译,到处运行。”

JRE是Java运行时环境,JDK是面向开发者的Java的软件开发工具包。

  1. 思考与作业

思考一:我们为何学习Java?

思考二:Sun公司为何发明了Java?

思考三:既然最新的JDK版本是16,那为何JDK8在目前企业中使用的最广泛?

思考四:Java是如何做到“一次编译,到处运行”的?

思考五:JRE是什么,JDK是什么,有何区别?

思考六:Java和C++是什么关系?

作业一:常用的开发Java语言的软件平台IDE(集成开发环境)有哪些?

1 认识一下Java相关推荐

  1. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  2. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  3. 在k8s中使用gradle构建java web项目镜像Dockerfile

    在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...

  4. Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常

    kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...

  5. SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos

    SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...

  6. OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3

    OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...

  7. Gradle错误提示:Java home supplied via ‘xxx.xxx.xxx‘ is invalid

    Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid 描述:在使用idea采用gradle进行依赖的管理功能,当想切换 ...

  8. 查看Hotspot源码,查看java各个版本源码的网站,如何查看jdk源码

    java开发必知必会之看源码,而看源码的第一步则是找到源码

  9. java基本类型转换,随记

    java基本类型转换: double double 转 long double random = Math.round(Math.random()*10000); long l = new Doubl ...

  10. 科学处理java.lang.StackOverflowError: null异常

    java.lang.StackOverflowError: null异常处理 在项目运行中出现StackOverflowError 首先要检查在编码中是否有明显的递归编码,比如死循环或者无限循环调用. ...

最新文章

  1. solaris 操作总结
  2. linux ant安装jar,ant打JAR、WAR包
  3. 三分钟破解无线网——无线网络安全攻防
  4. java同时执行同一个方法吗_java 返回结果的同时执行另一个方法
  5. 【BZOJ1485】[HNOI2009]有趣的数列(组合数学)
  6. Spark创建DataFrame的三种方法
  7. Git 分布式版本控制常用命令(1)
  8. 《Oracle大型数据库在AIX UNIX上的实战详解》的集中答疑九 数据库字符集与国家语言...
  9. 请问:如何实现文件日志功能?要求每天换一个文件。文件名以日期区分
  10. java setsolinger_java socket 的参数选项解读(转)
  11. java jni helloword_JNI学习一:编写HelloWorld程序
  12. 单片机8×8点阵显示简单汉字的程序_干货 | 浅析单片机制作贪吃蛇游戏
  13. 5分钟学会Markdown语法,在GitHub上写出漂亮文本,提升别人阅读体验
  14. centos6下安装git
  15. python是干什么用的-python是做什么用的 python有什么用 - 驱动管家
  16. 一个实例明白AutoResetEvent和 ManulResetEvent的用法
  17. Uiautomator入门(初学者用)
  18. php lwm2m,理解COAP/LWM2M/MQTT协议和TCP/UDP协议的关系
  19. 10、(十)外汇交易中专有名词整理
  20. These songs can cheer you up when life gets hard

热门文章

  1. 将一段日语字符输出到文本,乱码……
  2. 豆瓣网为什么会成功的调查分析
  3. C#中RadioButton控件的详细解析
  4. 5G环境下工业互联网向向智能制造过渡
  5. JS下拉框把省份设置进去_怎么设置呼叫转移
  6. 电子基本器件介绍-电阻
  7. JavaWeb-15 文件上传与下载
  8. 第十二周 beta阶段测试报告
  9. Linux读取pdf,pdf转txt
  10. MS Workflow Foundation