Java基础 开发相关的介绍和准备(开发环境搭建)

news2024/11/23 0:36:48

Java 概述

  • 是 SUN(Stanford University Network,斯坦福大学网络公司 ) 1995 年推出的一门高级 编程语言。

  • 是一种面向 Internet 的编程语言。Java 一开始富有吸引力是因为 Java 程序可以在 Web 浏览器中运行。这些 Java 程序被称为 Java 小程序(applet),内嵌在 HTML 代码 中。

  • 伴随着互联网的迅猛发展,以及 Java 技术在 web 方面的不断成熟,已经成为 Web 应 用程序的首选开发语言。

Java 语言简史

起步阶段:

1991 年,Sun 公司的工程师小组想要设计一种语言,应用在电视机、电话、闹 钟、烤面包机等家用电器的控制和通信。由于这些设备的处理能力和内存都很有码短小、紧凑且与平台无关(即不能与任何特定的体系结构捆绑在一起)。

Gosling 团队率先创造了这个语言,并命名为“Oak"(起名的原因是因为他非常 喜欢自己办公室外的橡树)。后因智能化家电的市场需求没有预期的高,Sun 公 司放弃了该项计划。

随着 20 世纪 90 年代互联网的发展,Sun 公司发现该语言在互联网上应用的前 景,于是改造了 Oak,于 1995 年 5 月以 Java 的名称正式发布。(Java 是印度 尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。)

发展阶段:

发行版本发行时间备注

Java 1.0

1996.01.23

Sun 公司发布了 Java 的第一个开发工具包

Java 1.1

1997.02.19

JavaOne 会议召开,创当时全球同类会议规模之最。

Java 1.2

1998.12.08

Java 拆分成:J2SE(标准版)、J2EE(企业版)、 J2ME(小型版)

Java 1.3

2000.05.08

Java 1.4

2004.02.06

Java 5.0

2004.09.30

1版本号从 1.4 直接更新至 5.0;2平台更名为 JavaSE、JavaEE、JavaME
Java 6.0

2006.12.11

2009.04.20 Oracle 宣布收购 SUN 公司

2009.04.20

Oracle 公司收购 SUN,交易价格 74 亿美元

Java 7.0

2011.07.02

Java 8.0

2014.03.18

此版本是继 Java 5.0 以来变化最大的版本。是长期 支持版本(LTS)

Java 9.0

2017.09.22

1此版本开始,每半年更新一次;2Java 9.0 开始不 再支持 windows 32 位系统

Java 10.0

2018.03.21

Java 11.0

2018.09.25

JDK 安装包取消独立 JRE 安装包,是长期支持版本 (LTS)

Java 12.0

2019.03.19

Java17.0

2021.09

发布 Java 17.0,版本号也称为 21.9,是长期支持版 本。

Java19.0

2022.09

发布 Java19.0,版本号也称为 22.9

Java 之父

  • 詹姆斯·高斯林(James Gosling)先生以“Java 技术之父”而闻名于世。他是 Java 技 术的创始人,他亲手设计了 Java 语言,并开发了 Java 编译器和 Java 虚拟机,使 Java 成为了世界上最流行的开发语言。

  • James Gosling 于 1984 年加入 Sun 公司,并一直服务于 Sun 公司,直至 2010 年前 后,Sun 被 Oracle 并购而加入 Oracle,担任客户端软件集团的首席技术官; 2010 年 4 月从 Oracle 离职。

Java 技术体系平台

Java SE(Java Standard Edition)标准版

  • –  支持面向桌面级应用(如 Windows 下的应用程序)的 Java 平台,即定位 个人计算机的应用开发。

  • –  包括用户界面接口 AWT 及 Swing,网络功能与国际化、图像处理能力以及 输入输出支持等。

  • –  此版本以前称为 J2SE

Java EE(Java Enterprise Edition)企业版

  • –  为开发企业环境下的应用程序提供的一套解决方案,即定位在服务器端的 Web 应用开发。

  • –  JavaEE 是 JavaSE 的扩展,增加了用于服务器开发的类库。如:Servlet 能够 延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP 是一 种可以将 Java 程序代码内嵌在网页内的技术。

  • –  版本以前称为 J2EE

