学习视频地址:https://edu.aliyun.com/roadmap/java
课时1(认识Java)
Java是现在最流行的编程语言之一,并且自身拥有庞大且完善的生态系统,可以实现你的任意需求(但是你不可能要求一门语言实现的功能过多,所以有些时候Java不擅长的部分会被其他的语言所顶替),在国内而言,之所以Java使用广泛,更多的主要原因在于有许多的大户都在使用Java实现其各自的核心业务。
Java是由SUN公司开发的一套编程语言,其前身并不是Java。
在1991年的时候,当时有一个GREEN项目,这个项目的核心功能在于使用Email控制家电产品的运行(智能家居),在80年代Email流行的时候,当时可以发送个Email是一件很牛的事情,最初SUN公司打算竞争此项目,但是后来考虑到了C++的复杂性,所以利用C++开发了一套OAK(橡树)平台,并且利用此平台进行项目的竞标,不过遗憾的是,这个平台的竞标结果失败了。但是这个时候世界上有一个最早的最牛X的软件公司诞生了:网景(第一家依靠技术上市的公司),受到了当时发展最好的浏览器技术的启发,推出了一个HotJava的浏览器。那么后来在1995年5月23日的时候正式推出了Java编程语言,同时推出了JDK1.0的开发包(1996年的时候才开始提供陆续下载使用,到了1997年的时候传到了中国)。
SUN(Stanford University NetWork)公司是一家从事于硬件开发的技术性公司,SUN最早的代表性的产品:小型机(被广泛的应用在了Amazon上),最初的电子商务是由IBM提出来的,后来由于网络经济的发展问题(任何的经济模式都一定会出现有瓶颈)但是对于90年代末至2000年初的互联网低潮而言,这就是一个严重的伤害。而SUN公司经历过了这么一段发展之后并没有恢复往日的经济实力,终于在后来被Oracle公司所收购,但是在Oracle公司收购前最希望收购SUN的实际上是IBM,IBM当年软件产品线上的技术基础就是Java语言(SUN并没有通过Java赚到多少钱,但是真正使用Java赚到钱的只有IBM,后来还有依靠版权欺诈的Oracle)。
但是不管这些公司如何的折腾,有一点已经达成了共识:Java依然是一个稳定的、可靠的编程语言,可以承担大型服务器的程序开发任务。
而从最初的时代到现在Java语言出现了一些技术的不同发展:
·Java标准开发(J2SE、Java SE):提供的是底层的支持,实现了桌面程序的开发;
·Java嵌入式开发(J2ME、Java ME):SUN公司最早的时候就是想做嵌入式开发,但是这个嵌入式的发展被当年的Nokia给折腾够了,后来基本上就被Android所替代了,但是再后来由于Oracle和Google的撕逼大战,导致Android发展也出现了瓶颈,后来Google干脆推出了自己的专属编程语言来进行Android开发(Kotlin);
·Java企业开发版(J2EE、Java EE):主要是进行企业平台的搭建,现在已经主要的开发是互联网平台。
课时2(Java语言特点)
Java之所以可以得到持续的发展力以及良好的生态系统,这完全取决于Java的自身的技术特征。
1.是一个行业内通用的技术实现标准:Java本身也算是一个半开源的产品,所以很多的厂商得以接触到Java的底层,这样使得Java开发的更加的透明;
2.是一门面向对象的编程语言:这样就使得Java语言语法结构更加方便开发者接受,这些面向对象的设计思想还在不断的进行着扩充(不同的JDK版本);
3.提供有方便的内存回收处理机制:像一些编程语言里面需要明确的手工进行对象的回收与释放,否则你的程序将无法正常提供支持,但是Java可以提供的有自动的内存回收操作,这样处理会更加方便一些(这里面就牵扯到了一些优化方面的问题了);
4.避免了复杂的指针问题,而使用更加简单的引用来代替指:指针虽然是一种高效的内存处理模式,但是其需要较强的逻辑分析,而Java在设计的时候充分的考虑到了这一点,所以开发者直接利用引用就可以简化指针的处理,而引用也是在所有初学过程之中最为难以理解的部分;
5.是为数不多支持多线程编程的开发语言,这样就可以使得单位时间内,处理的性能得到提升(性能的提升并不是绝对的),多线程也是Java开发之中最难以理解的部分,而正确的多线程处理才是提升处理性能的核心所在;
6.提供有高效的网络处理能力,可以基于NIO实现更加高效的数据传输处理;
7.具有良好的可移植性,这样就可以提升一个程序的适用范围;
8.Java语言足够简单。
课时3(Java可移植性)
Java语言之中最大的特点在于其可移植性的支持,所谓的可移植性指的是同一个程序可以在不同的操作系统之间任意的进行部署,这样就减少了开发的难度,在Java里面如果要想实现可移植性的控制,那么主要是依靠的是JVM(Java虚拟机)。Java虚拟机是一个由软件和硬件模拟出来的计算机,所有的程序只要有Java虚拟机的支持,那么就可以实现程序的执行,并且不同的操作系统上会有不同版本的JVM存在,这样就可以实现移植性。
//计算机高级编程语言类型:编译型、解释型
//Java是两种语言的结合:编译命令:javac.exe;解释命令:java.exe
//Java程序组成:Java源文件、字节码文件、机器码指令
所有Java程序的解释都要求放在Java虚拟机上处理,所有的*.java的源代码程序最终都是需要经过编译后才可以使用的,但是编译完成的程序代码并不是一个绑定在某个具体操作系统上的程序,而是一种通用性的程序,而这种通用性的程序就是JVM所能够识别的代码。
所有的程序并不是直接运行在操作系统上,而是通过JVM执行,这样一来肯定要比操作系统上执行的程序的处理速度要慢,先期这的确是一个问题,但是后来由于硬件技术的飞速发展,这些问题已经可以忽略了,但是依然会存在有JVM调优问题。
课时4(JDK简介)
Java语言属于编译型与解释型的开发语言,对于Java语言,如果要想进行开发,则一定要进行JDK(Java Development Kit)的安装配置,而JDK要想获取则需要通过官方网站获得,并且也需要在本机上进行配置。
最早的时候JDK都是由SUN公司提供的,但是后来SUN公司被Oracle收购了,收购之后如果要获得则必须登录Oracle官方站点:www.oracle.com。
对于JDK而言,其本身也有一段自己的发展历史,主要有如下的几个标志性的版本:
·【1995.05.23】JDK1.0的开发包发布,同时来讲在1996年的时候JDK正式提供下载,标志Java的诞生;
·【1998.12.04】JDK1.2版本推出,而后Java正式更名为Java2(只是一个Java的升级版);
·【2005.5.23】Java十周年大会上,推出了JDK1.5版本,同时这个版本也是带来新特性以及开发支持更多的标志性的历史版本,可以说这一版本直接决定了Java后续十年的技术核心;
·【2014年】Java提供了JDK1.8版本,并且支持有Lambda表达式,可以使用函数式编程;
·【2017年】Java提供了JDK1.9版本,进一步提升了JDK1.8的稳定性;
·【2018年】Java提供了JDK1.10版本,是属于JDK1.9的稳定版。
但是需要提醒一下,电脑上提供有JDK1.8、JDK1.9、JDK1.10三个版本,对于这三个版本需要做一个特别的说明:
·如果要是进行实际的项目的生产环境的部署现阶段还应该以JDK1.8为主;
·JDK1.9和JDK1.10的差别不大,也就是说是使用JDK1.9还是JDK1.10效果类似的。
JRE指的是Java运行时环境,也就是说只提供有程序的解释功能,不提供有程序的开发功能,当本机上已经配置好了JDK之后将自动会进行JRE的更新处理。
课时5(JDK安装与配置)
当JDK下载完成之后由于其本身提供的是一个Windows程序的安装结构,所以可以直接双击打开进行安装。在JDK之中默认支持有JRE,所以对于JRE就可以在安装JDK的同时进行配置,安装完成之后就需要进行JDK的配置处理。在JDK里面所有的可执行路径为:D:\jdk\bin,主要使用javac.exe和java.exe两个指令。
但是这两个命令并不属于Windows本身,如果要想在命令行里面直接进行使用,那么就必须在Windows的系统环境之中进行可执行程序的路径配置:
【计算机】→【高级系统设置】→【环境变量】→【系统变量】
【修改Path环境】→【编辑Path:将D:\jdk\bin添加进来】
如果你此时的命令行方式已经打开了,那么将无法进行新的环境属性的读取,必须重新启动命令行方式之后才可以加载新的环境属性配置(加载Path路径)。