Java快速入门

2023-11-16

Java快速入门

  • Java概述
  • JDK介绍下载安装
  • 入门程序HelloWorld
  • JDK
  • JRE
  • 跨平台
  • Java程序执行原理

1. 人机交互

1.1 什么是cmd?

就是在windows操作系统中,利用命令行的方式去操作计算机。

我们可以利用cmd命令去操作计算机,比如:打开文件,打开文件夹,创建文件夹等。

1.2 如何打开CMD窗口?

1.1 什么是cmd?

就是在windows操作系统中,利用命令行的方式去操作计算机。

我们可以利用cmd命令去操作计算机,比如:打开文件,打开文件夹。创建文件夹等。

1.2 如何打开CMD窗口?

  1. 按下快捷键:win + R。此时会出现运行窗口。
  2. 在运行窗口中输出cmd
  3. 输出回车。

解惑:
  cmd默认操作C盘下的users文件夹下的XXX文件夹。(XXX就是计算机名)
在这里插入图片描述

1.3 常用CMD命令

扩展一个小点:

  在很多资料中都说成是DOS命令,其实是不对的。真正的DOS命令是1981年微软和IBM出品的MS-DOS操作系统中的命令才叫做DOS命令。

  而在Windows中,win98之前的操作系统是以非图形化的DOS为基础的,可以叫做DOS命令。到了2000年以后,windows逐渐的以图形化界面为主了,这个时候就不能叫做DOS命令了,他只是模拟了DOS环境而已,很多的原本的DOS命令已经无法使用了,所以这个时候叫做CMD命令会更准确一些。

常见的CMD命令如下:

操作 说明
盘符名称: 盘符切换。E:回车,表示切换到E盘。
dir 查看当前路径下的内容。
cd 目录 进入单级目录。cd itheima
cd … 回退到上一级目录
cd 目录1\目录2… 进入多级目录。cd itheima\JavaSE
cd \ 回退到盘符目录。
cls 清屏
exit 退出命令提示符窗口

1.4 CMD练习

需求:
  利用cmd命令打开自己电脑上的QQ。
完成步骤:

1,确定自己电脑上的QQ安装在哪里
2,启动cmd
3,进入到启动程序QQ.exe所在的路径。
4,输出qq.exe加回车表示启动qq。

解惑:
  在windows操作系统当中,文件名或者文件夹名是忽略大小写的。

1.5 环境变量

作用:

  如果我想要在CMD的任意目录下,都可以启动某一个软件,那么就可以把这个软件的路径配置到环境变量的PATH里面。

  在启动软件的时候,操作系统会先在当前路径下找,如果在当前目录再到环境变量的路径中去找。如果都找不到就提示无法启动。

步骤:

  • 右击我的电脑,选择属性。
  • 点击左侧的高级系统设置
  • 选择高级,再点击下面的环境变量
  • 把软件的完整路径,配置到PATH当中就可以了。
  • (可做可不做)就是把自己配置的路径,移动到最上面。

图解实例如下:

第一步:右键点击我的电脑并选择属性。
(如果无法出现第二步界面,可以打开我的电脑之后右键点击空白处)

在这里插入图片描述
第二步:点击高级系统设置。

在这里插入图片描述
第三步:选择高级,再点击下面的环境变量。

在这里插入图片描述
第四步:找系统变量里面的PATH

在这里插入图片描述
第五步:点击新建,把软件的完整路径,配置到PATH中,再点击确定即可。

第六步:(可做可不做)点击上移,把当前配置的路径移动到最上面。

移动的好处:在CMD中打开软件时,会先找到当前路径,再找环境变量,在环境变量中是从上往下依次查找的,如果路径放在最上面查找的速度比较快。

在这里插入图片描述

2. Java概述

2.1 Java是什么?

语言:人与人交流沟通的表达方式

计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言

Java是一门非常火的计算机语言。(也叫做编程语言)

我们想要让计算机做一些事情,那么就可以通过Java语言告诉计算机就可以了

2.2下载和安装

2.2.1 下载

通过官方网站获取JDK

http://www.oracle.com

注意1:针对不同的操作系统,需要下载对应版本的JDK。

注意2

​ ​ 如果你的电脑是windows32位的,建议重装系统,重装成64位的操作系统。

