一、Java语言的发展:
JDK 1.0(1996)
JDK 1.1(1997)
J2SE 1.2(1998)
J2SE 1.3(2000)
J2SE 1.4 (2002)
J2SE 5.0 (2004)
Java SE 6 (2006) ————2009年sun公司被Oracle公司收购
Java SE 7 (2011)
Java SE 8 (2014)
Java SE 9 (2017)
Java SE 10 (2018)
二、Java语言版本:
1、JDK(oracle) VS OpenJDK
2009年sun公司被Oracle公司收购之前,将JDK源代码开源,形成了OpenJDK。但是,sun公司在开源时,有一小部分(非核心功能)因为产权原因,无法完全开源,就被其他具有相同功能的代码开源。
OpenJDK中只包含JDK中最核心的,还有其他一些第三方实现的功能、插件。OpenJDK被称为极简版的JDK。
关于OpenJdk和Jdk它的源代码是有关系的:包含在OpenJdk源代码中的绝大部分代码和oralce Jdk 一模一样
jdk就可以理解为openJdk的一个分支:不仅大家的代码是相同的,而且,oracle Jdk还会和OpenJdk保持同步
同时,一旦oracle jdk一旦发现open Jdk中的一些bug,oracle在修复之后,把这些修复bug的代码
IBM,Google,FaceBook RedHat都从OpenJdk中,拿到源代码,然后,经过修改,增加 形成自己的JDK版本。阿里巴巴 DragonWell
2、 我们这4个月课程中,都是JDK8,原因如下:
(1)、直到今天,国内绝大部分公司,所使用的JDK版本仍然是JDK8
(2)、商业公司——求稳(原因)
LTS(长期支持维护版本)——维护周期长,至少3年稳定
短期支持维护版本——维护周期短,半年左右,不稳定
(3)、从JDK9开始,每半年发布一次,在这些迭代版本中,长期支持版本如下:
JDK8——>JDK11(2018年发布)—— >JDK17
三、JAVA语言平台版本
Java分三个版本:JavaSE(标准版)、JavaEE(企业版)、JavaME(微型版)
其中SE就是大家学的Java基础,EE是公司最常用的用于网站开发(PC端),ME用于移动端开发,现在熟悉的安卓系统就是用JAVAME开发的。
Java既可以被编译,也可以被解释。通过编译器,可以把Java程序翻译成一种中间代码-称为字节码-可以被Java解释器解释的独立于平台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性
或者用一种更总结性的话术来表达就是:java跨平台就是能在不同的环境(主要是操作系统)上运行java程序!
这也是Java为什么这么火,为什么这么多年依然屹立不倒且久盛而不衰的原因。一个无视于平台,跨平台的语言,必然有长久的生命力。而作为程序员来说,职业发展的长远规划,选择Java远比选择其他无法实现跨平台的语言,更有长远价值!
总结为三点:
JavaSE是做电脑上运行的软件。
JavaEE是用来做网站的-(我们常见的JSP技术)
JavaME是做手机软件的。
四、Java语言的特点
高级语言计算机本身是不认识的,计算机只认识机器语言(二进制 0 1)
一定有一个工具,帮助我们将我们的程序,转化为计算机可以识别的对应到机器指令级别的二进制序列
1、 编译型语言:用这种语言写出的代码,首先通过编译器的编译,全部转化成目标代码(二进制可执行文件 .exe),
然后依次在操作系统中执行
2、 解释型语言:转化一句,执行一句
java语言是解释型:.java源代码(编译)——>.class——>
3、特点:
跨平台——一次编译,多次运行
面向对象——解释型
健壮——异常机制
动态——动态加载
分布式——高效
多线程 结构中立(字节码)
开源——OpenJDK
4、Java语言的跨平台性
(1)、通过Java语言编写的应用程序在不同的系统平台上都可以运行
(2)、实现原理:Java程序是在Java虚拟机上运行的,而非在操作系统上运行