Java ME(Java Micro Edition)小型版

  • 支持 Java 程序运行在移动终端(手机、机顶盒)上的平台,即定位在消 费性电子产品的应用开发

  • –  JavaME 是 JavaSE 的内伸,精简了 JavaSE 的核心类库,同时也提供自己的 扩展类。增加了适合微小装置的类库:javax.microedition.io.*等。

  • –  此版本以前称为 J2ME

注意:Android 开发不等同于 Java ME 的开发

 

Java 开发环境搭建

什么是 JDK、JRE

JDK (Java Development Kit):是 Java 程序开发工具包,包含 JRE 和开发人员使用的工 具。

JRE (Java Runtime Environment) :是 Java 程序的运行时环境,包含 JVM 和运行时所 需要的核心类库。

如下是 Java 8.0 Platform:

JDK = JRE + 开发工具集(例如 Javac 编译工具等)

JRE = JVM + Java SE 标准类库

JDK 版本选择

  • 自 Java 8 版本发布以来,其后的每次更新,都会有小伙伴高呼:Java8 YYDS!

  • 论坛的声音:“你发任你发,我用 Java 8!”

  • JRebel 于 2022 年 4 月前后发布了《2022 年 Java 生态系统状况报告》,报告 中提到使用 Java11 的占比最多,Java 8 紧随其后,如下图。而此前 2020 年的 报告显示,Java8 占比达到了 84.48%。

  • 我的分析:G1 是最受欢迎的 GC 算法。Java 11 及更高版本的 G1 收集器是默认的 GC,而 Java 8 中并不是。出于对 G1 的喜爱,很多开发者才会选择抛 弃 Java 8。

  • 此外,某美国软件开发商在对近千名专业的 Java 开发者调研后,发布的《2022 年 Java 开发者生产力报告》称:八年前发布的 Java 8 依然是 Java 中应用最广 泛的版本,占比 37%,其次是 Java 11,占比 29% 。

  • 在 Java 17 正式发布之前,Java 开发框架 Spring 率先在官博宣布,Spring Framework 6 和 Spring Boot 3 计划在 2022 年第四季度实现总体可用性的高端 基线:

  • Java 17+(来自 Spring Framework 5.3.x 线中的 Java 8-17)

  • Jakarta EE 9+(来自 Spring 框架 5.3.x 线中的 Java EE 7-8)

    Spring 官方说明:https://spring.io/blog/2022/01/20/spring-boot-3-0- 0-m1-is-now-available

  • 意味着:springboot3.0 是需要用 java17 和 spring6.0 为基础建设。如 果从企业选型最新 springboot3.0 作为架构来说,它搭配 jdk17 肯定是 标配了。

JDK 的下载 

  • 下载网址(Oracle 公司官网):www.oracle.com

  • 下载步骤:如图所示,在官网底部选择 Developers 开发者

在 Developers 页面中间的技术分类部分,选择 Java,单击进入,如图所 示:

这里展示的是最新 Java 版本,例如 Java17。单击 Download Java,然后 选择具体的版本下载。

选择 Download Java 按钮后

如果想安装 Java8 可以选择如下位置: 

选择 Accept License Agreement,

注册或登录后下载:

如果需要安装其它版本,可以选择 Java archive:  

接着进行选择下载即可:

JDK 的安装 

安装说明:

傻瓜式安装,下一步即可。

建议:安装路径不要有中文或者空格等特殊符号。

会同时安装 JDK8 和 JDK17,并以 JDK17 为默认版本进行讲解。

安装步骤:

(1)双击 jdk-17_windows-x64_bin.exe 文件,并单击下一步,如图所示:

修改安装路径,单击更改,如图所示:

 将安装路径修改为 D:\develop_tools\jdk\jdk-17.0.2\,并单击下一 步,如图所示:

稍后几秒,安装完成,如图所示: 

理解 path 环境变量

什么是 path 环境变量?

window 操作系统执行命令时,所要搜寻的路径。

为什么配置 path?

希望在命令行使用 javac.exe 等工具时,任意目录下都可以找到这个工具所 在的目录。

以 JDK 为例演示

我们在 C:\Users\songhk 目录下使用 javac 命令,结果如下:

