01 Java的历程

前言:

​ 最近在学习Java,之前学习过挺久的Python,现在想来,对很多基础地方都不是很清晰,原因就是没有养成良好的笔记记录习惯,因此,这次学习Java准备从基础开始记录笔记,也算是一份积累。Java在目前仍然是最主流的编程语言之一,大部分公司的后端开发语言仍然是java,这得益于它优良的特性。那么java是什么时候出现的,又是为什么变得如此热门?难道它生来就是上天的宠儿,一路火花带闪电?让我们一回顾历史,一起看一看吧。

1.1、Java的诞生

​ 说到Java,就必须提到詹姆斯·高斯林(James Gosling)。在20 世纪 90 年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度。

​ 1991年,在SUN 公司的推动下,由詹姆斯·高斯林(James Gosling)领导,成立了一个名为“Green”的项目小组,但是他们当时并不是奔着开发一门程序语言去的,在多次的尝试与失败之后,他们选择开发一种能够在各种消费性电子产品上运行的程序架构。由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,需要让编写的程序跨平台运行,而当时C++对此并不友好,在项目小组的讨论考虑之后,他们决定对 C++进行改造:去除了C++复杂的指针和内存管理,并结合嵌入式系统的实时性要求。经过小组成员们,夜以继日(差不多一天干十几个小时?)的不断努力最终在 1992 年,他们开发了一种名为“Oak”的面向对象语言。然而,这个新诞生的语言因为缺乏硬件的支持而无法进入市场。

​ 1994年,随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,项目小组看到了浏览器在未来的发展前景,于是决定将 OaK 应用于万维网。

​ 1995年,他们用 OaK 语言研发了一种能将小程序嵌入到网页中执行的技术——Applet,由于 Applet 不仅能嵌入网页,还可随同网页在网络上进行传输,这让无数的程序员看到了 OaK 这门语言,并将Oak更名为java*(在申请注册商标时,发现Oak已经被人使用了,java 的灵感来源于咖啡,据说James Gosling 研发小组的工程师经常喝的咖啡就产自印度尼西亚的爪哇岛(Java)上所种植的咖啡豆。)*

1.2、Java的发展

​ 1996年,SUN 公司推出了 JDK1.0。JDK1.0版本的代表技术包括 Java虚拟机、Applet 以及 AWT等。

​ 1997年,SUN 公司紧接着推出了 JDK 1.1。Java Developer Connection 社区成员超过 10 万,同年还有 10 个最主要的操作系统供应商正式声明将在他们的产品中使用 Java。JDK1.1 的代表性技术有:JDBC、JavaBeans、RMI、JAR 文件格式、Java 语法中的内部类和反射

​ 1998年,JDK1.2——第二代 Java 平台的企业版 J2EE 发布。

​ 1999 年 6 月,Sun 公司把 Java 体系分为三个方向:

  • J2ME(Java2 Micro Edition,Java2 平台的微型版),应用于移动、无线及有限资源的环境;
  • J2SE(Java 2 Standard Edition,Java 2 平台的标准版),应用于桌面环境;
  • J2EE(Java 2Enterprise Edition,Java 2 平台的企业版),应用于基于 Java 的应用服务器。

​ 随着供应商的不同,Java 的 API 也分为三大类:
- Java Core API:Java 核心类库;
- Java Optional API:对之前 API 的扩充;
- 特殊 API:由特殊厂商或组织提供的 API。
Java 2 的发布,是 Java 发展过程中最重要的一个里程碑,标志着 Java 的应用开始普及。JKD1.2 的代表性技术有:Swing、Java IDL、EJB、Java Plug-in 等,在 API 文档中,添加了 strictfp关键字和 Collections 集合类。

​ 时间来到2004年,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5 更名为 Java SE 5.0(内部版本号 1.5.0)。Java SE 5.0 包含了从 1996 年发布 1.0 版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O 及可变参数。

