标签:01 Java 语言 JDK 程序 概述 JAVA 环境变量
Java概述及开发环境的搭建
1. Java概述
1.1 程序的概述
生活中的程序:
- 事情进行的步骤、次序 。
- 例如:工作程序
- 生活中的大白话:流程、手续、套路…
计算机中的程序:
- 计算机在执行任务时,对它所处理的对象以及处理规则的一种描述。是通过程序设计语言来实现的。
- 例如:QQ、腾讯课堂、浏览器…
- 生活中大白话:应用、爱屁屁(APP,application)、软件…
- 普及知识:软件是一个更大的概念,它是包含着程序概念的。
生活中的程序和计算机中的程序关联?
- 有关联
- 坐火车,需要买票,你需要前往火车站或者是代理点进行购买
- 前往火车站 -> 排队 -> 问询 -> 购买 -> 离开
- 这就是生活中的程序,为了完成买火车票这件事,而进行的一系列步骤。
- 现在我们只需要使用12306或者第三方的APP就可以线上购买,无需前往火车站。
- 下载APP -> 搜索指定日期的指定起始站的车次 -> 选择时间 -> 选择席位 -> 购买 -> 离开
- 这就是计算机程序,为了完成线上购买火车票这件事,而进行的一系列步骤。
- 大多数计算机程序都是为了解决现实生活程序不足而产生的。
查老师有话说: 千万记住,开发程序绝对不能脱离现实!在遇到程序问题,多思考生活中的一些程序思路。
多思考生活中的业务逻辑,这是关键。
1.2 编程语言概述
指令:完成某件事的每一个步骤。
生活中,指令的下达需要交给专门的人来做,计算机中,指令的下达需要交给计算机来做。
生活中下达指令,对应的人能听懂你在说啥。而计算机能听懂我们吗?
显然是不能的,计算机是识别二进制的(0,1组成,生活中我们主要使用的十进制,只包含0到9)。
我们无法和它沟通,除非你也使用二进制( 机器语言 ),显而易见,我们使用二进制是比较困难的,所以在程序发展中,出现了 汇编语言 (利用二进制写了一个程序,专门做简单的"翻译"工作,例如:我写了一个 add ,经过这个翻译官就将其翻译为对应的二进制)。
再随后,当C语言出现之后,整个程序开发(指令编写)变成了高级语言 (写的东西尽量能被人更容易的阅读),实际上高级语言想要使用,需要一个更高级的 “翻译官”(编译器)。
主流的编程语言:
- C语言
- C++
- C#
- Python
- Java
- JavaScript
- SQL
- R
- …
一般程序员都需要掌握至少5-6种语言,语言的思想都是相通,要解决的问题也是一样的,所以如果已经掌握了一门语言再去学习会简单。
大多数人都是以一到两门语言为主,其他语言为辅。
1.3 Java语言概述
-
1990年诞生,Java前身 Oak。
- 詹姆斯·高斯林博士领导开发的一个语言
- 当时博士在Sun公司(升阳公司)工作,该公司的当时认定机顶盒市场非常有价值,打算进军该领域,Green Project 工作计划。
- 最初博士打算用现有的语言来进行开发工作,但是开发过程中发现现有的语言 C 和 C++,在语法和使用方面非常令人作呕。于是乎,为了更好进行工作,领导开发了一个新语言。
-
… 该计划"破产",计划终止,Oak被雪藏了。
-
1995年诞生,Java诞生。
- 网景公司在探寻一种能够在浏览器中进行编程开发的语言。
- Sun公司发现自己就有一个语法、性能、使用都不错的语言。
- Oak -> Java
- 一下子火爆全球
-
1996年,推出开发工具包
-
1998年,Java 分化为了三个方向。 1.2 版本
- J2SE(Java 2 Platform,Standard Edition):Java 标准版本
- (同样作为核心部分)用于桌面程序开发领域
- Windows中使用的程序一般都是 C ++ 开发的,有其系统支持。
- 微软当时基于Java做了改造,出品 J ++,但被 SUN 公司告了,也是被收回了授权
- 微软2000年开发了一个 C# 语言(在前期的语法基本和 Java 一样)
- 以前Windows系统内置Java开发环境,现在没有了
- J2EE(Java 2 Platform,Enterprise Edition):Java 企业版
- (基于SE扩展的部分)用于服务器开发领域,例如:你使用过的各类网站、APP的后端
- Java的生态可以说是最完备的
- J2ME(Java 2 Platform,Micro Edition):Java 微终端版本
- (基于SE扩展的部分)用于移动端类的领域
- 安卓的出现,直接将该领域市场和IOS二分天下
- 安卓底层大量的API都是基于Java写的(在以前Java程序员有一个分支就是学安卓,因为基础是一样的)
- Oracle 把 Google 告了,Android 使用了 Java 核心内容。
- 2017年,Google 将 Kotlin 语言定义官方开发语言。
- J2SE(Java 2 Platform,Standard Edition):Java 标准版本
-
2004年,Java新增了很多好用的特性
- J2SE -> Java SE
- J2EE -> Java EE
- J2ME -> Java ME
- Java 1.1、… Java 5、Java 6…
-
2009年,Oracle收购Sun公司,Java也一并归属Oracle公司
-
2013年中期,Java 8出现,影响深远
- 对于后续版本迭代,开始更改为半年一更新。
- 但是对于版本也有长期支持版和临时支持版划分。
- Java 8是长期更新, Java11也是长期更新…
-
2019年,Oracle更改了Java使用协议,影响到了一些后续的更新使用
- 商业收费
- Java 8 2019年1月1日后的更新需要收费
-
2020年的现在,即将发布Java 16。
2. 掌握Java开发环境的搭建
2.1 JDK和JRE的概述
JDK: 一种SDK(软件开发工具包),Java Development Kit(Java开发工具包),如果要是做Java开发必须安装此软件 ,它提供了编译、运行 Java 程序所需的各种工具和资源,包括 Java 编译器、Java 运行时环境(JRE
),以及常用的 Java类库等。
JRE: Java Runtime Environment(Java运行时环境),如果想要运行Java程序,必须要有它。
JDK 中内置了一个 JRE。
2.2 JDK的选择
-
选择厂家
- Oracle JDK
- Oracle
- Open JDK(Sun公司搞出来的开源版本,比正式版少一些商业特性)
- 亚马逊
- IBM
- RedHat
- 华为,毕昇JDK
- 阿里巴巴,Drgronwell JDK
- 腾讯,Kona JDK
- Oracle JDK
-
选择版本
- JDK 6
- JDK 7
- JDK 8
- JDK 11
- …
你发任你发,我用 Java 8。
技术选择应该选择稳定、成熟,而不是任由自己的喜好,或者一味追求最新的。
2.3 下载和安装
Oracle JDK 8。
如果电脑上已经安装过了JDK,先卸载,以免你的环境出现毛病(还得找我)。
- 找到控制面板 -> 程序和功能
- 右键卸载即可
- 卸载两个(如果有更多版本,全卸掉)
- 双击下载的exe程序
2.4 配置JAVA_HOME
2.4.1 环境变量是什么?
环境变量(environment vaiables)一般指在操作系统中用来指定/存储操作系统运行环境的一些参数。
一般环境变量中的变量信息是操作系统中各个程序可以公用的。
2.4.2 path环境变量
path 环境变量的作用:(path,路径)(在path环境变量中存储的就是一些程序路径)
- 当我们在Windows或DOS中运行一个程序,而没有告诉他这个程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还会到path环境变量中寻找。
编辑环境变量的方式: 开始菜单中搜索 环境变量
,在搜索到的结果中,选择 编辑系统环境变量
。 -> 系统属性的高级选项卡中 -> 点击下方的环境变量
按钮,即可进入环境变量列表界面。根据你的需求选择某个环境变量进行编辑即可。
2.4.3 配置JAVA_HOME
在系统变量列表中,我们可以找到 Path环境变量, 双击可以进入编辑状态。
在Path环境变量的目录列表中,可以新建一个新的程序地址,例如:我的Java.exe在d:\develop\java\jdk1.8.0_2020\bin
目录下,那就把这个目录地址存储在Path环境变量中。
但是仅仅如此做,后期我们安装了一些需要使用Java的程序时,它们在找Java安装位置时是找不到,可能导致它们无法运行。
我们可以在环境变量中配置一个 JAVA_HOME
然后存储Java的安装地址,这样这些程序就可以找到Java的位置了。
我们发现 Path环境变量中刚配置的java.exe程序地址,和JAVA_HOME变量值仅差一个bin目录的区别,为了提升该变量的复用性,我们可以在 Path环境变量中引用 JAVA_HOME 变量。
当未来,Java安装目录更换了之后,我不需要又更改Path内的地址,又更改JAVA_HOME。
现在只需要改JAVA_HOME值即可。
配置好之后,重新打开DOS系统,原有的窗口全部关掉。
标签:01,Java,语言,JDK,程序,概述,JAVA,环境变量 来源: https://blog.csdn.net/YuFae/article/details/113884051
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。