编辑:[db:作者] 时间:2024-08-25 05:05:10
------------------------------前戏已做完,精彩即开始----------------------------
既然各位小伙伴现在已经决定要学习Java了,那首先得对Java有基本的理解吧,以是接下来壹哥先用一篇文章,来给大家先容一下Java到底是个啥。
交情提示:
大家要记住,无论我们学习任何技能,都要知道这个技能是什么、干嘛的、怎么用、为什么这么用,以及利用时涌现了问题该怎么办理!
一. Java简介
1. 起源
既然各位打算往后要靠Java来养家糊口了,那对Java的理解是不是该当更多一些呢?比如Java这项技能是怎么产生的?接下来壹哥给大家讲个小故事,让咱们一起来看看Java的起源吧。
20世纪90年代,经济高速发展,大家有钱了就想追求更高的生活品质。当时发明了很多稀奇古怪的电子产品,比如有钱人必备的“大哥大”、BB机、电视机顶盒、烤箱等。我们知道,硬件产品必须要有软件系统进行支撑才能运行,就好比人必须有灵魂才能称之为人。以是当时为了合营硬件的发展,研发出了著名的单片机系统,这就大幅提升了电子产品的智能化程度。
当时有一个叫做“Sun”(不是Son哦)的公司,眼力很敏锐。为了抢占广大的消费电子产品市场,在1991年景立了一个名为“Green”的项目组,由詹姆斯高斯林(高司令)、帕特里克等几个工程师一起卖力研发新技能,专攻家电产品里的嵌入式运用开拓。一开始Green项目组打算用C++进行嵌入式开拓,但由于C++写出来的程序特殊繁芜和弘大,不适宜在嵌入式的环境中运行。而且不同厂家生产的电子产品,其底层所利用的硬件系统也各有不同,C++写出来的东西无法实现“一次编码,处处运行”的跨平台需求。
所以为理解决以上这些问题,Green项目组根据嵌入式的特点,对C++进行了改造,去除了C++中不太实用及影响安全的部分,并针对实时性哀求,开拓出一种称为Oak(橡树)的面向工具措辞。但此时Oak除了比C++更大略之外,实在也没有太大的差异,以是当时的硬件厂商对Oak没有太大的激情亲切。而Oak也就由于缺少硬件的支持无法进入市场,从而被搁置了下来。
到了1994年6、7月间,Green团队决定改变接下来的发展目标。由于Oak本身是一种精简的措辞,程序非常小,很适宜在网络上传输,以是他们决定把Oak用在万维网上。到了1995年,Sun公司正式决定启用Oak,并推出了可以随同网页在网络上传输的Applet技能。
结果就在此时,Sun公司创造Oak这个牌号被别的公司给提前抢注了。以是没办法,只能将Oak重新改名!
大家都知道,取名字是一个很令人抓狂的事,大家一时都找不到得当的名字来重新命名。在“百思不得解”之际,当时正在喝82年爪哇岛咖啡的詹姆斯高斯林灵机一动,干脆就把Oak改名叫“Java”得了。于是,从此Oak更名为Java,以是高斯林也就成了公认的“Java他爹”!
幸亏高斯林当时不是在蹲坑,要不然,em.......
到了1996年1月,Sun公司发布了Java的第一个开拓工具包(JDK 1.0),这也是Java发展进程中的主要里程碑,标志着Java真正成为了一种独立的开拓工具。
以上便是Java措辞的起源由来,现在你对它的历史知道了吗?
2. 观点(节制)
通过上面的先容,相信各位已经对Java有所理解了,但实际上Java到底是个什么鬼,有些朋友可能还是没有搞清楚。别急,壹哥再给大家把Java的核心观点提炼一下。
● Java是曾经大名鼎鼎的Sun公司,在1995年5月正式推出的一种面向工具的程序设计措辞。
● Java一开始是Sun公司的产品,但后来Sun被Oracle(甲骨文)给收购了,以是现在Java属于Oracle公司。
● Java措辞是由James Gosling(詹姆斯高斯林,“高司令”)和同事们共同研发的,常日我们认为高斯林是“Java之父”。
● Java是一种介于编译型和解释型之间的编程措辞,但更倾向于阐明型。编译型措辞写出的代码会根据CPU类型的不同,编译身分歧的机器码实行,事情事理类似于“翻译书本”,如C、C++等;阐明型措辞可以由阐明器直接加载源码运行,事情事理类似于“同声传译”,但运行效率较低,如JavaScript、Python、Ruby等。
● 为了使得定位更清晰,Sun公司将Java分成了三个技能体系:
○ JavaSE(J2SE):Java 2 Platform Standard Edition,Java平台标准版,包含标准的JVM和标准库;
○ JavaEE(J2EE):Java 2 Platform,Enterprise Edition,Java平台企业版,在JavaSE的根本上增加了大量的API和库,用于企业级项目开拓;
○ JavaME(J2ME):Java 2 Platform Micro Edition,Java平台微型版,紧张针对移动平台开拓。
● 2005年6月,JavaOne大会召开,发布Java SE 6版本,并正式将Java版本名称中的数字“2”取消。从此J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为 Java ME。以是如果有谁再跟你说什么“J2SE、J2EE、J2ME”,你就送他一个黑人问号脸,“你到底是有多out才会说出这么老古董的话”?
3. 技能体系
虽然壹哥在上面的小节中已经给大家说过,Sun把Java分成了JavaSE、JavaEE、JavaME共3个平台体系,但我还是想把这个知识点在跟大家强调一下,由于有太多的小白曾经问过我:”壹哥,我到底是要学JavaSE,还是JavaEE?JavaSE和JavaEE到底是什么关系?.......“以是在我们正式开始学习Java之前,壹哥还是希望能够把各位心中的这些迷惑都给你办理掉。
为了搞清楚JavaSE、JavaEE、JavaME之间的关系,壹哥给大家绘制了下面这张图片:
从上图中你该当可以看出来,JavaEE的“范围是最大的“,这表示什么意思呢?这实在紧张是说,JavaEE这个分类里包含的API(运用程序接口,我们可以暂时理解为Java供应的各种”工具“)最多,而JavaSE则完备包含在JavaEE里面,JavaME中有一小部分的API和JavaSE是重合的。
由此我们可以得出一个结论,作为初学者,我们须要先学习JavaSE里供应的各种常用API,等把JavaSE学完了就有”资格“去学习JavaEE或JavaME了!
也便是说,JavaSE是Java的必备入门根本,初学者肯定要先学习JavaSE。这就好比你要学习中医技能,有针灸、推拿、中药等几个方向可以供你选择。但无论你要选择哪个方向,你都得先学习《中医根本理论》这门课,学完了这个才能有资格去学习其他详细的某个方向。现在你知道JavaSE与JavaEE的关系了吗?
但有的小伙伴还会好奇,要不要学习JavaME呢?壹哥见告你,这个就算了!
JavaME本来是Sun用于开拓手机等设备的技能平台,但后来Android、iOS的异军突起,现在险些就没人利用JavaME了,以是大家知道有这么一个东西就可以了。
我们学习完JavaSE之后,还不具备企业级开拓的能力,接下来要学习JavaEE里的各种API。以是我们学习Java的精确路线,便是先学JavaSE,再学JavaEE,而壹哥的《从零开始学Java》系列文章,紧张便是讲解JavaSE哦!
实在对付初学者来说,你大可不必过于纠结这些没什么实用代价的观点。等学到后面,你自然而然就会明白它们之间的详细差异,我们只需对其有个大致的理解,把精力放在最核心的问题上即可。
4. Java特性
对付Java,我们还须要理解一下Java的一些上风和特性,有时候口试官会贱兮兮地问你:你对Java理解多少?你为什么学习Java而不是其他措辞?Java有哪些上风......针对这样的问题,咱们就大略回答一下Java的核心特性即可。
● 利用大略:Java的语法与C和C++很靠近,可以方便大量C系程序员快速转向Java。但又丢弃了C++中那些特殊繁芜难用的特性,如操作符重载、多继续、自动逼迫类型转换等。其余Java不支持指针,而是支持引用,并供应了自动分配和GC垃圾回收机制,程序员不必关心内存管理。
● 面向工具:Java供应了类、接口和单继续等面向工具的特性,并支持类与接口之间的实现机制,全面支持动态绑定。可以说,Java措辞是第一个非常纯粹的面向工具的程序设计措辞。
● 健壮安全:Java具有强类型机制、非常处理、GC垃圾自动网络、安全检讨机制、丢弃指针等特性,担保了Java程序的健壮性。并且Java供应了安全机制来防止恶意代码的攻击,可以通过ClassLoader加载器进行字节代码检讨,通过SecurityManager安全管理机制设置安全哨兵,担保了Java程序的安全性。
● 跨平台/可移植性:Java基于JVM虚拟机机制,Java文件会被JVM编译成适宜不同平台的class字节码文件,实现了“一次编写,处处运行”的跨平台特性。正由于这个特性,也使得Java代码可以轻松实现不同平台间的移植。
● 开源/免费:在2006年的JavaOne大会上,Sun公司宣告要将Java开源,之后陆续将JDK的各个部分在GPL v2(GNU General Public License v2)协议下公开了源码(即OpenJDK)。除了极少量的产权代码外,OpenJDK险些包括了Sun JDK的全部代码,两者的代码基本上完备一样。目前JDK 8及以前的版本都是完备免费的,JDK 9之后Oracle宣告会对企业进行收费,但是企业可以免费利用Open JDK。
● 高性能:Java是介于编译型与阐明型之间的措辞,但更倾向于阐明型,实行性能比C措辞更高效。而且现在Java的编译器不断更新,性能已经与C++类似了。
● 支持网络和多线程:Java支持 Internet网络开拓,供应了用于网络编程的类库,比如URL、URLConnection、Socket、ServerSocket、RMI(远程方法激活)等,并且支持多线程和并发同步机制。
二. Java发展史
对一个即将开始学习Java的小白来说,我们还是有必要适当地理解一下Java的发展史的,看看这些年Java都经历了哪些历史变革吧。
● 1995年5月23日,Java出身;
● 1996年1月,JDK 1.0出身;
● 1997年4月2日,Java One会议召开,参与者超过万人,冲破当时环球同类会议规模记录;
● 1997年9月,Java Developer Connection社区成员超十万人;
● 1998年2月,JDK 1.1被下载超过 2,000,000次;
● 1998年12月8日,JAVA2企业平台J2EE发布;
● 1999年6月,SUN发布Java的三个版本:JavaSE、JavaEE、JavaME;
● 2000年5月8日,JDK 1.3发布;
● 2000年5月29日,JDK 1.4发布;
● 2001年6月5日,NOKIA宣告到2003年将会出售超 1亿部支持Java的手机;
● 2002年2月26日,J2SE 1.4发布,Java打算能力有了大幅提升;
● 2004年9月30日,J2SE 1.5发布,成为Java措辞发展史上的又一里程碑。为了表示该版本的主要性,J2SE 1.5更名为 Java SE 5.0;
● 2005年6月,Java One大会召开,Sun公司发布Java SE 6。此时Java各种版本已经全部更名,取消了个中的数字 "2":J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为 Java ME;
● 2006年12月,Sun公司发布JRE 6.0;
● 2009 年04月20日,甲骨文以74亿美元收购Sun,取得了Java版权;
● 2011年7月28日,Oracle发布Java 7.0 正式版;
● 2014年3月18日,Oracle发布Java SE 8.0(目前最主流版本);
● 2017年9月21日,Oracle发布Java SE 9.0;
● 2018年3月21日,Oracle发布Java SE 10.0;
● 2018年9月25日,Oracle发布Java SE 11;
● 2019年3月20日,Oracle发布Java SE 12;
● 2019年9月,Oracle发布Java SE 13;
● 2020年3月,Oracle发布Java SE 14;
● 2020年9月,Oracle发布Java SE 14;
● 2021年3月,Oracle发布Java SE 16;
● 2021年9月,Oracle发布Java SE 17;
● 2022年3月,Oracle发布Java SE 18;
● 2022年9月,Oracle发布Java SE 19;
● ......Java连续在大步提高......
当然,对付以上历史,大家理解即可,不用去记这些东西。
三. Java版本(重点)
在上面的章节先容中,壹哥给大家提到了Java的很多版本,并且这些不同的版本所具有的功能也不尽相同。以是就有小白来问了,我们学习Java时到底该选择哪个版本呢?是越新越好吗?壹哥认为很有必要就这个问题给大家阐明一下。
在Java的发展过程中,有很多不同的表述办法,有时候会给初学者造成一些误解。但请你记住,所谓的Java版本,实在便是指JDK的版本,两者是一回事!
1. JDK版本
Oracle把JDK分成了两种掩护情形,即短期支持版本和长期支持版本,我们先来看看 Oracle官方发布的JDK路线图:
对付短期支持版本(non-LTS)而言,Oracle只会供应6个月的支持掩护;而对付长期支持版本(LTS),则供应8年的支持掩护。以是根据这一方案,Oracle每隔6个月,就会发布一个大版本,每个季度则发布一个中间特性版本。其余Oracle还承诺,新的JDK发布周期会严格遵照韶光点,将于每年的3月份和9月份发布,中间不会跳票。
现在正常情形下,每隔6个月就会有一个短期掩护版本(non-LTS)发布出来,比如JDK 9、10、12、13、14、15、16;然后每隔3年,就会发布一款得到8年长期支持掩护的JDK版本,比如JDK 8、11、17。以是小伙伴们,实在你没必要下载利用JDK9/10/12等non-LTS版本,该当利用JDK 8、11、17这样的LTS版本。但目前绝大多数主流企业利用的版本是JKD 8,但不会利用最新的版本,而且Oracle宣告从JDK 9.0之后开始针对企业收费,以是最新版的JDK利用情形待议。
2. 版本选择
既然JDK版本有这么多,作为小白,你到底该选择哪个版本的JDK呢?是直接学习JDK 18还是19?或者等几个月学习JDK 21?壹哥见告你,如果你是一个新手小白,实在没必要追求学习最新的JDK!
首先每一个JDK版本推出时,都存在着很多未知的bug,以是企业在开拓时,都会选择最稳定的版本!
现在主流的企业级运用都在利用JDK 8.0正式版,并且JDK 8.0及之前版本都是免费的,而JDK 9.0往后则开始收费(针对企业收费,非个人)。以是公司考虑到稳定性和用度等问题,都在利用JDK 8.0,这才是主流!
其余对初学者来说,JDK的新特性实在对小白来说意义并不大。这些新特性一样平常是针对性能有较大提升,但你作为一个小白,连最基本的用法都不会呢,现在去追求这些新特性没必要。等你把JavaSE学完之后,往后自己再针对性地提升即可。请先把精力放在最核心的地方,要不然根本还没搞踏实,却齐心专心贪多求快,很随意马虎涌现”空中楼阁“的状况。
其余有些培训机构,流传宣传会重点讲解JDK 12、JDK 10、JDK 9等版本的内容,不过是哗众取宠。这些版本官方都停滞掩护和下载了,你讲这些有啥用。
以是,为了贴合最主流的企业哀求,壹哥的本套教程案例都是基于JDK 8来进行讲解的!
如果你的JDK版本比我的版本高,当然是可以直接兼容运行我的案例的,不用担心!
四、今日作业
1. 第一题:
Java他爹是谁?
A|乔布斯 B|勒布朗詹姆斯 C|詹姆斯高斯林
2. 第二题:
Java现在属属于哪个公司?
A|乔布斯 B|勒布朗詹姆斯 C|詹姆斯高斯林
3. 第三题:
Java分为哪几个平台体系?有什么差异?请在评论区写出你的答案哦!
3. 第四题:
目前Java的长期掩护版本有哪些?请在评论区写出你的答案,并说出你希望学习的JDK版本吧。
【下篇预报】
熟习Java的运行机制和JVM虚拟机事情事理,搭建出学习Java时的必备环境---《JDK安装及环境变量配置》
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/rqz/133227.html
下一篇:返回列表
Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码
声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com