河南高端建设网站,小程序开发定制开发,首涂模板网站,柳州网站推广哪家好博主简介我是壹壹哥(孙玉昌)#xff0c;十年软件开发授课经验#xff0c;CSDN博客专家、阿里云专家博主、掘金优秀创作者、infoQ专家博主#xff1b;关注壹壹哥(孙玉昌)#xff0c;带你玩转Java#xff0c;轻松实现从入门到放弃#xff0c;哦不#xff0c;到熟悉#x…博主简介我是壹壹哥(孙玉昌)十年软件开发授课经验CSDN博客专家、阿里云专家博主、掘金优秀创作者、infoQ专家博主关注壹壹哥(孙玉昌)带你玩转Java轻松实现从入门到放弃哦不到熟悉曾任国内物流行业某独角兽企业架构师曾主导研发油田、广电、教育、物流等行业项目拥有丰富的行业方案解决经验现从事软件开发教育工作培养了大量入职阿里、华为、百度、IBM等名企的高薪学生坚持”一心做教育做一流教育“的理念被学生爱称为一一哥、壹壹哥。全文大约【5500】字不说废话只讲可以让你学到技术、明白原理的纯干货文章带有丰富案例及配图、视频只为让你更好的理解和运用文中的技术概念给你带来具有足够启迪的教程......------------------------------前戏已做完精彩即开始---------------------------既然各位小伙伴现在已经决定要学习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 EditionJava平台标准版包含标准的JVM和标准库JavaEE(J2EE)Java 2 Platform,Enterprise EditionJava平台企业版在JavaSE的基础上增加了大量的API和库用于企业级项目开发JavaME(J2ME)Java 2 Platform Micro EditionJava平台微型版主要针对移动平台开发。2005年6月JavaOne大会召开发布Java SE 6版本并正式将Java版本名称中的数字“2”取消。从此J2EE更名为Java EEJ2SE更名为Java SEJ2ME更名为 Java ME。所以如果有谁再跟你说什么“J2SE、J2EE、J2ME”你就送他一个黑人问号脸“你到底是有多out才会说出这么老古董的话”3. 技术体系虽然壹哥在上面的小节中已经给大家说过Sun把Java分成了JavaSE、JavaEE、JavaME共3个平台体系但我还是想把这个知识点再跟大家强调一下因为有太多的小白曾经问过我”壹哥我到底是要学JavaSE还是JavaEEJavaSE和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、JavaME2000年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.02005年6月Java One大会召开Sun公司发布Java SE 6。此时Java各种版本已经全部更名取消了其中的数字 2J2EE更名为Java EEJ2SE更名为Java SEJ2ME更名为 Java ME2006年12月Sun公司发布JRE 6.02009 年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.02018年3月21日Oracle发布Java SE 10.02018年9月25日Oracle发布Java SE 112019年3月20日Oracle发布Java SE 122019年9月Oracle发布Java SE 132020年3月Oracle发布Java SE 142020年9月Oracle发布Java SE 142021年3月Oracle发布Java SE 162021年9月Oracle发布Java SE 172022年3月Oracle发布Java SE 182022年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版本比我的版本高当然是可以直接兼容运行我的案例的不用担心四. 配套视频至此壹哥通过本文给大家简单地介绍了一下Java的历史。其实对于今天的内容大家简单看看把重点内容稍微记一下就好不用在这些地方花费太多精力。开场白已结束在下一篇文章中壹哥会带各位先熟悉Java的运行机制和JVM虚拟机工作原理然后搭建出学习Java时的必备环境---《JDK安装及环境变量配置》敬请各位期待哦------------------------------正片已结束来根事后烟---------------------------如果你不习惯阅读技术文章或是对文中的技术概念不能很好地理解可以来看看壹哥帮你筛选出的视频教程。如果你自己去筛选学习视频会浪费很长的时间且找出来的视频也未必适合你。所以壹哥专门为大家找到了与本文配套的Java学习视频视频链接如下https://player.bilibili.com/player.html?bvidBV1Ja411x7XBp5page5另外如果你独自学习觉得有很多困难可以私信壹哥【加入壹哥的学习互助群】我们大家一起交流学习。五. 今日作业1. 第一题此处为语雀投票卡片点击链接查看https://www.yuque.com/yiyigesun/hkm11k/pyb9vu#CCNZ42. 第二题此处为语雀投票卡片点击链接查看https://www.yuque.com/yiyigesun/hkm11k/pyb9vu#vtivu3. 第三题Java分为哪几个平台体系有什么区别请在评论区写出你的答案哦4. 第四题目前Java的长期维护版本有哪些请在评论区写出你的答案并说出你希望学习的JDK版本吧。