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
这是两个指令,分别是:
-
编译Test.java文件
-
运行Test类
path环境变量的作用就是设置操作系统查找javac和java命令的路径。而CLASSPATH的环境变量设置的是JVM查找Test类的路径,所以这也就是为什么CLASSPATH一定要设置“.”的原因,因为“.”代表的是当前目录(指令执行所在的目录),就是告诉JVM从当前目录查找class文件,当然如果明确指向了jar文件(例如以前需要设置的tools.jar和rt.jar)那也会从jar文件中查找class。如果没有设置CLASSPATH的话,JVM默认会查找当前目录。
这次的内容就先分享这些。因为没有什么经验,所以我想到哪里就会写到哪里,后几期可能会看起来不成体系,连着读起来会有点乱,如果有不适应的小伙伴可以直接告诉我,也可以告诉我想要了解哪方面的知识,知道的我就可以尝试去分享,不知道的,我也能试着去接触,了解过后再分享。谢谢大家,我们下期再见~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!