​​ ​ 因为Java从9版本开始,就已经不提供32位版本的安装包了。

2.2.2 安装

​ ​ 傻瓜式安装,下一步即可。默认的安装路径是在C:\Program Files下。

建议:

  • 安装路径不要有中文,不要有空格等一些特殊的符号。
  • 以后跟开发相关的所有软件建议都安装在同一个文件夹中,方便管理。

2.2.3 JDK的安装目录介绍

目录名称 说明
bin 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。
conf 该路径下存放了JDK的相关配置文件。
include 该路径下存放了一些平台特定的头文件。
jmods 该路径下存放了JDK的各种模块。
legal 该路径下存放了JDK各模块的授权文档。
lib 该路径下存放了JDK工具的一些补充JAR包。

2.3 HelloWorld小案例

  HelloWorld案例是指在计算机屏幕上输出“HelloWorld”这行文字。各种计算机语言都习惯使用该案例作为第一个演示案例。

2.3.1 Java程序开发运行流程

开发Java程序,需要写三个步骤:编写程序,编译程序,运行程序。

2.3.2 HelloWorld案例的编写

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

注意:后缀名为java的才是java文件。

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

注意:代码要跟我编写的完全保持一致。

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("HelloWorld");
	}
}
  1. 保存
    注意:未保存的文件在左上角会有*符号标记

  2. 编译文件。编译后会产生一个class文件。

    java文件:程序员自己编写的代码。

    class文件:交给计算机执行的文件。

  3. 运行代码

    注意:运行的是编译之后的class文件。

用到两个命令:

​ javac + 文件名 + 后缀名 (就是编译java文件)

​ java + 文件名(运行编译之后的class文件)

2.4 HelloWorld案例常见问题

2.4.1 BUG

​ 在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)。

2.4.2 BUG的解决

  1. 具备识别BUG的能力:多看
  2. 具备分析BUG的能力:多思考,多查资料
  3. 具备解决BUG的能力:多尝试,多总结

2.4.3 HelloWorld常见问题

1、非法字符问题。Java中的符号都是英文格式的。

2、大小写问题。Java语言对大小写敏感(区分大小写)。

3、在系统中显示文件的扩展名,避免出现HelloWorld.java.txt文件。

4、编译命令后的java文件名需要带文件后缀.java

5、运行命令后的class文件名(类名)不带文件后缀.class

常见错误代码1:

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

问题:

  public和class之间缺少一个空格。

技巧:一般来讲在单词之间的空格是不能省略的。

​  如果是单词和符号之间的空格是可以省略的。

常见错误代码2:

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

问题:

  system首字母必须大写。

技巧:

  Java代码中,是严格区分大小写的。

  所以该大写的地方一定要大写,该小写的地方一定要小写。多多练习。

常见错误代码3:

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

问题:

  第三行代码中的HelloWorld必须用双引号引起来,否则就会出现问题。

常见错误代码4:

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

问题:

  在以后代码当中,所有的标点符号必须是英文状态下的。

技巧:

  可以在输入法中进行对应的设置。

2.5 环境变量

2.5.1 为什么配置环境变量

  开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的bin目录下,如果不配置环境变量,那么这些命令只可以在bin目录下使用,而我们想要在任意目录下都能使用,所以就要配置环境变量。

注意:现在最新从官网上下载的JDK安装时会自动配置javac、java命令的路径到Path环境变量中去 ,所以javac、java可以直接使用。

2.5.2配置方式

在这里插入图片描述
以前下载的老版本的JDK是没有自动配置的,而且自动配置的也只包含了4个工具而已,所以我们需要删掉已经配置完毕的,再次重新配置Path环境变量。

JAVA_HOME:告诉操作系统JDK安装在了哪个位置(未来其他技术要通过这个找JDK)
在这里插入图片描述
Path:告诉操作系统JDK提供的javac(编译)、java(执行)命令安装到了哪个位置
在这里插入图片描述

2.5.3 win10的bug

当电脑重启之后,环境变量失效了。表示操作系统不支持自定义的环境变量。

步骤:

  • 还是要配置JAVA_HOME给以后的相关软件去使用
  • 我们可以把java和javac的完整路径配置到PATH当中。
    E:\develop\JDK\bin

2.6 Notepad++

2.6.1下载

  打开百度,搜索一下notepad++就可以了。

