Java 介绍与环境搭建

news2025/1/15 6:36:36

文章目录

  • Java 介绍与环境搭建
    • Java 背景介绍
      • Java 背景故事
      • Java 三大平台
        • Java SE
        • Java ME
        • Java EE
    • Java 跨平台工作原理
      • 平台与跨平台
      • 跨平台工作原理
    • JDK 下载和安装
      • 下载 JDK
      • 安装 JDK
    • 第一个 Java 程序
      • HelloWorld 介绍
      • Java 程序开发的三个步骤
      • HelloWorld 案例的编写和运行
    • HelloWord 案例详解
      • HelloWorld 案例代码详解
      • HelloWorld 案例常见问题
    • JDK 的组成
    • 配置 JAVA_HOME
      • 一个神奇的现象
      • JAVA_HOME 配置方式
      • 注意事项

Java 介绍与环境搭建

Java 背景介绍

Java 背景故事

Java 语言是美国 Sun 公司(Stanford University Network)在 1995 年推出的计算机语言。后被 Oracle 公司收购。

Java 之父:詹姆斯·高斯林(James Gosling)。

image-20230113210357630

Java 三大平台

  • Java SE
  • Java ME
  • Java EE

Java SE

Java SE : Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。

桌面应用 :用户只要打开程序,程序的界面会让用户在最短的时间内找到他们需要的功能,同时主动带领用户完成他们的工作并得到最好的体验。

学习 Java SE 的目的 : 为今后要从事的 Java EE 开发,打基础。

示例:

电脑自带的计算器:

image-20230113210808086

坦克大战游戏:

image-20230113210825829

Java ME

Java ME : Java 语言的(小型版),用于嵌入式消费类电子设备。

image-20230113210857152

现已淘汰,了解即可:

image-20230113210930888

Java EE

Java EE : Java 语言的(企业版),用于 Web 方向的网站开发。

唯品会:

image-20230113211019980

京东:

image-20230113211056441

淘宝:

image-20230113211117317

网页:用于数据展示

网站:网页 + 后台服务器

下面是一个网站:

image-20230113211327673

用户输入用户名和密码:

image-20230113211359849

点击登录,将用户名和代码发送到后台服务器:

image-20230113211521181

服务器对输入的用户名和密码进行验证:

image-20230113211637949

Java 跨平台工作原理

平台与跨平台

平台:指的是操作系统。

  • Windows
  • MacOS
  • Linux

跨平台:Java 程序可以在任意操作系统上运行。

难道不是所有的语言都支持跨平台吗?这里我们以C#为例:

image-20230113211939685

image-20230113212024457

跨平台工作原理

image-20230113212112201

总结:在需要运行 Java 应用程序的操作系统上,安装一个与操作系统对应的Java虚拟机(JVM Java Virtual Machine)即可。

跨平台实例:

以我们经常玩的手机游戏为例:

image-20230113212415649

我们可以在电脑上借助手机模拟器,实现跨平台使用:

image-20230113212521947

JVM虚拟机本身是否可以跨平台?

JVM 虚拟机本身不允许跨平台,允许跨平台的是 Java 程序

JDK 下载和安装

下载 JDK

JDK(Java Development Kit)

首先我们先了解一下 JDK 的版本:

image-20230113213034516

最新版本已经到了19了,但是我们还是使用长期支持版本。

长期支持版本有3个,分别是 Java(8.0)、Java(11.0)、Java(17.0),其中:

Java8是目前企业使用最多的一个版本,它的兼容性最好、稳定性最强。

Java11目前也是比较稳定的一个版本,现在部分公司已经开始由Java8转11。

这里我们使用的是Java17。

通过官方网站获取 JDK

http://www.oracle.com

点击产品:

image-20230113220355583

选择Java

image-20230113220432142

点击下载 Java:

image-20230113220505299

下载 JDk:

image-20230113220744356

注意:针对不同操作系统,下载对应的 JDK。

下载成功:

image-20230113220914364

安装 JDK

安装到 [自己能找到] [纯英文] 的路径下,例如 D:\Develop\jdk。

在 D 盘新建一个文件夹:

image-20230113221126388