​ 2005 年 6 月,在 Java One 大会上,Sun 公司发布了 Java SE 6。此时,Java 的各种版本已经更名,已取消其中的数字 2,如 J2EE 更名为 JavaEE,J2SE 更名为 JavaSE,J2ME 更名为 JavaME。

​ 2018 年 9 月 26 日,Java SE 11 发布。这是 Java 大版本周期变化后的第一个长期支持版本(LTS版本持续支持到 2026 年 9 月)。Java11 带来了 ZGC、Http Client 等重要特性,一共包含 17 个 JEP(JDK Enhancement Proposals,JDK 增强提案)。

​ 至今,Java SE 14已经发布了。

1.3、结语

​ Java的发展中还有很多有意思的小故事,感兴趣的可以自行查阅。从Java的发展过程中我们可以看到,它的征途也是坎坷起步,一路走下来也甚是不易。不得不说,科技的发展会给很多以前不看好的东西带来发展机遇。比如,机器学习和深度学习,上个世纪已经出现,但是为什么近几年才发展的火热,原因之一就是硬件的发展带给了计算机更高的计算能力和存储能力。而Python也是如此,解释性语言的一个问题就是运行速度太慢,在当下运行速度足够,更注重开发效率的环境下,它便迎来了发展,同时机器学习,深度学习的发展也促进了Python的发展。计算机领域如此,其他领域也是这样,有很多之前不被看好的东西,在当下发展的相当迅猛。我们不要拘泥于自己的眼光,时刻保持谦卑,不断学习,谁又能知道未来会不会推翻我们现有的科学体系呢?中世纪时这样的例子也是有的。

02、Java的特性

​ 一种纯面向对象的编程语言。面向对象的具体概念就不在这里赘述了,主要包括封装和继承,便于代码的复用,具体的概念可以参考面向对象。
一种与平台无关(跨平台)的语言(它提供了在不同平台下运行的解释环境)。这个特性经常被称为“一次编译,到处运行”。跨平台原理参考下图理解:

​ 有较高的安全性(自动回收垃圾,强制类型检查,取消指针)。在 C/C++等语言中,由程序员负责回收无用内存。JVM 提供了一种系统线程跟踪存储空间的分配情况。并在 JVM 的空闲时,检查并释放那些可以被释放的存储空间。(可以想想手机上的优化提速,手机卡的时候,释放内存就没那么卡了)。

​ 关于java特性更详细的描述,详见Java。

03、JDK 、 JRE、JVM

​ 首先先看一下Java SE 的组成概念图,便于直观理解它们的相互关系:

3.1、JDK

​ JDK(Java Development Kits)— Java 开发工具集。JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具包括编译工具(javac.exe) 打包工具(jar.exe)等。它不提供具体的开发软件,它提供的是无论你用何种开发软件写 Java 程序都必须用到的类库和 Java 语言规范。

3.2、JRE

​ JRE(Java Runtime Environment) Java 运行时环境。JRE包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

3.3、JVM

​ JVM(Java Virtual Machine Java虚拟机)。

​ JVM 可以理解成一个可运行 Java 字节码的虚拟计算机系统:

​ - 它有一个解释器组件,可以实现 Java 字节码和计算机操作系统之间的通信

​ - 对于不同的运行平台,有不同 的 JVM。

​ JVM 屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。

04、Java的安装

​ 这里说java的安装其实不太合适,主要是JDK的安装,有了JDK,我们用记事本也能编写和运行Java程序。这里插一嘴,说一下程序这个概念。什么是程序?日常生活中我们办事情的时候,要走程序,就是按照一定的流程去做某件事,比如你去银行办业务,去办理入学手续之类的,类比一下,计算机中的程序就是为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令(即命令)的集合。

4.1、JDK11 下载

​ 目前 JDK 14 已经发布, 但是 JDK14 并非 LTS(长期支持)版本, 仅仅是快速发布版本。而目前 Java 11 为最新的 LTS(长期支持)版本 ,因此选择按照JDK11,可以去官网下载https://www.oracle.com/java/technologies/javase-jdk11-downloads.html,国内比较慢,可以去网上寻找别人提供的百度云之类的。