2.6.2 安装

傻瓜式安装,直接点击下一步就可以了。

  对安装路径有两个小建议:

  • 路径不要有中文,不要有空格,不要有一些特殊符号
  • 建议最好把所有的跟开发相关的软件都放在一起,方便管理。

2.6.3 设置

​  右键点击java文件,选择edit with notepad++。

​  点击设置,再点击首选项。在弹出的页面当中,左侧选择新建,中间选择Java,右侧选择ANSI。

2.6.4 练习

​  利用notepad++去编写一个HelloWorld并能成功编译和运行。

2.7 Java语言的发展

三个版本:

  • Java5.0:这是Java的第一个大版本更新。
  • Java8.0:这个是目前绝大数公司正在使用的版本。因为这个版本最为稳定。
  • Java15.0:这个是我们课程中学习的版本。

解惑:

​  我们学的跟工作中使用的版本不太一样啊。会不会影响以后工作呢?
向下兼容。新的版本只是在原有的基础上添加了一些新的功能而已。

举例:
用8版本开发的代码,用11版本能运行吗?必须可以的。

用11版本开发的代码,用8版本能运行吗?不一定。

如果11版本开发的代码,没有用到9~11的新特性,那么用8是可以运行的。

如果11版本开发的代码,用到了9~11的新特性,那么用8就无法运行了。

2.8 Java的三大平台

​  JavaSE、JavaME、JavaEE

2.8.1 JavaSE

​  是其他两个版本的基础。

2.8.2 JavaME

​  Java语言的小型版,用于嵌入式消费类电子设备或者小型移动设备的开发。

​  其中最为主要的还是小型移动设备的开发(手机)。渐渐的没落了,已经被安卓和IOS给替代了。

​  但是,安卓也是可以用Java来开发的。

2.8.3 JavaEE

​  用于Web方向的网站开发。(主要从事后台服务器的开发)

​  在服务器领域,Java是当之无愧的龙头老大。

2.9 Java的主要特性

  • 面向对象
  • 安全性
  • 多线程
  • 简单易用
  • 开源
  • 跨平台

2.9.1 Java语言跨平台的原理

  • 操作系统本身其实是不认识Java语言的。
  • 但是对于不同的操作系统,Java提供了不同的虚拟机。

虚拟机会把Java语言翻译成操作系统能看得懂的语言。
在这里插入图片描述

2.10 JER和JDK

在这里插入图片描述
JVM(Java Virtual Machine),Java虚拟机

JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API)

JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具