找到安装包,双击:

image-20230113221235747

点击下一步:

image-20230113221437875

设置安装路径:

image-20230113221747960

点击安装:

image-20230113221821990

安装成功:

image-20230113221932771

查看安装版本:

image-20230113222439726

第一个 Java 程序

HelloWorld 介绍

HelloWorld中文意思是『你好世界』

该程序的效果就是在让程序帮我们展示一段文字,内容为 HelloWorld

image-20230114085032585

Java 程序开发的三个步骤

  1. 编写代码
  2. 编译代码
  3. 运行代码

image-20230114085101884

HelloWorld 案例的编写和运行

新建文本文档文件,修改名称为 HelloWorld.java

image-20230114085255631

用记事本打开 HelloWorld.java文件,输写程序内容

public class HelloWorld{
	public static void main(String[] args){
		System.out.println("HelloWorld");
	}
}

image-20230114085710158

使用 javac.exe [编译] 使用 java.exe [运行]

image-20230114094950824

HelloWord 案例详解

HelloWorld 案例代码详解

image-20230114100618827

HelloWorld 案例常见问题

image-20230114100650429

原意是臭虫或者虫子,现在用来指代在电脑系统或者程序中隐藏的一些问题或者漏洞。

Bug由来

BM 在1944年建造了当时最大的机电计算机之一:Harvard MarkⅠ,它是给二战同盟国建造的,有76万5千个组件,300万个连接点和500英里长的导线。这台及其最早的用途之一是给“曼哈顿计划”模拟。Harvard MarkⅠ有3500个继电器,由于当时的继电器寿命,几乎每天都需要更换一个故障继电器,此外这些巨大、黑色、温暖的及其也会吸引昆虫。

1945年,计算机还是由机械式继电器和真空管驱动的,机器有房间那么大。体现当时技术水平的Harvard MarkⅡ,是由哈佛大学制造的一个庞然大物。1947年9月,Harvard MarkⅡ的操作员检查故障时,发现这台巨大的计算机内部一组继电器的触点之间有一只死掉的飞蛾,这显然是由于飞蛾受光和热的吸引,飞到了触点上,然后被高电压击死。Grace Hopper曾说:“从那时起,每当电脑出了问题,我们就说它有了虫子”(From then on, when anything went wrong with a computer, we said it had bugs in it.)。

格蕾丝·霍波(Grace Hopper,是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。),格蕾丝·霍波其实并不是那位发现这只飞蛾的人,她只是欣然承认了而已。发现飞蛾的操作员,包括威廉姆·比尔·伯克,伯克在弗吉尼亚州达尔格伦的海军武器实验室,熟悉工程术语,好逗乐,给飞蛾写下了“首个发现bug的实际案例”。这个日志本现存于史密森尼国立美国历史博物馆,飞蛾还完整地贴于其上。

image-20230114101030214

image-20230114100927975

image-20230114101044576

常见问题:

  1. Windows的文件扩展名没有勾选

    image-20230114101324603

    解决方案:必须勾选文件扩展名,再新建Java文件。

  2. 代码写了,但是忘记保存了

    image-20230114101352405

  3. 文件名和类名不一致。

    image-20230114101428971

  4. 大小写错误,单词拼写错误,存在中文符号,找不到main方法。

    image-20230114101452511

  5. 括号不配对。

    image-20230114101512239

  6. 编译或执行工具使用不当

image-20230114101559504

一个什么错都犯过的程序员,才是真正的程序员!

image-20230114101620231

JDK 的组成

  • JVM(Java Virtual Machine):Java虚拟机, 真正运行Java程序的地方
  • 核心类库:Java自己写好的程序,给程序员自己的程序调用的
  • JRE(Java Runtime Environment): Java的运行环境
  • JDK(Java Development Kit): Java开发工具包(包括上面所有)

image-20230114110326338

配置 JAVA_HOME

一个神奇的现象

  • 目前写好的 HelloWorld.java 文件, 移动到其它盘符下好像也可以使用到

    javac.exe java.exe

  • 目前较新的JDK安装时会自动配置 javac、java 程序的路径到Path环境变量中去

    因此,javac、java 可以直接使用