​ 进入官网,选择自己的操作系统对应的版本,exe格式是安装包,zip格式是压缩包(免安装)。

​ 安装步骤:

​ 找到下载好的jdk-11.06_windows-x64_bin.exe,双击运行。

​ 这里需要注意,目录如果选择更改,则记好装在了哪里,之后配置环境变量要用。

​ 其他的就无脑下一步即可。

4.2、配置环境变量

​ 为什么要配置环境变量,环境变量是个啥?想当初我也是一脸懵逼,现在大概知道,环境变量就是为了给windows的DOS命令指定一个可以寻找的路径。上图:

​ 首先按下win+R,输入cmd,点击确定:

​ 出现如下界面:

​ 我已经配置好环境变量,因此,在命令行输入java,效果如下:

​ 如果,你仅仅是安装好了JDK,没有配置环境变量,那么效果如下(就是下边这样,告诉你,不是内部或外部命令…):
​ 这就是因为它找不到java,它会先在这个默认目录下寻找有没有一个叫java的exe,如果没有,它会去环境变量中寻找,如果也没有,那么就报错。
如果在安装的jdk的bin目录下,运行java命令,就会成功。比如,我这里jdk的安装目录是:E:\Java\jdk-11.0.6,那么当我进入此文件夹下的bin目录中,运行java命令,结果可见下图:

​ 如何配置环境变量,win10系统如下:

​ 点击之后,找到环境变量:

​ 找到path这个变量:

​ 这里输入你安装JDK的目录。(这里用默认的安装目录演示)

win7系统如下:

05、eclipse 安装

​ 俗话说得好“工欲善其事,必先利其器”。现在主流的Java集成开发环境主要是IDEA和eclipse,前者是收费的,后者是开源免费的,由于破解IDEA自己用用还行,用于开发的话会引起问题,建议搜索IDEA起诉了解,所以这里安装eclipse。

​ 1、打开官网: https://www.eclipse.org/ , 按图标注位置点击 Download

​ 2、在新的页面中, 点击 Download Packages

​ 3、如图所示, 根据操作系统不同,选择不同版本进行下载

​ 4、在新的页面中点击 Download 进行下载。

​ 5、第 4 步的操作完成后, 会出现下图页面, 此页面无需进行任何操作, 稍等一会儿就会开始下载。强调一下, Eclipse 是一款免费且功能丰富的开发工具 , 这个页面是为 Eclipse 社区捐助的页面.

​ 6、将下载完毕的 eclipse 压缩包, 解压就完成了安装 .

​ 7、运行,打开解压后文件夹中的 eclipse.exe

​ 8、创建java项目




