ja是什么

全文约【5000】字,没有废话,只是能让你学习技术,了解原理的纯干货!文章案例和图片丰富,只为让你更好的理解和运用文章中的技术概念,带给你足够的思想启迪。……

java是什么

既然已经决定学习Ja,那么首先要对Ja有一个基本的了解,那么我们就用一篇文章来介绍一下什么是Ja。

友情提醒:

大家要记住,不管学什么技术,都要知道这个技术是什么,为什么,怎么用,用的时候怎么解决问题!

一、Ja简介

1.起源

既然以后要靠Ja养家糊口,是不是应该多了解一下Ja?比如Ja是怎么产生的?接下来易哥给大家讲一个小故事。我们来看看Ja的起源。

90年代,经济高速发展,大家有钱了都想追求更高品质的生活。当时发明了很多稀奇古怪的电子产品,比如“手机”、BB机、电视机顶盒、烤箱等等。我们知道硬件产品必须有软件系统支持才能运行,就像人必须有灵魂才能被称为人一样。所以当时为了配合硬件的发展,开发了著名的单片机系统,大大提高了电子产品的智能化。

当时有一家公司叫“孙”(不是儿子),眼光敏锐。为了抢占广阔的消费电子市场,1991年成立了名为“Green”的项目组,由james gosling(高司令)、Patrick等工程师共同负责开发新技术,专门从事家用电器的嵌入式应用开发。一开始绿色项目组打算用C++进行嵌入式开发,但是C++写的程序特别复杂庞大,不适合在嵌入式环境下运行。而且不同厂家生产的电子产品硬件系统不同,用C++写的东西无法满足“一次编码,到处运行”的跨平台要求。

因此,为了解决这些问题,绿色项目组根据嵌入式系统的特点,对C++进行了改造,去掉了C++中不实用、影响安全性的部分,开发了一种面向对象的语言,叫做Oak(橡树),用于实时要求。但此时的Oak除了比C++简单之外,其实也没有太大区别,所以当时的硬件厂商对Oak并没有太大热情。而Oak则因为缺乏硬件支持无法进入市场而被搁置。

1994年6月和7月,绿色团队决定改变下一个发展目标。因为Oak本身是一种简化语言,程序很小,适合在网络上传输,所以他们决定在万维网上使用Oak。1995年,Sun公司正式决定启用Oak,并推出了可以随网页在网络上传输的Applet技术。

结果这个时候孙公司才发现橡树这个商标已经被其他公司抢注了。所以没办法只能给橡树改名了!众所周知,取名字是一件很让人抓狂的事情,一时找不到合适的名字来重新命名。“谜”的那一刻,1982年在爪哇喝咖啡的詹姆斯·高斯林灵机一动,干脆把橡木的名字改成了“爪哇”。于是,Oak改名为Ja,于是高斯林成了公认的“Ja爸爸”!幸运的是,高斯林没有蹲着,否则,嗯…….

1996年1月,Sun公司发布了第一个Ja开发工具包(JDK 1.0),这也是Ja发展的一个重要里程碑,标志着Ja真正成为一个独立的开发工具。

以上是Ja语言的起源。你现在知道它的历史了吗?

2.概念(掌握)

通过上面的介绍,相信你已经对Ja有所了解,但其实Ja到底是个什么东西?有些朋友可能还不理解。别急,易哥会为大家提炼Ja的核心概念。

● Ja是一种面向对象的编程语言,由曾经著名的Sun公司于1995年5月正式推出。

● Ja原本是Sun公司的产品,后来Sun被Oracle(甲骨文)收购,所以现在Ja属于Oracle公司。

Ja语言是由(James Gosling,“高司令”)和他的同事共同开发的。通常,我们认为高斯林是“Ja之父”。

● Ja是介于编译器和解释器之间的编程语言,但更偏向于解释器。用编译语言编写的代码,会根据不同的CPU类型,编译成不同的机器码来执行,其工作原理类似于“翻译书”,如C、C++等。解释性语言可以直接加载源代码,由解释器运行。工作原理类似“同传”,但运行效率较低,如JaScript、Python、Ruby等。

●为了让定位更清晰,Sun公司将Ja分为三个技术体系:

○ Ja SE (J2SE): Ja 2平台标准版,包括标准JVM和标准库;

○ JaEE (J2EE): Ja2platform,Enterprise Edition,Ja平台的企业版,在JaSE的基础上增加了大量的API和库,用于企业级项目开发;

○Ja Me(J2ME):Ja 2 Platform Micro Edition,Ja平台的迷你版,主要针对移动平台开发。

●2005年6月,JaOne大会召开,发布了Ja SE 6版本,正式取消了Ja版本名称中的数字“2”。从此,J2EE改名为Ja EE,J2SE改名为Ja SE,J2ME改名为Ja ME。所以如果有人再跟你说什么“J2SE、J2EE、J2ME”,你可以给他一个黑色问号脸,“你怎么能说出这么老套的话?”?

