目录
六、Java applet 与 Internet
1. 简介
用户从Internet下载Java字节码,并在自己的机器上运行。
如今,要在浏览器中使用applet,这不仅需要一定的水平,而且要付出很大的努力。
2. ChatGPT
Java Applet是Java技术中的一个概念,它允许在Web浏览器中嵌入Java小程序。
Java Applet可以通过Internet下载并在用户的浏览器中执行。
下面是Java Applet与Internet的一些相关内容:
a. 跨平台性
Java Applet的一个重要优势是其跨平台性。
由于Java代码在执行时由Java虚拟机(JVM)解释和执行,因此可以在各种操作系统和平台上运行,例如
Windows、Mac和Linux。
这使得开发者可以编写一次代码,并在各种平台上提供一致的用户体验。
b. 动态加载
Java Applet通过Internet下载到用户的浏览器中。
这意味着可以通过URL在Web页面上引用Applet,并将其作为Web页面的一部分进行加载和执行。
这种动态加载的特性使得在用户访问Web页面时能够即时获取和更新Applet程序。
c. 安全性
Java Applet在执行过程中受到一定的安全限制。由于Applet在受限制的沙箱环境中运行,它无法执行一些危险操
作,例如访问本地文件系统或执行系统级任务。这种安全机制有助于保护用户的计算机免受恶意代码的攻击。
d. 网络通信
Java Applet可以与远程服务器进行网络通信。它可以通过HTTP协议与服务器交换数据,例如从服务器加载图
像、接收服务器端推送的信息或与远程API进行交互。这使得Applet能够提供与服务器端交互的动态功能。
e. 用户界面
Java Applet可以在浏览器中创建交互式用户界面(UI)。它可以使用Java提供的Swing或AWT等图形库来设计和
构建各种UI元素,例如按钮、文本框、下拉列表等。这使得开发者能够在Web页面上创建富交互性的应用程序。
然而,随着时间的推移,由于Web技术的发展和安全性方面的考虑,Java Applet的使用逐渐减少。
现在,主要的Web浏览器对Java Applet的支持有所限制。
相反,Web开发者更倾向于使用其他技术,如JavaScript和HTML5来实现丰富的Web应用程序。
七、Java语言发展史
任何一门语言的诞生都有其诞生的意义。 Java 也不例外。
任何一个语言在一开始的时候都是不完美的, 并且相对来说功能和开发语言的需求就简单很多,也就是功能相对
单一,都是在一点一点完善发展起来的, 跟上时代了就继续盛行, 哪些迭代没有跟上的就也被淘汰了。
1991 年
Java 的历史要追溯到 1991 年, 由 Sun 公司带领的开发小组, 想设计一种小型的计算机语言,主
要用于有线电视转换盒这类的消费设备。 由于这类设备的处理能力和内存都非常有限,所以语言
就必须设计的非常小且能够生紧凑的代码。
另外,由于不同的厂商会选择不同的 CPU, 因此很重要的一点就是这种语言不应该与任何特定的体
系结构绑定。
这个项目被命名为 “Green”。
Sun 公司的人都有 Unix 的应用背景, 所以开发的语言用了 C++ 为基础。
并把这种语言称为 “Oak”, 后来, Sun 公司的人后来发现, Oak 是一种已经有的计算机语言的名
字, 于是,将其改名为 “Java”。
1992 年
1992 年, Green 项目发了第一个产品,这个产品可以提供非常智能的远程控制,遗憾的是, Sun 公司对这个产
品并不感兴趣。
1993 年
1993 年,Green 项目(新名字 “First Person 公司”)在一这一整年以及 1994 年上半年, 一直苦
苦寻求买家购买他们的技术。
然后一个也没有找到, 然后在 1994 年,Frist Person 公司解散了。
而且在这一年,1994年4月20日,一条64K的国际专线从中科院计算机网络中心(NCFC工程)通
过美国Sprint公司连入Internet,实现了中国与Internet的全功能连接。从此中国被国际上正式承认
为第77个真正拥有全功能Internet的国家。
当这些在 Sun 公司发生的时候, Internet 的万维网也在日渐发展壮大, 当时的万维网关键是把浏
览器超文本页面转换到屏幕上。
在 1994 年大多数都在使用 Mosaic, 这是 1993 年出自伊利诺伊大学超级计算中心的一个非商业化
的 Web 浏览器。
在1994 年中期,Java 语言的开发者意识到, 要是能够建立一个相当酷的浏览器, 在客户/服务器
主流框架中,浏览器恰好需要我们完成一些工作: 体系结构中立、实时、可靠、安全。这些问题
在工作站环境中并不太重要。
所以决定开发浏览器。
1995 年
实际的浏览器是由 Patrick Naughton 和 Jonathan Payne 开发的,并演变为 HotJava 浏路器.
HotJava 浏览器采用Java 编写,为了炫耀Java 语言的超强能力。这个浏览器可以在网页中执行内
嵌的 Java 代码。 也就是 JavaApplet。这一 “技术证明” 在 1995 年 5 月 23 日的SunWorld'95 大会
上展示,同时引发了人们对他的追逐,一直延续延续到现在。诞生几个月后, 就超过了 10 万人下
载 Java 语言。
1996 年
1996 年初, Sun 发布了第一个 Java 1.0 版本。 但是这个版本 Java 1.0 并不能用来进行真正的应
用开发。虽然后来 Java 1.1 弥补了其中很多的不足和明显的缺陷。大大改进了反射能力, 并未
GUI 编程增加了新的事件处理模型,单是它仍然有很大的局限性, 并没有为 Java的黄金时期到来
做好准备。
JDK 1.0 开发代号为 Oak ( 橡树 )。
1997 年
1997 年 2 月, 发布了 Java 1.1。 JavaOne 会议召开, 参与者逾一万人, 创下了当时全球同类会
员规模记录。
JDK 1.1 引入的新特性包括:
- 引入JDBC(Java Database Connectivity);
- 支持内部类;
- 引入Java Bean;
- 引入RMI(Remote Method Invocation);
- 引入反射(仅用于内省)。
1998 年
1998 年 JavaOne 会议的头号新闻就是发布 Java 1.2 版本, 将这个早期玩具式的 GUI 和图形工具
包括一些工具包。
在这个版本发布的 3 天后, Sun 公司的市场部将它改名为更加吸引人的 “Java 2 标准版软件开发
1.2 版”。也就在这个时候, 除了标准版(Standard Edition)J2SE 之外, Sun 公司还推出了另外
两个版本:
一是, 手机嵌入式设备“微型版”(Micro Edition)J2ME。
另一个是用于服务器端的处理“企业版”(Enterprise Edition)J2EE。
JDK 1.2 开发代号为Playground(操场)
- 引入的新特性包括:
- 引入集合(Collection)框架;
- 对字符串常量做内存映射;
- 引入JIT(Just In Time)编译器;
- 引入对打包的Java文件进行数字签名;
- 引入控制授权访问系统资源的策略工具;
- 引入JFC(Java Foundation Classes),包括Swing 1.0、拖放和Java 2D类库;
- 引入Java 插件;
- 在JDBC中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型;
- 在Applet中添加声音支持。
1999 年
1999 年 4 月 27 日, HotSpot 虚拟机发布。
2000 年
2000 年 5 月 8 日, J2SE 1.3 发布。
JDK 1.3 开发代号为Kestrel(红隼)
- 引入的新特性包括:
- 引入Java Sound API;
- jar文件索引;
- 对Java的各个方面都做了大量优化和增强。
2001 年
2001 年 9 月 24 日, J2EE 1.3 发布。
2002 年
2002 年 2 月 26 日, J2SE 1.4 发布, 标准版 1.3 和 1.4 版本对最初的 Java 2 版本做出了增量式
的改进,提供了不断扩展的标准类库。
提高了性能, 并且还修复一些 bug。在这个期间, 原先对 Java Applet 和客户端应用的炒作逐渐
消退, 但是Java 则成为服务器应用端的首选平台。
并且在这个版本上出现了大量的开源框架。
JDK 1.4 开发代号为Merlin(隼)
- 引入的新特性包括:
- XML处理;
- Java打印服务;
- 引入Logging API;
- 引入Java Web Start;
- 引入JDBC 3.0 API;
- 引入断言;
- 引入Preferences API;
- 引入链式异常处理;
- 支持IPv6;
- 支持正则表达式;
- 引入Image I/O slot machine API。
2004 年
2004 年 9 月 30 日, 下午 18:00, J2SE 1.5 发布。 这成为了 Java 语言的里程碑,这个版本对
Java 语言做出了重大的改进,为了表示该版本的重要性, 这个版本原来定位 1.5 版, 在 2004 年
的 JavaOne 大会之后, 版本直接升为 5.0,对外宣布 Java SE 5.0。
内部还是使用 Java 1.5。
这个版本加入了泛型的支持,另外受到了 C# 的启发, 还增加了几个很有用的语言特性:
for each 循环、自动装箱、注解、枚举、可变长参数等。
JDK 1.5 开发代号为Tiger(老虎)
- 引入的新特性包括:
- 引入泛型;
- 增强循环,可以使用迭代方式;
- 自动装箱与自动拆箱;
- 类型安全的枚举;
- 可变参数;
- 静态引入;
- 元数据(注解);
- 引入Instrumentation。
2005 年
2005 年 6 月,JavaOne 大会召开,Sun 公司公开 Java SE 6。并且,对 Java 的各种版本进行更
名,取消其中的数字“2”:
J2EE 改名为 Java EE,J2SE 改名为 Java SE,J2ME 改名为Java ME。单内部版本不变化还沿用
之前的写法。一直延续至今。
这个版本没有对语言方面进行修改, 而是做了其他性能改进, 并增强了类库。
2006 年
2006 年 12 月, Sun 公司发布了 Java EE 6, 并且宣布, 将 Java 语言作为免费软件对外发布。
使用 GPL v2 (GNU General Public License v2) 协议下公开了源码。并且建立了 OpenJDK 组织对
这些源码进行独立管理。
除了极少量的产权代码外(Encumbered Code,这部分代码大多是 Sun 公司本身也无权限进行开
源处理的),OpenJDK 几乎包括了Sun JDK 的全部代码外,OpenJDK 的质量主管曾经表示,在
JDK 1.7 中,Sun JDK 和OpenJDK 除了代码文件头的版权注释之外,代码基本上完全一样,所以
OpenJDK7 与 Sun JDK 1.7 本质上就是同套代码库开发的产品。
JDK 1.6 开发代号为Mustang(野马)
- 引入的新特性包括:
- 支持脚本语言;
- 引入JDBC 4.0 API;
- 引入Java Compiler API;
- 可插拔注解;
- 增加对Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos和LDAP(Lightweight Directory Access Protocol)的支持;
- 继承Web Services;
- 做了很多优化。
2009 年
JDK 1.6发布以后,由于代码复杂性的增加、JDK开源、开发 JavaFX、经济危机及Sun 公司收购
案等原因,SUN公司在JDK发展以外的事情上耗费了很多资源,JDK的更新没有再维持两年发布一
个主版本的发展速度。并且在2009 年 4 月 20 日,被 Oracle 以 74 亿美元收购Sun 公司,取得了
Java 的商标版权(Java语言本身并不属于哪个公司所有,它由JCP组织进行管理,尽管JCP主要
是由Sun 公司或者说Oracle 公司所领导的)。也就在这两年Java 的开发停滞了一段时间。一直到
了 2011 年。
JDK 1.7 开发代号是Dolphin(海豚)
- 引入的新特性包括:
- switch语句块中允许以字符串作为分支条件;
- 在创建泛型对象时应用类型推断;
- 在一个语句块中捕获多种异常;
- 支持动态语言;
- 支持try-with-resources;
- 引入Java NIO.2开发包;
- 数值类型可以用2进制字符串表示,并且可以在字符串表示中添加下划线;
- 钻石型语法;
- null值的自动处理。
2011 年
2011 年 7 月,JavaSE 7 发布。但是很多规划在这个版本的特性,其中 Lambda 项目 ( Lambda
表达式、函数式编程)、Jigsaw 项目(虚拟机模块化支持)、动态语言支持、GarbageFirst 收集器和
Coin 项目(语言细节进化)等子项目都没有实现在这个版本中, 而是用了 Oracle公司实行的 “B计
划”。
2014 年
2014 年 3 月,JavaSE 8 发布。 这个版本, 在近 20 年中这个版本变更最大, Java SE 8 包含了
“函数式” 编程方式,可以很容易的表述并发执行的计算。 这个版本也是现在企业中使用范围最广
的一个版本。 就想一开始说的那样, 能跟上时代的进步, 就不会被淘汰。
JDK 1.8 开发代号是Spider(蜘蛛)
- 支持 lambda支持;
- 增强日期与时间API的功能;
- 对垃圾回收的性能也进行了改进;
- 并且移除了permgen区。
- Lambdas表达式与Functional接口
- 接口的默认与静态方法
- 方法引用
- 重复注解
- 更好的类型推测机制
- 扩展注解的支持
2017 年
2017 年 7 月,Oracle 公司将发布 JDK 9。这个版本算是比较大的调整,加入了很早之前就规划的
模块化功能。
并且对整个 JDK 基于模块进行了重新编写。
Java 9 提供了轻量级 JSON API; 使用 G1 作为默认的垃圾收集器,替代了之前默认使用的 Paralel
GC; 引入了jShell 这个交互性工具。
并且全面支持 HTTP 2.0。
也就是在这一年,2017 年 8 月,Oracle 决定将 Java EE 移交给开源组织,最后 Eclipse 基金会接
手。
由于甲骨文不允许开源组织用 Java 的名号,于是 Eclipse 选出了 "Jakarta EE" 和 "Enterprise
Profile" 两个后续名字,最终前者以 64.4% 的票数获胜。也就是说,Java EE 已经正式更名为
Jakarta EE(雅加达)。
2018 年
从 2018 年开始, 每6个月就会发布一个 Java 版本, 以更快地引入新特性。这里又分为 LTS 版和
最新版。
生产环境中最好只使用 LTS 版本, 因为这个版本更加稳定, 维护周期更长。
2018 年 3 月 21 日, Java 10 发布。
2018 年 9 月 25 日, Java 11 LTS 发布。
2019 年
2019 年 2 月 Java 12 发布
2019 年 9 月 Java 13 发布
2020 年
2020 年 3 月 17 日,Java 14 发布。
2020 年 9 月 15 日,Java 15 发布。
2021 年
2021 年 3 月 16 日,Java SE 16 发布。
2021 年 9 月 14 日,Java SE 17 LTS 发布。
这个是继 Java 11 之后的有一个长期支持版本, 并且直接支持到了 2029 年 9 月。这可能是下一
个 Java 8。
所以学习的话, 可以直接学习这个版本。当然也可以直接学习 Java 17 这样的话, 对于工作来说
3 年之内不会有大的变化。
八、关于Java语言的常见误解
java作为当下的一门热门编程语言,在很多领域发挥着举足轻重的作用,
可是很多初学者或者非科班出身的小伙伴总是对于java有着一些这样或者那样的误解,
下面将列举出一些常见的误解,并给出相应的解释。
误解一:JavaScript是Java的简易版
JavaScript是一种可以在网页中使用的脚本语言,它由Netscape发明,最初的名字是LiveScript。
JavaScript的语法让人想到Java,另外名字也有些相像,但除此之外,两者并无任何关系。
尤其是,Java是强类型的,编译器能够捕获滥用导致的很多错误。
而在JavaScript中,只用当程序运行时才能发现这些错误,所以消除错误会更费劲。
误解二:java是解释性的,因此对于关键的应用程序速度太慢
早期的java是解释型的。
现在Java虚拟机使用了即时编译器,因此采用Java编写的“热点”代码运行速度与C++相差无几,有
些情况下甚至更快。
误解三:所有的Java程序都是在网页中运行的
所有的Java applet都在Web浏览器中运行。这也恰恰是applet的定义,即一种在浏览器中运行的Java程序。
然而,大多数Java程序是运行在Web浏览器之外的独立应用程序。
实际上,很多java程序都在Web服务器上运行并生成用于网页的代码。
误解四:Java将成为适用于所有平台的通用性编程语言
从理论上讲,这是完全有可能的。但在实际中,某些领域其他语言有更出色的表现,比如,
Objective C和后来的Swift在IOS设备上就有着无可取代的地位。浏览器中的处理几乎完全由
JavaScript掌握。Windows程序通常都用C++或C#编写。Java在服务器端编程和跨平台客户端应用
领域则很有优势。
误解五:Java是HTML的扩展
Java是一种程序设计语言;HTML是一种描述网页结构的方式。
除了用于在网页上放置Java applet的HTML扩展之外,两者之间没有任何共同之处。
误解六:Java是一种非常容易学习的程序设计语言
像Java这种功能强大的语言大都不太容易学习。
首先,必须将编写玩具式程序的轻松与开发实际项目的艰难区分开来。
其次的话,Java类库包含数千个类和接口以及数万个函数。
虽然我们并不需要知道它们中的每一个,然而,要想利用Java解决实际问题,还是需要了解不少内
容的。
误解七:Java只不过是另外一种程序设计语言
Java是一种很好的程序设计语言,很多程序设计人员喜欢Java胜过C、C++和C#。
有几百种好的程序设计语言没有广泛流行,而带有明显缺陷的语言(如C++和Visual Basic)却大
行其道。
这是为什么?程序设计语言的成功更多地取决于其支撑系统的能力,而不是语法的精巧性。
人们主要关注的是:是否提供了有用、便捷和标准的库能实现你需要的功能?
是否有工具开发商能建立强大的编程和调试环境?
语言和工具集是否与计算机基础架构的其他部分整合在一起?
Java的成功缘于其类库能够让人们轻松完成原本有一定难度的事情,例如网络连接、Web应用和
开并发。
Java减少了指针错误,这是一个额外的好处,因此使用Java编程的效率更高。但这些并不是Java
成功的全部原因。
九、Java语言程序设计环境
1. 计算机语言发展史
a. 机器语言
机器语言是使用二进制代码表示指令的语言,它是计算机硬件系统可以直接识别,并能真正理解和
执行的唯一语言。
b. 汇编语言
汇编语言是一种面向微处理器、微控制器等编辑器件的计算机语言。机器不同,汇编语言指令对应
的机器语言指令集也不相同。
c. 高级语言
高级语言接近人类自然语言,与机器情况无关,拥有自身特定的符号和语法规范。
2. Java语言发展史
Java语言是由Sun公司推出的一种面向对象的程序设计语言。
- 1995年5月23日,Java语言诞生
- 1996年1月,第一个JDK-JDK1.0诞生
- 1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术
- 1996年9月,约8.3万个网页应用了JAVA技术来制作
- 1997年2月18日,JDK1.1发布
- 1998年12月8日,JAVA2企业平台J2EE发布
- 2009年04月20日,甲骨文74亿美元收购Sun。取得java的版权。
- 2019年3月20日,Java SE 12 发布
目前,Java分为三个体系:
- JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
- JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
- JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)
3. Java语言主要特性
a. Java语言是简单的
Java语言的语法与C语言和C语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java
丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制
类型转换。特别地,Java语言不使
用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
b. Java语言是面向对象的:
Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持
接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支
持动态绑定,而C++语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言。
c. Java语言是分布式的
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java
net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket
等。
Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
d. Java语言是健壮的
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
e. Java语言是安全的
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。
除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类
ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理
机制(类SecurityManager)让Java应用设置安全哨兵。
f. Java语言是体系结构中立的
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class
的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软
件的分发。
g. Java语言是可移植的
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C
实现的。
h. java语言是解释型的
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系
统中运行。
在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶
段被载入到运行环境中。
i. Java语言是多线程的
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:
其一,使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线
程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run
方法中包含了线程所要运行的代码。
线程的活动由一组方法来控制。
Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
j. Java语言是动态的
Java语言的设计目标之一是适应于动态变化的环境。
Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。
这也有利于软件的升级。
另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
k. Java语言是高性能的
与那些解释型的高级脚本语言相比,Java的确是高性能的。
事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
4. Java开发工具
Java语言应尽量保证系统内存在1G以上,其它工具如下:
- Linux 系统、Mac OS 系统、Windows 95/98/2000/XP,WIN 7/8系统。
- Java JDK 7、8……
- Notepad 编辑器或者其他文本编辑器。
- IDE(Integrated Development Environment,集成开发环境):是含代码编辑器、关键词高亮、智能感应、智能纠错、格式 美化、
版本管理等功能于一身的“高级代码编辑器”。(每个IT工程师都要有自己顺手的IDE,它是我们的武器,但是要理解无论是使用什么
IDE编写出来的代码,本质上都是“白底黑字”的“纯文字”)
5. 开发环境配置(Windows系统)
a. 名词概念
ⅰ. JVM
Java虚拟机,是可运行Java字节码文件的“虚拟计算机”,它相当于给各种实际运行平台包装上Java
虚拟操作系统,Java字节码文件便可直接运行在此虚拟平台上。
ⅱ. JRE
Java运行环境,是执行Java程序必备的各种要素的集合。
ⅲ. JDK
Java开发工具。除了运行Java程序,还需要编写和测试Java程序,这就需要JDK的支持,JDK除了
包括JRE,还包括许多开发和测试Java程序的实用工具。
ⅳ. class
Java是一种纯面向对象的编程语言,类就构成了Java程序设计的基本单位。一个Java程序可由一
个或几个类组成。
ⅴ. path环境变量
path环境变量是系统环境变量的一种,它用于保存一系列的路径,每个路径之间以逗号分隔。
ⅵ. classpath环境变量
classpath环境变量也用于保存一系列路径。当Java虚拟机需要运行一个类时,会在classpath环境
变量中所定义的路径下寻找所需的class文件和类包。
ⅶ. class文件
字节码文件,又称为类文件。它是一种独立于具体平台的、特殊的二进制文件。对于同一个字节码
文件,可实现在不同的平台上运行。
b. 下载JDK
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
msi文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装
情形下安装(和卸载)程序所需的指令和数据。MSI文件将程序的组成文件与功能关联起来。
exe是一个安装引导程序。msi需要Microsoft的一个服务支持(大概叫做Microsoft Installer,目前版本2.00),
基本上只用于安装软件。
- .exe是可执行文件,不一定是安装程序。
- .msi是微软的新安装文件格式,它不是执行文件。
- zip为嵌入版,新手建议使用前面两种方式。
c. 环境变量配置
1. 安装完成后,右击“我的电脑”,点击“属性”,选择“高级系统设置”
2. 选择“高级”选项卡,点击“环境变量”
3. 在“系统变量”中设置3项属性,JAVA_HOME、PATH、CLASSPATH(不区分大小写),若已存在点击“编
辑”,不存在则单击“新建”
注意:若使用1.5以上版本的JDK不用设置CLASSPATH变量,也可以征程编译和运行Java程序
4. 检查是否安装成功
- "开始"->"运行"(win+R),键入"cmd"
- 键入命令: java -version、java、javac 几个命令,出现以下信息,说明环境变量配置成功
6. 记事本编写代码常见问题
新手小白用记事本编写 Java 入门程序需要注意的常见问题
- 扩展名被隐藏
- 文件名和类名不一致
- 大小写错误,单词拼写错误,存在中文符号,找不到main方法
- 括号不配对
- 编译或者执行命令使用不当
7. cmd 相关命令
新手小白入门需掌握的 cmd 相关命令
- 盘符切换:D
- 查看当前路径下的内容:dir
- 进入单级目录:cd 目录
- 回退到上一级目录:cd ..
- 进入多级目录:cd 目录1\目录2...
- 回退到盘符目录:cd \
- 清屏:cls
- 退出命令提示符窗口:exit
十、JDK & JRE & JVM之间的关系
1. JVM
Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟
机,因此Java语言可以实现跨平台。
2. JRE
Java Runtime Environment包括Java虚拟机和Java程序所需的核心类库等。
核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串
处理、线程、异常处理类等,系统缺省加载这个包。
如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
3. JDK
Java Development Kit是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了
JRE。
所以安装了JDK,就无需再单独安装JRE了。
其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等
JVM&JRE&JDK关系图