我们不可能每次使用 java.exe,javac.exe 等工具的时候都进入到 JDK 的安装目 录下,太麻烦了。这时就需要配置 path 环境变量。

 JDK17 配置方案:自动配置

不管大家有没有提前安装 JDK8 或其它版本 JDK,在我们安装完 JDK17 之后,理 应按 JDK8 的方式配置 path 环境变量。但是,我们发现在安装完 JDK17 以后, 配置环境变量之前,执行 CMD 指令:

自动进行了环境变 量的配置。如下:

 

这里建议,将 JDK17 安装的路径,设置为 JAVAHOME,并将 `%JAVAHOME%\bin`上移到首位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/530926.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学系统集成项目管理工程师(中项)系列22a_信息化知识(上)

1. 战略资源 1.1. 信息 1.2. 土地 1.3. 能源 1.4. 材料 2. 信息information 2.1. 客观事物状态和运动特征的一种普遍形式 2.2. 控制论 2.2.1. 维纳Norbert Wiener 2.2.2. 信息就是信息,既不是物质也不是能量 2.3. 哲学界 2.3.1. 信息是事物普遍联系的方式…

通过xshell连接甲骨文服务器并安装宝塔详细图文教程避免踩坑

问题: 一,甲骨文创建好了,并且下载了私钥,怎么连接?忘记下载了怎么办? 二,xshell怎么使用? 三,宝塔怎么安装? 起点: 最近有幸注册了一个甲骨…

SpringBoot--Lombok--Initailizr--yaml

目录 SpringBoot--Lombok Lombok 介绍 ● Lombok 作用 ● SpringBoot 和IDEA 官方支持 Lombok 常用注解 Lombok 应用实例 代码实现 在pom.xml 引入lombok 修改Furn.java 使用Lombok 注解简化代码, 解读 NoArgsConstructor AllArgsConstructor ToString Setter Ge…

多种方法解决Please specify which branch you want to merge with的错误

文章目录 1. 复现错误2. 分析错误3. 解决错误3.1 远程有分支3.2 远程无分支 4. 总结 1. 复现错误 今天发布某版本的项目,准备创建个v0point1分支,后期如果修改该版本,直接在该分支上修改即可。 首先,使用git branch v0point1命令…

软考A计划-真题-分类精讲汇总-第十三章(专业英语)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

红黑树的实现

文章目录 红黑树前言1. 红黑树的概念及性质1.1 红黑树的概念1.2 红黑树的性质 2. 红黑树的结构2.1 红黑树节点的定义2.2 红黑树的结构 3. 红黑树的操作3.1 红黑树的查找3.2 红黑树的插入处理红黑树颜色的过程(重点)情况1: 只变色情况2: 变色 单旋情况3: 变色 双旋 处理颜色的…

ubuntu深度学习使用TensorFlow卷积神经网络——图片数据集的制作以及制作好的数据集的使用

首先我事先准备好五分类的图片放在对应的文件夹,图片资源在我的gitee文件夹中链接如下:文件管理: 用于存各种数据https://gitee.com/xiaoxiaotai/file-management.git 里面有imgs目录和npy目录,imgs就是存放5分类的图片的目录,里面…

哈工大计组大作业-RISC处理器设计

RISC_CPU_HIT RISC处理器设计 地址:https://github.com/944613709/Design-of-RISC-Processor.git 要求 根据计算机组成原理课程所学的知识,设计一个给定指令系统的处理器,深刻理解处理器结构和计算机系统的整体工作原理。 1. 处理器功能及…

软件工程(二) 软件开发模型

软件开发模型主要了解如下这些模型,加粗表示重点要掌握的模型。 瀑布模型: 迭代模型/迭代开开发方法 演化模型: 快速开发应用 增量模型: 构建组装模型/基于构建的开发方法 螺旋模型: 统一过程/统一开发方法 原型模型: 敏捷开发方法 喷泉模型: 模型驱动的开发方法 V模型: 基于架…

C/C++每日一练(20230516) 最佳时机、两数相加、后序遍历

目录 1. 买卖股票的最佳时机 🌟 2. 两数相加 🌟🌟 3. 二叉树的后序遍历 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 买卖股票…

D2. Red-Blue Operations (Hard Version)(思维/贪心/前缀和)