3.技术系统

虽然易哥在上一节已经跟你说了Sun把Ja分成了JaSE、JaEE、JaME三个平台体系,但是我还是想跟你强调一下这个知识点,因为有太多小白问过我“易哥,我该学JaSE还是JaEE?JaSE和JaEE是什么关系?……. “所以在我们正式开始学习Ja之前,易哥还是希望能够解决大家心中的这些疑惑。

为了了解JaSE、JaEE、JaME之间的关系,易哥给大家画了下面这张图:

从上图可以看出,JaEE的“范围最大”。这是什么意思?其实这主要是指JaEE包含的API(应用程序接口,我们可以暂时理解为给Ja提供的各种“工具”)最多,而JaSE则完全包含在JaEE中,JaME中有一小部分API与JaSE重叠。

由此可以得出一个结论,作为初学者,我们需要先学习JaSE中提供的各种常用API,学习完JaSE之后才会“有资格”学习JaEE或者JaME!换句话说,JaSE是Ja必不可少的基础,初学者必须先学习JaSE。就像学中医技术,有几个方向供你选择,针灸,推拿,中医。但无论选择哪个方向,都要先学习中医基础理论这门课程,只有这样才有资格学习其他具体方向。现在知道JaSE和JaEE的关系了吗?

但是有些朋友会好奇,你想学JaME吗?易哥告诉你,算了吧!JaME本来是Sun用来开发手机等设备的技术平台,但是后来Android和iOS异军突起,现在几乎没人用JaME了,所以大家都知道有这么个东西。

学了JaSE,还是没有企业级开发的能力,然后还要学习JaEE中的各种API。所以我们学习Ja的正确路线是先学JaSE,再学JaEE,而易哥的《从零开始学Ja》系列文章主要讲的就是JaSE!

其实对于初学者来说,不必太纠结于这些没什么实用价值的概念。学习之后,你自然会明白它们之间的具体区别。我们只需要对它们有一个大致的了解,并专注于核心问题。

4.Ja特性

对于Ja,我们还需要了解Ja的一些优点和特性。有时候面试官会害羞的问你:你对Ja了解多少?为什么学Ja而不学其他语言?Ja的优势是什么…..要解决这个问题,我们简单回答一下Ja的核心特性。

●易用性:Ja的语法非常接近C和C++,可以方便大量C系列程序员快速转向Ja。但是,C++中那些特别复杂和困难的特性都被丢弃了,比如运算符重载、多重继承、自动强制类型转换等等。此外,Ja不支持指针,但支持引用,并提供自动分配和GC垃圾收集机制,程序员不必关心内存管理。

●面向对象:Ja提供类、接口、单一继承等面向对象的特性,支持类和接口之间的实现机制,全面支持动态绑定。可以说Ja语言是第一种非常纯粹的面向对象编程语言。

●健壮性和安全性:Ja具有强类型机制、异常处理、自动GC垃圾回收、安全检查机制、丢弃指针等特性,保证了Ja程序的健壮性。此外,Ja提供了一种安全机制来防止恶意代码攻击。ClassLoader加载器可以检查字节码,SecurityManager安全管理机制设置安全岗哨,保证Ja程序的安全性。

●跨平台/可移植性:Ja基于JVM虚拟机机制,Ja文件会被JVM编译成适合不同平台的类字节码文件,实现了“一次编写,随处运行”的跨平台特性。由于这个特性,Ja代码可以很容易地在不同平台之间移植。

●开源/免费:在2006年的JaOne大会上,Sun公司宣布将开源Ja,随后在GPL V2 (GNU通用公共许可V2)协议(即OpenJDK)下发布了JDK各个部分的源代码。除了极少量的属性代码,OpenJDK几乎包含了孙的所有代码,两者的代码基本相同。目前,JDK 8和以前的版本是完全免费的。JDK 9之后,甲骨文宣布对企业收费,但企业可以免费使用开放的JDK。

●高性能:Ja是介于编译器和解释器之间的语言,但解释性更强,执行性能比C语言更高效。而且现在Ja的编译器也在不断更新,性能和C++差不多。

●支持网络和多线程:Ja支持Internet网络开发,提供网络编程的类库,如URL、URLConnection、Socket、ServerSocket、RMI(远程方法激活),支持多线程和并发同步机制。

二、Ja发展的历史

对于一个即将开始学习Ja的小白来说,我们还是有必要适当了解一下Ja的发展历史,看看Ja这几年经历了哪些历史性的变化。

●1995年5月23日,Ja诞生;

●1996年1月,JDK 1.0诞生;

●1997年4月2日,Ja One大会召开,参会人数超过1万人,打破了当时世界同类会议的记录;

●1997年9月,Ja Developer Connection社区有超过100,000名成员;

