Java基础(一)

前几天刚写了篇文章,承诺了以后一周至少出一篇文章,总不能第一周就放鸽子吧。恰好最近在系统的学习《Java核心技术》第11版,那就以这本书的一种读书笔记的形式先开个头,将自己看到的一些知识点总结提炼一下,刚开始会是一些比较简单的东西,看客们就当是查漏补缺下好了。

发展简史

先说一下Java的发展简史吧,说实话,我刚学那会儿也是没有关注这玩意儿的,毕竟不知道也不影响我写bug不是。所以不感兴趣的朋友们直接跳过看一下主题就好。

 

让我们先回到1991年,当时由Patrick Naughton和James Gosling(也就是现在说的Java之父)带领的Sun公司的工程师小组想要设计一种小型的计算机语言,主要用于像有限电视转换盒这类消费设备。由于这些消费设备的处理能力和内存有限,所以语言必须非常小,另外由于不同的厂商会选择不同的CPU,所以这个语言也不应和任何特定的体系结构绑定。这个项目被命名为“Green”。

 

Gosling起初把这种语言称为“Oak”(大概是因为他喜欢自己办公室窗外的一颗橡树)。Sun公司的人后来发现,Oak是一种已有的计算机语言,于是将其改名为Java。事实证明这是一个很有灵感的选择。

 

1992年,Green项目组发布了它的第一个产品,称之为“*7”。这个产品可以提供非常智能的远程控制。遗憾的是,Sun公司对这个产品并不感兴趣,Green项目组必须找其他的方法将他们的技术推向市场。然而,没有任何一家标准消费品电子公司对此感兴趣。于是Green项目组投标了一个设计有限电视盒的项目,但他们没能拿到这个合同。

 

Green项目组(此时改名为:First Person公司)在1993年一整年以及1994年的上半年,一直在苦苦寻求买家购买他们的技术。然而,一个也没有找到。1994年First Person公司解散。

 

在1994年中期,Java语言的开发者意识到:“我们能够建立一个相当酷的浏览器,在客户/服务器主流框架中,浏览器恰好需要我们已经完成的一些工作:体系结构中立、实时、可靠、安全——这些问题在工作站环境并不太重要,所以,我们决定开发浏览器。”(94年正好是Internet的万维网发展壮大的时候,当时大多数人都在使用Mosaic)

 

1995年5月23日,HotJava浏览器(采用Java编写,能够在网页中执行内嵌的Java代码)在SunWorld的95大会上展示,引发了人们延续至今的对Java的狂热。

 

1996年年初,Sun发布了Java的第1个版本(Java1.0)。只是当时还有很多缺陷,不能真正的应用开发,说是错过了Java发展的黄金时期也不为过。即使后来发布了Java1.1也依然有很大的局限性。

 

1998年12月,Java1.2发布。

 

后续的1.3和1.4主要是对1.2扩展了一些标准类库,提高性能,当然还修正了一些bug。在此期间,原先对Java applet(可以嵌入在浏览器中运行)和客户端应用的炒作逐渐消退,但Java则成为服务器端应用的首选平台。

 

2004年Java第一个重大改进版本出现了,它就是——Java5.0,原先定为Java1.5,但是在JavaOne会议之后,版本号直接升至5.0,换句话说Java1.5和Java5其实是同一个东西。

 

2006年年末发布Java6。

 

随着数据中心越来越依赖于商业硬件而不是专用服务器,Sun公司终于沦陷,与2009年被Oracle收购。Java的开发停滞了很长一段时间。直到2011年Oracle发布了Java的新版本Java7。

 

2014年,Java8终于发布,在近20年中这个版本发生的改变最大。

 

2017年,Java9发布。

 

2018年开始,每6个月就会发布一个Java版本。

 

所以:2018年发布Java10,Java11;2019年发布Java12,Java13;2020年发布Java14,Java15;2021年发布Java16,Java17;2022年发布Java18,Java19。截止到文章编写时间Java19未正式发布,但是已经可以从各个渠道了解它的新特性了。另外,最后一个LTS版(长久支持版本)为Java17。

 

总结一下

 

写了一大堆类似与文科生资料一样的东西,眼睛都要晕了,我们还是进入下一个主题吧。

环境设置

相信大家学习编程的第一课,甚至是进入职场的第一天一般都是环境的搭建,所以如何下载JDK并且安装,这种一搜一大把,而且写的也都是保姆级教程的那种,我这里就不再赘述了。

 

到了设置环境变量时一般要设置两个环境变量path和CLASSPATH,当然后者不设置的话大多数程序也是运行正常的。不知道有没有小伙伴好奇这两个环境变量的作用。其实,path的作用是告诉操作系统指令集所在的路径,而CLASSPATH则是JVM运行的字节码文件路径,换句话说path就是告诉操作系统到设置的路径里面找命令,而CLASSPATH就是告诉JVM到设置的路径找字节码文件(.class文件)。

 

举个例子:

javac Test.java
java Test

这是两个指令,分别是:

  1. 编译Test.java文件

  2. 运行Test类

 

path环境变量的作用就是设置操作系统查找javac和java命令的路径。而CLASSPATH的环境变量设置的是JVM查找Test类的路径,所以这也就是为什么CLASSPATH一定要设置“.”的原因,因为“.”代表的是当前目录(指令执行所在的目录),就是告诉JVM从当前目录查找class文件,当然如果明确指向了jar文件(例如以前需要设置的tools.jar和rt.jar)那也会从jar文件中查找class。如果没有设置CLASSPATH的话,JVM默认会查找当前目录。


这次的内容就先分享这些。因为没有什么经验,所以我想到哪里就会写到哪里,后几期可能会看起来不成体系,连着读起来会有点乱,如果有不适应的小伙伴可以直接告诉我,也可以告诉我想要了解哪方面的知识,知道的我就可以尝试去分享,不知道的,我也能试着去接触,了解过后再分享。谢谢大家,我们下期再见~



posted @   aischen  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示