建议先从easy version开始做。 easy version题解 题目 题意 给定长度为n(1<n<200000)的数组 1<a[i]<10^9 q个查询(1<q<200000)&#xff0c;每次查询&#xff0c;给定整数k(1<k<10^9) 初始时&#xff0c;每个元素状态都是红色。 对于第i次操作&…

【小沐学Unity3d】Unity插件之天气系统UniStorm

文章目录 1、简介1.1 描述1.2 兼容性1.3 价格1.4 特点1.5 示例 3、安装3.1 新建Unity项目3.2 安装插件UniStorm3.3 介绍UniStorm工具栏3.4 入门使用 4、脚本开发4.1 接口简介4.1.1 天气4.1.2 时间4.1.3 程度4.1.4 季节4.1.5 系统4.1.6 其他 4.2 接口测试4.2.1 测试1 结语 1、简…

教你如何使用Nodejs搭建HTTP web服务器并发布上线公网

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 转载自内网穿透工具的文章&#xff1a;使用Nodejs搭建HTTP服务&#xff0c;并实现公网远程访问「内网穿透」 前言 Node.js…

60岁的机器视觉工程师,你还在敲代码?不想做机器视觉工程师,还可以做什么?机器视觉工程师职业生命线有多长​?

如果按程序员参加工作时间为22岁计算,平均退役年龄为35岁计算的话,程序员的职业寿命大概为14年。为什么程序员的职业生命线如此短暂呢?大致有以下几点—— 1、编程技术层出不穷,迭代速度非常快,这时候就需要我们不断的学习,不断地保持学习能力,当随着年龄的增长我们的学…

【数据结构】链表:带头双向循环链表的增删查改

本篇要分享的内容是带头双向链表&#xff0c;以下为本片目录 目录 一、链表的所有结构 二、带头双向链表 2.1尾部插入 2.2哨兵位的初始化 2.3头部插入 2.4 打印链表 2.5尾部删除 2.6头部删除 2.7查找结点 2.8任意位置插入 2.9任意位置删除 在刚开始接触链表的时候&…

86. print输出函数知识拓展(有练习题)

86. print输出函数知识拓展&#xff08;有练习题&#xff09; 文章目录 86. print输出函数知识拓展&#xff08;有练习题&#xff09;1. print函数语法2. 横着输出数字序列3. 竖着输出数字序列4. 循环输出5. 总结 1. print函数语法 print[prɪnt]&#xff1a;打印&#xff0c;…

少儿编程scratch -- 基础篇

1.开篇 花费40分钟 首先&#xff0c;我们学的是scratch(划痕&#xff09;&#xff0c;Scratch 是麻省理工学院的“终身幼儿园团队”在 2007 年 [5] 发布的一种图形化编程工具&#xff0c;主要面对全球青少年开放&#xff0c;是图形化编程工具当中最广为人知的一种&…

ShardingSphere-JDBC整合SpringBoot JPA读写分离失败

问题 最近在整合ShardingSphere JDBC和Spring Boot的时候遇到一个问题,当ORM框架使用JPA时,读写分离会失效,查询仍然走主库并不会走从库!同样的配置使用Mybatis就没有任何问题。 在查阅各种资料后,初步确定未JPA事务问题 ShardingSphere负载均衡算法 我当前使用的版本是…

FIDO认证 无密码的愿景

目录 1、简介 2、关于FIDO联盟 3、FIDO如何工作 3.1 FIDO 注册 3.2 FIDO登录 4、FIDO2 4.1 W3C WebAuthn 4.2 CTAP2 4.3 CTAP1 4.4 FIDO UAF 4.5 FIDO U2F 5、FIDO身份验证的优势 5.1 安全 5.2 便利性 5.3 隐私政策 5.4 可扩展性 1、简介 FIDO&#xff08;在线…

Python 爬虫(一):爬虫伪装

1 简介 对于一些有一定规模或盈利性质比较强的网站&#xff0c;几乎都会做一些防爬措施&#xff0c;防爬措施一般来说有两种&#xff1a;一种是做身份验证&#xff0c;直接把虫子挡在了门口&#xff0c;另一种是在网站设置各种反爬机制&#xff0c;让虫子知难而返。 2 伪装策…