Java帮助我们配置的环境,仅仅包含了4个工具。

image-20230114112743254

image-20230114112008189

默认配置功能不全,将影响到将来要学习的另一个开发软件。

image-20230114112055610

JAVA_HOME 配置方式

方法一(不推荐):

先将安装时配置的环境变量删除,将jdk的安装路径复制到 Path 中:

image-20230114115100275

image-20230114114750332

注意:这样可能会产生一些其他问题。

方法二:

image-20230114112331327

新建 JAVA_HOME:

image-20230114115504409

在 Path 中新建环境变量:

image-20230114115600462

image-20230114115718179

验证环境配置:

image-20230114115801676

Java17的话比以前安装的java8安装过程更简洁一点,无需再配置 JAVA_CLASS。

注意事项

从 Win8 开始,电脑重启后可能会出现环境变量失效问题解决方案:

  1. 重新打开 path 环境变量,无需做任何改动,点击确定不使用

    image-20230114120125363

  2. JAVA_HOME 将bin目录的完整路径配置到 path 中

image-20230114114750332

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

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

相关文章

如何通过Terraform Associate考试并获得证书

1 什么是Terraform? Terraform是一个IaC工具,IaC全称为Infrastructure as Code,基础设施即代码。它的理念是通过代码来管理基础设施,如服务器、数据库等,更多请看《Terraform入门教程,示例展示管理Docker和Kubernete…

mysql快速生成100W条测试数据(5)商品销售数据并存入mysql数据库

这是之前的文章里面包含一些以前的一些操作流程可以进行参考学习 更加详细操作步骤在第一篇文章里面 mysql快速生成100W条测试数据(1):游戏人物数据 mysql快速生成100W条测试数据(2)公司员工信息 mysql快速生成100W条测…

Linux USB实现网络共享

usb 网络共享 两个Linux设备之间实现USB网络共享,类似Android手机开启USB网络共享的功能。其中一台设备为USB Host,另外一台为USB Device。Device使用的USB接口必须为USB Slave,否则无法正常工作。使用RNDIS驱动,还能够通过USB与…

【ROS2入门】介绍 eloquent 版本中 turtlesim 和 rqt 使用

大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,在上一篇中,我们Jeston TX1 核心模块,JetPack_4.6.3刷机后环境中安装了 ROS2 eloquent版本,并完成了初步的…

C语言-动态内存分配(12.1)

目录 思维导图: 1.为什么存在动态内存分配 2.动态内存函数的介绍 2.1 malloc 2.2 free 2.3 calloc 2.4 realloc 3.常见的动态内存错误 写在最后: 思维导图: 1.为什么存在动态内存分配 我们现在学习了一些内存开辟的方式&#xff1a…

IDEA如何把自己改动的代码一次性发给别人