●1998年2月,JDK 1.1下载量超过200万次;

●1998年12月8日,JA2企业平台J2EE发布;

●1999年6月,SUN发布了Ja的三个版本:JaSE、JaEE、JaME;

●2000年5月8日,JDK 1.3发布;

●2000年5月29日,JDK 1.4发布;

2001年6月5日,诺基亚宣布到2003年将销售超过1亿部支持Ja的手机。

●2002年2月26日,J2SE 1.4发布,大幅提升了Ja的计算能力;

2004年9月30日,J2SE 1.5发布,成为Ja语言发展史上的又一个里程碑。为了显示这个版本的重要性,J2SE 1.5改名为Ja SE 5.0;

●2005年6月,Ja One大会召开,Sun公司发布Ja SE 6。这个时候Ja的所有版本都已经改名了,里面的数字都取消了& # 34;2":J2EE更名为Ja EE,J2SE更名为Ja SE,J2ME更名为Ja ME;

●2006年12月,孙公司发布JRE 6.0;

●2009年4月20日,甲骨文以74亿美元收购孙,获得Ja版权;

●2011年7月28日,甲骨文发布Ja 7.0正式版;

●2014年3月18日,甲骨文发布Ja SE 8.0(目前最主流的版本);

●2017年9月21日,甲骨文发布Ja SE 9.0;

●2018年3月21日,甲骨文发布Ja SE 10.0;

●2018年9月25日,甲骨文发布Ja SE 11;

●2019年3月20日,甲骨文发布Ja SE 12;

●2019年9月,甲骨文发布Ja SE 13;

●2020年3月,甲骨文发布Ja SE 14;

●2020年9月,甲骨文发布Ja SE 14;

●2021年3月,甲骨文发布Ja SE 16;

●2021年9月,甲骨文发布Ja SE 17;

●2022年3月,甲骨文发布Ja SE 18;

●2022年9月,甲骨文发布Ja SE 19;

● ……Ja继续大步前进。……

当然,对于以上历史,大家都可以理解,没必要记住这些东西。

三。Ja版本(焦点)

在以上章节的介绍中,易哥提到了Ja的很多版本,这些不同的版本有不同的功能。于是小白问,学Ja应该选哪个版本?是不是越新越好?易哥觉得有必要给大家解释一下这个问题。

在Ja的开发中,有很多不同的表达式,有时会给初学者造成一些误解。但是请记住,所谓的Ja版本其实指的是JDK版本,两者是一回事!

1.JDK版本

Oracle将JDK分为两种维护情况,即短期支持版本和长期支持版本。让我们来看看Oracle发布的官方JDK路线图:

对于短期支持版本(非LTS),Oracle将只提供6个月的支持和维护;对于长期支持版本(LTS),它提供8年的支持和维护。因此,按照这个计划,Oracle将每半年发布一个大型版本,每季度发布一个中级功能版本。此外,甲骨文还承诺,新JDK发布周期将严格遵循时间点,每年3月和9月发布,不跳票。

现在一般情况下,每半年会发布一个短期维护版本(非LTS),比如JDK 9、10、12、13、14、15、16;然后每三年发布一个支持维护了8年的JDK版本,比如JDK 8、JDK 11、JDK 17。所以朋友们,其实不需要下载使用JDK9/10/12等非LTS版本。你应该使用LTS版本,如JDK 8,11和17。不过,目前主流企业大多使用JKD 8,但不会使用最新版本,而甲骨文已经宣布将在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的新功能实际上对小白意义不大。这些新功能一般都是为了提升性能,但是作为一个小白,你连最基本的用法都不知道。现在没必要追求这些新功能。等你学完了JaSE,以后还可以提升自己。请先专注核心,否则基础不扎实,却一心贪图更多更快,很容易出现“空楼中楼”的情况。

此外,一些培训机构声称将重点关注JDK 12、JDK 10、JDK 9等版本的内容,其实只是哗众取宠。这些版本已经正式停止维护和下载了,那谈这些有什么用?

所以为了满足最主流企业的要求,易哥的教程案例都是基于JDK 8!如果你的JDK版本比我高,当然,你可以直接运行我的情况下,不要担心!

第四,今天的作业

1.第一个问题:

Ja的爸爸是谁?

A|乔布斯B|勒布朗詹姆斯C|詹姆斯高斯林

2.第二个问题:

Ja现在属于哪家公司?

A|乔布斯B|勒布朗詹姆斯C|詹姆斯高斯林

3.第三个问题:

Ja分为几个平台系统?有什么区别?请在评论区写下你的答案!

3.第四个问题:

Ja目前的长期维护版本有哪些?请在评论区写下你的答案,告诉我你想学的JDK版本。

[下一次预览]

熟悉Ja的运行机制和JVM虚拟机的工作原理,搭建学习Ja的必备环境——《JDK安装与环境变量配置》。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论