java学习-01 java历程以及java学习环境配置相关推荐

  1. MySQL~Java的数据库编程:JDBC(JDBC的环境配置以及使用)

      目录 JDBC的环境配置 JDBC的使用步骤(Java操作数据库) 建立数据库连接 方式一:DriverManager 方式二:DataSource(数据源/数据库连接池) DataSource与 ...

  2. rabbitmq java实例_RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)

    转载http://blog.csdn.net/u013142781 一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式 ...

  3. java mysql tomcat my_Java、Tomcat 及 MySQL 环境配置

    Java开发环境的配置 首先我们要下载JDK. 到Oracle官网上去下载即可,目前最新版是Java SE 8u25. 开始我很混乱,Java SE 和 JDK是什么关系呢?最后查了一下 Java S ...

  4. Spring Boot基础学习笔记05:Spring Boot多环境配置

    文章目录 零.学习目标 1.掌握使用Profile文件进行多环境配置 2.掌握使用@Profile注解进行多环境配置 3.熟悉随机值设置以及参数间引用 一.项目进行多环境配置的必要性 二.使用Prof ...

  5. 2021.8-机器学习地震信号去噪和到时识取环境配置

    目录 前言 一.安装Python环境 1.安装miniconda 2.安装jupyter lab 二.降噪 -- DeepDenoiser 三.到时拾取 -- PhaseNet 四.初步检测流程 -- ...

  6. 新手学习实记(二、树莓派环境配置)

    目录 [前言] 树莓派环境配置 一.树莓派镜像的烧写 二.获取树莓派 IP 地址(仅记录有效的方法) 1.ipscan22 2.静态ip 2.动态ip 三.putty远程登录树莓派 四.开启 VNC远 ...

  7. [学习笔记-VS Code篇]Windows下环境配置

    Windows下VS Code环境配置 VS Code安装 mingw-w64安装 插件安装 VS Code测试1 cmake安装 opencv安装 项目配置 从入门到放弃,配个opencv永远找不到 ...

  8. JAVA系列01:30天Java核心技术P1~P32

    JAVA语言特点:跨平台性(因为JAVA运行依赖的JVM,JVM能在多平台:Win/linux/Mac).垃圾回收 打印hello world 代码: public class HelloWorld ...

  9. Java Web之基于注解的Spring MVC环境配置

    1.在web.xml中配置前端控制器,拦截请求,然后配置加载SpringMVC的配置文件(处理器映射器.处理器适配器.视图解析器等) <!-- springmvc前端控制器 -->< ...

  10. cocos2dx学习之路(一)———windows10下cocos2dx环境配置

    (一).准备所需工具 1.开发工具Visual Studio 2015[官网地址]当然大家根据自己喜好下载各种版本,笔者只是觉得2015版本大小比较合适,也用习惯了.(https://visualst ...

最新文章

  1. 关于未来的10点核心思考
  2. 解决前后端base64编码传递时的中文乱码问题
  3. 阿里云容器服务中国最佳,进入 Forrester 报告强劲表现者象限
  4. 4.2 使用pytorch搭建VGG网络
  5. 深度解读!时序数据库HiTSDB:分布式流式聚合引擎
  6. Java黑皮书课后题第7章:**7.18(冒泡排序)使用冒泡排序算法编写一个排序方法。编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排序好的数字
  7. T-SQL Optimization Tips (3): SELECT COUNT(*)
  8. 天线效应产生原因及解决办法
  9. Arduino Uno+步进电机28BYJ-48+ULN2003 实现简单的正反转demo
  10. 矿产资源勘查评价的新进展——GIS在矿产资源评价中的应用
  11. 已解决ValueError: Of the four parameters: start, end, periods, and freq, exactly three must be specifie
  12. 纺织品有害物质三项检测
  13. 集束搜索的误差分析(Error analysis in beam search)
  14. ASEMI整流桥KBP410参数,KBP410厂家,KBP410货源
  15. Failed to start monitoring
  16. grafana dashboard
  17. 360柱状全景图拼接
  18. POI-TL使用及工具类
  19. 集合的概念、定义以及操作
  20. 面试题-Java基础(四)-反射

热门文章

  1. 慧博云通深交所上市:半年营收5.6亿募资3亿 市值108亿
  2. 开源开放通用赋能 英特尔助力2020 EdgeX中国挑战赛创新方案落地
  3. 【读书笔记】 《流畅的python》2.7-2.8 读书笔记
  4. 【Aegisub相关】常用自定义函数AutoTags及其变种的介绍
  5. couple和double的区别_couple是什么意思_couple在线翻译_英语_读音_用法_例句_海词词典...
  6. 精品,全网最详细-软件测试技术自动化测试总结,最屌详解看了默默卷起来
  7. [二分][并查集] Jzoj P5904 刺客信条(AC)
  8. python微信库 --- itchat
  9. 【愚公系列】2022年12月 .NET架构班 004-ABP vNext在WPF项目使用
  10. 【实用】增强WIFI信号(利用闲置无线路由器)