背景介绍: 想把自己改动的代码同步给同事 方式1:通过git,把自己本地代码 push 到代码托管平台,同事从代码托管平台 pull 最新代码; 方式2:通过IDEA的Patch包的方式来快速发送修改的代码(步骤如下…

pr值高的域名对网站有什么价值?怎么在线查询搜狗PR权重

众所周知一个全新的搜狗域名在建立网站后搜索引擎会对其进行一个类似资格评价的阶段,我们将这个阶段称为沙盒,在沙盒里面的这段时间,我们将其称为沙盒期,沙盒期一般都是1-3个月。在沙盒期这段时间内。我们仍需要经常更新文章。所以…

联合证券|海南自贸港快速发展,概念股出炉!

海南自由贸易港货物进出口 初次打破2000亿元关口 1月13日,国新办就2022年全年进出口状况举行发布会。会上介绍道,近两年海南自由贸易港货物进出口快速开展,继2021年头次打破1000亿元后,2022年再上新台阶,初次打破2000…

Pytorch深度学习【十二】

填充和步幅 卷积核带来的问题—输入形状不断减小更大的卷积核可以更快的减小输出大小 形状从nh∗nwn_h * n_wnh​∗nw​减少到 (nh−kh1)∗(nw−kw1)(n_h-k_h1)*(n_w-k_w1)(nh​−kh​1)∗(nw​−kw​1) 解决方案 填充—在输入周围添加额外的行/列—一般用0填充理论依据 填充p…

Odoo 16 企业版手册 - 库存管理之报告

报告 正确监控库存操作将帮助您轻松分析和理解库存管理的工作流程。Odoo可以为您提供一个专用平台,特别是用于为您的组织中完成的库存操作生成报告,并在图形和表格视图中准确表示数据。您可以实时自定义报告,以根据您的要求获得细致的报告。在…

Nvm,Nrm使用教程

NVM介绍 NVM全称node.js version management ,专门针对node版本进行管理的工具,通过它可以安装和切换不同版本的node.js 使用场景 我目前的公司有很多项目,其中有一些老项目用的是vue2.5左右了webpack版本也比较低,只能使用10.16.…

[前端笔记——WEB基础] 1.WEB基本概念

[前端笔记——WEB基础] 1.WEB基本概念基本概念1.资源 resourse2.链接3.HTTP 协议4.网页的真实样子:HTML静态网页与动态网页1.静态网页2.动态网页现代网站架构1.网站架构当我们访问一个网站时,后台都会发生什么事情捏?www——万维网 www:Worl…

Android系统启动(三) — SystemServer处理过程

system_server 进程主要是用于创建系统服务,AMS、WMS、PMS 都是由它创建的。 具体来说,SystemServer 进程被创建后,主要做了以下工作: 启动 Binder 线程池,这样就可以与其他进程进行通信;创建 SystemServi…

JDK9下载、安装和配置环境变量图解

下载 1.输入:https://www.oracle.com/ 2.选择“java download” 3.点击“java archive” 下拉找到 java9 4.点击进入,选择windows版本 5.勾选,下载。需要账号下载 安装 1.双击安装包,下一步 2.选择安装路径,…

旅游景区官网(网站、小程序)小开发可以实现哪些功能?

伴随着我们生活水平的提升和手上的余钱愈来愈多,绝大多数人一定会选取去不同地方开展旅游,旅游也成為了经济发展的一大支撑。将来便捷用户和旅游业的发展趋势,打造出旅游景区官网(网站、H5、小程序等)开发设计是十分关…

【UE4 第一人称射击游戏】50-用另一种方法实现僵尸随机漫游 僵尸攻击玩家时造成伤害

上一篇:【UE4 第一人称射击游戏】49-僵尸攻击动画本篇效果:使用另一种逻辑实现了僵尸的随机漫游僵尸攻击玩家时会对玩家造成实质上的伤害步骤:打开“SimpleAI”,当僵尸看见玩家时,设置变量“CanSeePlayer”为False我们…

深入了解 LinkedBlockingQueue阻塞队列,分析扩容机制以及小顶堆原理

1. 前言 今天的目的是为了深入了解下优先队列的机制。不过优先队列是基于大小顶堆实现的,但是其本质就是一个二叉树,所以今天会讲一些铺垫知识,好了,废话不多说了,让我们开始吧 2. 前置知识 2.1 大顶堆 完全二叉树&am…

1.2、操作系统的特征

1、并发 并发\color{red}并发并发:指两个或多个事件在同一时间间隔内发生。 这些事件宏观上是同时发生\color{red}宏观上是同时发生宏观上是同时发生的,但微观上是交替发生\color{red}微观上是交替发生微观上是交替发生的。 并行\color{red}并行并行&am…

STM32F103学习笔记(10)——I2C多路复用器TCA9548A使用

一、简介 TCA9548A 器件配有八个可通过 I2C 总线控制的双向转换开关。串行时钟/串行数据 (SCL/SDA) 上行对可扩展为 8 个下行对或通道。根据可编程控制寄存器的内容,可选择任一单独 SCn/SDn 通道或者通道组合。这些下游通道可用于解决 I2C 从器件地址冲突。例如&…

高精度加法【c++实现】超详细讲解

高精度存在的意义 大家一定都知道int和long long是有极限的(如下表),如果超了就无法计算正确结果了,那该用什么方法来计算呢?这就是我们今天要说的算法———高精度算法。(本文只讲加法) 类型…