文章目录
一、Java发展史及其特点特性
1、Java起源与演变
1.1、起源
20世纪90年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度。
1991年SUN公司成立了一个由詹姆斯·高斯林(James Gosling)领导名为“Green”的项目小组,目的是开发一种能够在各种消费性电子产品上允许的程序框架。
当时他们以较为有优势的C++来编写程序,由于C++过于复杂和庞大,再加上由于消费性电子产品所采用的嵌入式处理芯片的种类繁杂,不利于使一个程序跨不同类型的嵌入式芯片。
为了降低程序设计的复杂和庞大,且可支持跨平台。于是乎他们对C++进行了改造:去除了C++复杂的指针和内存管理,并结合嵌入式系统的实时性要求,最终在1992年,他们开发一种名为“Oak”的面向对象语言。
可当他们向硬件厂商进行演示时,硬件厂商对此并不感冒,因此Oak语言因缺乏硬件的支持二无法进入市场,从而被搁置一旁。
1994年,项目小组看到了浏览器在未来的发展前景,于是决定将Oak应用于万维网。
1995年,他们用Oak语言研发了一种能将小程序嵌入到网页中执行的技术——Applet。当时的Applet不仅嵌入网页,还可以同网页在网络上进行传输,这让无数的程序员看到了Oak这门语言。正当他们想要注册这门语言为“Oak”时,由于已被其他公司注册,而后将“Oak”正式更名为Java。从此,Java在互联网的推动下火了。
1.2、演变
时间 | 版本 | 特点 |
---|---|---|
1996年1月 | JDK1.0 | Java成为独立的开发工具 |
1997年2月 | JDK1.1 | |
1998年12月8日 | JDK1.2 | 第二代Java平台企业版J2EE发布 |
1999年6月 | - | 将Java体系分为三个方向:微型版J2ME、标准版J2SE、企业版J2EE |
2000年5月 | JDK1.3、JDK1.4、J2SE1.3 | |
2002年2月26日 | J2SE1.4 | |
2004年9月30日 | J2SE1.5 | 里程碑式发展,直接更名为Java SE 5.0 |
2005年6月 | Java SE 6 | J2ME更名为JavaME、J2SE更名为JavaSE、J2EE更名为JavaEE |
2011年7月28日 | Java SE 7 | 引入了二进制、支持字符串switch语句、棱形语法、多异常捕捉、自动关闭资源的try语言等新特性。 |
2014年3月18日 | Java SE 8 | 全新lambda表达式、流式编程等大量新特性。 |
2017年9月22日 | Java SE 9 | |
2018年3月21日 | Java SE 10 | |
2018年9月26日 | Java SE 11 | Java大版本周期变化后的第一个长期支持版本(LTS版本持续支持到2026年9月) |
2019年3月20日 | Java SE 12 | |
2019年9月23日 | Java SE 13 |
2、Java体系与特点
2.1、体系
Java SE:Java Platform,Standard Edition
标准版:各应用平台的基础,桌面开发和低端商务应用的解决方案。
Java EE:Java Platform,Enterprise Edition
企业版:以企业为环境而开发应用程序的解决方案。
Java ME:Java Platform,Micro Edition
微型版:致力于消费产品 和 嵌入式设备的最佳解决方案。
Java可以做什么?
开发桌面应用程序:银行软件、市场结算软件。。。
开发面向Internet的web应用程序:门户网站(工商银行)、网上商城、阿里巴巴、电子商务系统。。。( ※ )
提供各行业的解决方案:金融、电信、电力。。。
嵌入式开发:移动电话、可视电话、数字机顶盒和汽车导航系统。。。
2.2、特点
- 面向对象
- Java是一种纯面向对象的编程语言。
- 简洁性
- 与C++很接近
- 省略了C++中很难理解的如操作符重载、多继承、自动的强制类型转换等特性
- 丢弃了C++中的指针,从而彻底消除了安全隐患
- 提供了自动垃圾收集功能使得程序员不必为内存管理而担忧
- 可移植性(平台无关性)
- 它提供了在不同平台下运行的解释环境(实现跨平台)
- 解释性
- Java解释器对字节码进行解释执行
- 适合分布式计算
- 支持Internet应用开发,它的网络应用编程接口(Java.net)提供了丰富的类库来支持TCP和UDP编程
- 具有较好的性能
- 与JavaScript、VBScript、Perl、Python、Ruby、MATLAB等解释型语言相比,Java是高性能的
- 健壮性
- 采用强类型机制、异常处理、垃圾自动收集、丢弃指针和安全检查机制等措施来保障Java程序的健壮性
- 较高的安全性。(自动回收垃圾,强制类型检查,取消指针)
- 多线程处理能力
- 动态语言
- 中性体系结构
3、Java跨平台原理
Java源代码经编译–>生成字节码文件.class(可被Java虚拟机所运行)–>Java虚拟机执行字节码文件.class,由于Java向不同平台提供了不同的Java虚拟机,从而实现了一次编译处处执行的能力。
3.1、Java技术的两种核心机制
Java虚拟机(Java Virtual Machine):JVM
垃圾回收器(Garbage Collection):GC
3.2、Java虚拟机(JVM)
-
JVM可以理解成一个可运行Java字节码的虚拟计算机系统
- 它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。
- 对于不同的运行平台,有不同的JVM。
-
JVM屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。
3.3、垃圾回收器
- Java提供了自动回收垃圾的垃圾回收器(GC)。
- Java语言消除了程序员回收无用内存空间的责任。
- JVM提供了一种系统线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可以被释放的存储空间。
- 垃圾回收器在Java程序运行过程中自动启用,程序员无法精确控制和干扰。
3.4、Java SE的组成概念图
3.5、JDK
-
JDK(Java Develop Kits):Java开发工具集
-
JRE(Java Runtime Environment):Java运行时环境
Java API(应用程序编程接口)
-
Java编译器(javac.exe)、Java运行时解释器(java.exe)、Java文档化工具(javadoc.exe)及其它工具及资源。
-
-
JRE的三项主要功能:
- 加载代码:由类加载器(class loader)完成;
- 校验代码:由字节码校验器(byte code verifier)完成;
- 执行代码:由运行时解释器(runtime interpreter)完成。
4、什么是程序
定义:为进行某项活动或过程所规定的途径。
计算机中的程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。
Java程序的类型:
- 命令行程序
- GUI程序
- Applet程序
- J2EE web 应用程序
5、Java程序开发的三个步骤
6、语法
注释:Java程序有三种注释方式。
- 单行注释:// —
- 多行注释:/* — */
- 文档注释:/** — */
二、JDK11下载与安装
1、JDK概述
JDK全称Java Development Toolkit,是Java语言开发工具包。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一堆Java工具(javac/java/jdb等)和Java基础的类库(及Java API 包括rt.jar)。
2、JDK11下载
第一步:
访问网址:https://www.oracle.com
第二步:
注册,并登录。
第三步:
跳转到官网下载页面。
第四步:
选择需要下载的版本下载即可。
3、JDK11 安装(win10)
第一步:双击JDK11安装包。
第二步:看图安装软件(记住安装在那个文件夹中,文件夹地址后续有用)
第三步:配置环境变量(win10)
第一种方案:看图配置环境变量:
第二种方案:更合理的配置环境变量方式(推荐)
-
JAVA_HOME:将JDK完整安装路径配置到JAVA_HOME当中。
-
这种方式更加灵活,避免不必要的事故发生(在切换不同的JDK版本时可能会不经意之间改掉了Path中的其他环境变量),通过这种方式只需修改JAVA_HOME,而不用修改Path。
-
直接引用JAVA_HOME/bin即可实现环境变量的配置
三、eclipse下载与安装及使用
1、简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。它是一个框架和一组服务,用于通过插件组件构建的开发环境。Eclipse还附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
2、eclipse的下载(win10)
第一步:
访问网址:https://www.eclipse.org,找到Download并点击。
第二步:
在新的页面中,点击Download Packages。
第三部:
根据操作系统和版本进行选择,再下载。
3、eclipse的安装
第一步:解压缩
eclipse是一款绿色软件,下载完毕后直接解压缩后即可使用。
第二步:运行
双击解压后文件夹中的 eclipse.exe。
4、eclipse的使用(创建Java工程)
操作如下图所示:
第一步:
第二步:
第三步:
第四步:
第五步:
第六步:
第七步:
最终结果~:
四、代码语句分类
1、结构定义语句:对代码结构的划分。
2、功能执行语句:结尾必须以英文分号结束。