总结:我们只需安装JDK即可,它包含了Java的运行环境和虚拟机。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java快速入门 的相关文章

  • 将处理项目移至 Eclipse

    我已经在处理项目上工作了一段时间 现在想将其移至 Eclipse 中 我已经在 Eclipse 环境中安装了 Proclipse 我有很多扩展名为 pde 的文件 然而 Proclipse 文件都以 java 结尾 所有 pde 文件都存在
  • 了解 netty 通道缓冲区和水印

    我正在尝试了解网络缓冲区和水印 作为一个测试用例 我有一个 netty 服务器 它向客户端写入数据 客户端被阻止 基本上每次读取之间有 10 秒的睡眠时间 在正常 I O 下 如果接收方被阻塞 TCP 发送方将受到限制 由于流量控制 发送速
  • 类型已知,但方法指的是缺失类型

    我对 java 和 Eclipse 不太有经验 但遇到以下问题 我正在写类似的东西 Point3D myPoint myClass myMethod arg 我收到错误 方法 myMethod myType arg 引用缺失的类型 Poin
  • Java 小程序在 Mac 上闪烁

    这个问题很奇怪 问题并非在每个平台上都会发生 我在使用 MacOSX 的 Google Chrome 中出现了这种情况 但在 Safari 中却没有出现这种情况 对于使用 Windows 的朋友来说 在 Google Chrome 上运行得
  • 如何从 Java 访问 Windows 设备管理器中的信息?

    我有一个串行 USB 设备 并且其中多个设备可以连接到计算机 我需要查询和检索设备连接到的 COM 端口列表 在 Windows 设备管理器中 您可以获得当前连接的设备的 COM 端口 友好名称 该列表是动态的 从注册表中读取不工作 htt
  • GetEventLogs() 返回没有设置事件日志?

    采取以下 C 代码 EventLog eventLogs eventLogs EventLog GetEventLogs computername foreach EventLog evt in eventLogs statusMessag
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • 在拇指上方显示修改后的 JSlider 值

    有没有一种简单的方法可以在使用某些 外观和感觉 的同时更改 JSlider 上方标签中显示的值 为了清楚起见 我正在谈论这个值 具体来说 我想显示除以 1000 的值而不是值本身 我知道如果我显示它们 我可以为刻度设置标签 但用户将不得不猜
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 使用 Guava Ordering 对对象列表进行多条件排序

    我有一个类无法实现可比较 但需要根据 2 个字段进行排序 我怎样才能用番石榴实现这一目标 假设班级是 class X String stringValue java util Date dateValue 我有一个清单 List
  • Hibernate 标准接受 %% 值

    我正在使用下面的 Hibernate 代码来过滤workFlowName crt add Restrictions like workFlowName workFlow MatchMode ANYWHERE crt is the crite
  • 无法连接到docker中的elasticsearch容器

    我正在尝试使用 docker 的官方 elasticsearch 镜像 我遵循了本指南 https www elastic co guide en elasticsearch reference current docker html但是当
  • Proguard 正在破坏我的清洁度。 Gson 和泛型

    我有一个从持久性加载信息的函数 我只是以一种非常简单的方式告诉它的类型 该类称为SharedPreferencesHelper kt所以它是一个真正的生活问题解决者 fun
  • java.lang.UnsatisfiedLinkError - android studio gradle 中的 NDK?

    文件夹结构 app main java jni Android mk Application mk hello jni c res 在构建 gradle apply plugin com android application androi
  • 为什么 java.util.Arraylist#clear 按照 OpenJDK 中的方式实现?

    http grepcode com file repository grepcode com java root jdk openjdk 6 b14 java util ArrayList java 473 http grepcode co
  • 使用 Java 8 Spring 4 + MyBatis 集成问题

    使用 Java 8 1 8 0 60 Spring 4 2 1 和 MyBatis 3 3 0 时遇到以下异常 Sep 29 2015 11 02 58 AM org springframework context annotation A
  • java Web应用程序中的日期转换

    String date1 13 03 2014 16 56 46 AEDT SimpleDateFormat sdf new SimpleDateFormat dd MM yyyy HH mm ss z sdf setTimeZone Ti
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset

随机推荐

  • Linux:进程(概念)

    学习目标 1 认识冯诺依曼系统 2 认识操作系统概念与定位 系统调用接口 3 理解进程的概念 PCB 4 理解进程的状态 fork创建进程 僵尸进程及孤儿进程 5 了解进程的调度 优先级 竞争性 独立性 并行 并发 6 理解环境变量 熟悉常
  • bert结构模型的转换及[unusedxx]的不拆token

    这里写自定义目录标题 前沿 torch格式转onnc 方法1 方法2 保留 unused9 不分词 transformers模块 tensorflow模块 前沿 业界主流的模型结构包括tensorflow和pytorch 很多时候两者的模型
  • 北斗导航系统伪码定位原理,MATLAB迭代法求解

    用户到卫星的距离可以先简单理解成通过光速 时间差得到 而用户测得的是包含各种误差影响在内的距离 称之为伪距 这是伪距 是用户机钟差 加上用户三维坐标 共四个未知量 所以需要至少同时看到四颗卫星才能实现定位 设用户坐标是 X Y Z 三颗卫星
  • 13、【创业必备企业架构,可开发任意项目】SpringCloud大型企业分布式微服务云架构源码之MySQL 分组

    MySQL GROUP BY 语句 GROUP BY 语句根据一个或多个列对结果集进行分组 在分组的列上我们可以使用 COUNT SUM AVG 等函数 GROUP BY 语法 SELECT column name function col
  • SAP 在制品明细

    Report ZCO019 REPORT zco019 TABLES matdoc SELECT OPTIONS s bukrs FOR matdoc bukrs OBLIGATORY s bu
  • 【机器学习】参数与超参数

    机器学习中的模型参数和模型超参数在作用 来源等方面都有所不同 而模型超参数常被称为模型参数 这样 很容易对初学者造成混淆 本文给出了模型参数和模型超参数的定义 并进行了对比 指出了二者本质上的区别 模型参数是模型内部的配置变量 可以用数据估
  • Linux服务——nginx的配置及模块

    目录 一 nignx配置 1 nginx的配置文件 2 使用server语句块构建虚拟主机 3 alias别名 4 location语句 二 nginx模块 access模块 验证模块 自定义错误页面 日志存放位置 检测文件是否存在 长连接
  • 调整PID参数提高电机响应速度消除电机抖动

    在最近的项目问题中出现了马达抖动的问题 经过近两周的分析 最终将问题的解决锁定在PID的设置上 成功解决该问题 特记录有关信息如下 运动伺服一般都是三环控制系统 从内到外依次是电流环速度环位置环 1 首先电流环 电流环的输入是速度环PID调
  • 【uni-app】

    准备工作 Hbuilder 1 下载hbuilder 插件使用Vue3的uni app项目 2 需要安装编译器 3 下载微信开发者工具 4 点击运行 gt 微信开发者工具 5 打开微信开发者工具的服务端口 效果图 准备工作 VScode 插
  • 机器学习中常见的最优化算法

    1 梯度下降法 Gradient Descent 梯度下降法是最早最简单 也是最为常用的最优化方法 梯度下降法实现简单 当目标函数是凸函数时 梯度下降法的解是全局解 一般情况下 其解不保证是全局最优解 梯度下降法的速度也未必是最快的 梯度下
  • 【AutoJs】AutoJs实现手势模拟,点击,滑动操作

    autojs在android7以上系统支持了一些手势模拟操作 可以是基于控件也可以是基于指定屏幕坐标的 本文主要介绍基于坐标的几个手势模拟方法 1 坐标自适应 在介绍手势模拟方法前先介绍一个可根据屏幕分辨率的变化 自适应调整坐标的方法 假如
  • MATLAB从数组中以等概率随机选出不同的元素

    问题 数组a 长度为n 要求以等概率随机从a中选出m个元素 各元素不能来自相同位置 解答 用randperm函数 rand index randperm n 将序号随机排列 draw rand index rand index 1 m 取出
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 地图兴趣点搜索三(ES相关性得分参数调整)

    1 问题回顾 前面第一章 我们介绍了地图兴趣点检索的基本流程 以及如何用elasticsearch ik搭建一个简单的demo 在运行demo时我们用 通州区万达广场 去搜索 结果排第一位的结果竟然是位于朝阳区的 建国路万达广场 第二章 我
  • VsCode提示“TypeScript intellisense is disabled on template.”警告

    问题描述 在Vscode中使用Volar插件开发Vue3 TypeScript时 在vue文件的template标签上提示警告字样 警告全文 TypeScript intellisense is disabled on template T
  • C++创建对象加括号和不加括号的区别

    1 一个类或者是有构造函数的对象 类名 对象名 gt 默认调用 对象名 这个构造函数 在栈中存在对象名 在堆中存在实际对象 类名 对象名 一个以上参数 gt 默认调用对应的构造函数 在栈中存在对象名 在堆中存在实际对象 类名 对象名 gt
  • USB BC充电协议探究——单片机实现

    USB BC充电协议探究 单片机实现 随着移动设备的普及 充电需求也越来越多样化 其中 USB充电方式被广泛应用 而BC Battery Charging 充电协议是其中最常用的一种 本文将详细介绍BC充电协议的工作原理 并给出基于单片机的
  • Base64编码知识记录

    目录 编码说明 编码方式 体积增大 等号 demo 编码说明 Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法 由于 2 6 64 所以每 6 个比特为一个单元 对应某个可打印字符 Base64 常用于在通常处理文本数
  • cublas中的矩阵运算

    Cublas是一个可以与cuda一同使用的函数库 它提供了多种矩阵运算的API 但是它列主序的存储方式却让人十分疑惑 今天我就以cublas中的矩阵乘法运算简单说一下我的理解 Cublas中的矩阵乘法运算函数有5个 分别是cublasSge
  • Java快速入门

    Java快速入门 Java概述 JDK介绍下载安装 入门程序HelloWorld JDK JRE 跨平台 Java程序执行原理 1 人机交互 1 1 什么是cmd 就是在windows操作系统中 利用命令行的方式去操作计算机 我们可以利用c