day02_第一个Java程序

news2024/11/19 20:46:40

在开发第一个Java程序之前,我们必须对计算机的一些基础知识进行了解。

常用DOS命令

Java语言的初学者,学习一些DOS命令,会非常有帮助。DOS是一个早期的操作系统,现在已经被Windows系统取代,对于我们开发人员,目前需要在DOS中完成一些事情,因此就需要掌握一些必要的命令。例如:在输入DOS命令可以创建文件夹,如下图所示

如何进入DOS操作窗口 

按下Windows+R键盘,打开运行窗口,输入cmd回车,进入到DOS的操作窗口。

下面是键盘常用键位图

常用命令,如下图所示:

路径在windows系统上包括:相对路径和绝对路径。

  • 相对路径:相对路径一定是相对于当前所在“位置”而言的。相对路径是相对于当前而言,从当前所在的位置作为起点。
  • 绝对路径:在windows操作系统中凡是路径起点是盘符的都是绝对路径

Java 的加载与执行

在编写第一个 Java 程序之前,我们应当对 Java 的加载与执行提前有一个简单的了解,请看下图:

通过上图,我们可以看到 Java 程序从开发到最终运行是这样进行的:

  • 第一步(写代码):在任意位置创建一个.java 结尾的文件,程序员在该文件中编写符合 Java语法的源代码,这个文件被称为Java 源文件。
  • 第二步(编译)使用“javac”命令对 java 源文件进行编译,如果 Java 源文件符合 Java语法规则,则编译生成 1 个或者多个以“.class”结尾的文件。“.class”结尾的文件我们称之为字节码文件,注意字节码文件不是普通文本文件,使用记事本等文本编辑器是无法打开的,但该文件内容也不是二进制,如果是二进制形式的话,操作系统是可以直接执行的,这个文件的内容我们称之为字节码。注意:这里有一个“类名”的概念,假设生成的文件是 A.class,则表示类名为 A,B.class 则表示类名为 B。
  • 第三步(运行)使用“java”命令运行已编译的 Java 程序,假设编译之后的字节码文件是 A.class,则在 dos 命令窗口中执行 java A命令,这个时候 Java 虚拟机(JVM)就启动了,Java 虚拟机通过“类装载器 ClassLoader”从硬盘中找到 A.class 文件并装载,字节码文件被装 载到 Java 虚拟机之后,Java 虚拟机解释器对字节码进行解释,最终解释为二进制码,然后操 作系统通过执行二进制指令来和硬件平台完成交互。 

以上则是 Java 程序加载与执行的过程,接下来总结一下 7 条规则

  1. Java 程序从开发到运行包括编译和运行两个阶段,这两个阶段可以在不同的操作系统中完成,例如在 windows 环境下进行编译,在 Linux 环境下运行,这是因为有 JVM 机制的存在,做到了一次编译到处运行(跨平台/可移植)。
  2. 编译阶段需要使用 javac.exe命令,运行阶段需要使用 java.exe命令。
  3.  一个 Java 源文件可能会编译生成多个 class 文件。
  4. Java 源文件中的源代码如果不符合 Java 的 语法 机制则编译时编译器会提示错误信息, 并且无法生成 class 文件。反之则生成 class 文件,而 class 文件才是最终要执行的程序,此时将 Java 源文件删除是不会影响 Java 程序运行的。
  5.  若生成的字节码文件名为 A.class,那么我们称 A为一个类的名字
  6. 当编译阶段完成之后,我们可以使用 JRE 中的 java.exe 命令运行程序,例如执行命令 “java A”,该命令执行后会启动类加载器,类加载器去硬盘上搜索 A.class 文件,找到该字节 码文件之后,将其加载到 JVM 当中,JVM 中的解释器会将 A.class 字节码文件解释为操作系 统可以执行的二进制码,然后操作系统通过执行二进制码和硬件平台交互。
  7. 运行 Java 程序的前提是当前操作系统上已经安装了对应版本的 JVM(JVM 不是单独 安装的,安装 JRE 即可,不同的操作系统需要安装不同版本的 JRE,不同版本的 JRE 对应不 同版本的 JVM)。

 入门程序

开发环境已经搭建完毕,可以开发我们第一个Java程序了。 HelloWorld案例是指在计算机屏幕上输出“HelloWorld”这行文字。Java程序开发三步骤:编写编译运行

具体如下图所示:

1:编写Java源程序

在我们指定的目录下新建文本文件,完整的文件名修改为 HelloWorld.java ,其中文件名为 HelloWorld ,后缀名必须为 .java 。 在文件中键入文本并保存,代码如下:

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

第一个 HelloWord 源程序就编写完成了,Java源程序是程序员编写的,程序员自己可以看得懂得程序。本质就是一个文本文件,但是扩展名不是.txt,而是.java。JVM是看不懂的,也就不能运行,因此我们必须将编写好的 Java源文件编译成JVM可以看懂的字节码文件。 

2:编译Java源文件

JVM只能识别字节码文件(.class文件)。  如何把源文件(程序)翻译成JVM能够执行的字节码文件(程序)呢?在DOS命令行中,进入Java源文件的目录,使用 javac 命令进行编译。

编译成功后,命令行没有任何提示。打开 源文件目录,发现产生了一个新的文件 HelloWorld.class ,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。

3:运行Java程序

不管是源文件(程序)还是字节码文件(程序)都存储在硬盘中 ?不会自动执行,如何把字节码文件交给JVM执行呢 ?我们在DOS命令行中,进入Java源文件的目录,使用 java 命令进行运行。

当我们看见DOS的操作窗口打印出Hello World!,就代表我们第一个Java程序成功了。

HelloWorld案例详解

类名后面的大括号限定了类体的范围,方法名后面的大括号限定了方法体的范围

建议:

  • 一个源文件中可以有多个类,每一个类中都可以存在main方法
  • 源文件中有多少个类,编译后会生成多少个.class字节码文件。 建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。
  • 对代码进行修改后 一定要重写编译再运行才是修改的结果
  • java中使用大括号限定范围,例如:HelloWorld的后面有一对大括号{ },此对大括号 限定了类的范围。main方法的范围也是尤其后面的大括号来限定的。

在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)。出现了bug:我们要多看,多思考,多查资料,多尝试,多总结。HelloWorld案例常见问题如下所示:

HelloWorld案例常见错误总结:

  • 源文件扩展名被隐藏。
  • 文件名和类名不一致。
  • 大小写错误,单词拼写错误,存在中文符号,找不到main方法。
  • 括号不配对。
  • 编译或者执行命令使用不当。

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

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

相关文章

5 个有效好用的恢复文件和照片的 Android恢复软件推荐

当我们使用移动设备时,有时会发现设备出现问题并不少见,但最好的 android 数据恢复应用程序可能会非常有帮助。虽然大多数电话故障只需一​​两天即可修复,但在某些情况下,电话几乎没电了,您无法访问宝贵的数据。幸运的…

知识图谱学习笔记——(三)知识图谱的存储与查询

一、知识学习 声明:知识学习中本文主体按照浙江大学陈华钧教授的《知识图谱》公开课讲义进行介绍,并个别地方加入了自己的注释和思考,希望大家尊重陈华钧教授的知识产权,在使用时加上出处。感谢陈华钧教授。 (一&…

分子共价对接

共价对接 随着人们对共价抑制剂的发现越来越重视,越来越多的软件开始支持共价抑制的虚拟筛选。常用的共价对接软件有CovDock,AutoDock4,FITTED,GOLD,ICM-Pro与MOE等。共价抑制剂的典型特征是配体的亲电部分&#xff08…

【Maven】修改编码格式的多种方式

文章目录 方式一方式二方式三是否生效 为什么修改? 中文操作系统编码为GBK,Maven安装后会使用系统默认编码,编译含有中文字符的UTF-8格式源码文件时就出现编码不匹配的问题 场景:使用Maven编译项目,虽然提示编译成功&…

python-day6(补充四:私有属性与函数)

私有属性与函数 私有属性与函数的用途如何定义私有属性与函数如何访问私有属性与函数 私有属性与函数的用途 在面向对象的封装中,私有的属性与函数其根本目的是防止它们在类的外部被使用,python中主要通过命名来进行区分。 把可能使用到的东西封装起来…

用requestAnimationFrame替代setInterval制作匀速动画

了解过事件循环机制的朋友应该知道,siteTimeout和setInterval并不是精准的时间间隔,他们要等待其他优先的执行队列执行完成以后才能继续执行。 于是就引入了一个新的动画执行方式-- window.requestAnimationFrame()。它告诉浏览器——你希望执行一个动画…

少儿编程 电子学会图形化编程等级考试Scratch二级真题解析(判断题)2022年9月

2022年9月scratch编程等级考试二级真题 判断题(共10题,每题2分,共20分) 26、程序中要判断角色是否碰到舞台边缘,可以使用运动模块中的“碰到舞台边缘”积木 答案:错 考点分析:考查积木分类,碰到舞台边缘积木是侦测模块中的积木而不是运动模块中的,所以错误 27、运行…

通信原理 数字基带信号之码间串扰

通信原理 数字基带信号之码间串扰目录 1.码间串扰 2.满足无码间串扰的条件 3.例题 1.码间串扰 2.满足无码间串扰的条件 nyquist带宽 Bfnw/2Π。 nyquist速率 RB2fn (最高码元传输速率)。 若RB满足等于nRB‘ n=1、2、3、4.....时 RB’为实际…

基于mybatis的网上招聘系统源码数据库论文

目 录 摘 要 Abstract 1 绪 论 1.1 开发背景 1.2 开发意义 1.3 国内外研究现状 1.4 论文结构 2 相关技术原理和开发工具 2.1 程序语言的选择 2.1.1 Java概述 2.1.2 Java特点 2.1.3 Servlet简介 2.2 Oracle数据库 2.3 B/S模式 2.3.1 B/S架构概…

城市轨道交通的GoA

导言 目前轨道系统中最常见的便是基于通信的列车控制系统(Communication Based Train Control, CBTC),其中各集成商各条线路采用了不同级别的自动化技术,本文将针对CBTC的运用,从其系统组成、系统升级改造、系统主要功能、自动化…

SAS学习第5章:方差分析之大纲及单因素试验

t检验能用来进行两个处理平均数之间的假设检验,但一般研究会出现多个处理优劣的比较,即需要进行多个处理平均数的假设检验,此时t检验不再适用,具体表现在检验量增加,如k个处理,要进行k*(k-1)/2次检验&#…

PyTorch简介

PyTorch是由Facebook AI实验室开发的一个深度学习框架,旨在提供高效的GPU加速和灵活的模型定义。PyTorch已经成为了深度学习领域的标准工具之一,广泛应用于图像识别、自然语言处理、计算机视觉等领域。 PyTorch的发展 自2017年发布以来,PyT…

day18_集合

今日内容 零、 复习昨日 一、集合框架体系 二、Collection 三、泛型 四、迭代 五、List 六、ArrayList 七、LinkedList 零、 复习昨日 晨考 一、集合框架体系 数组: 是一个容器,用来存放数据的 定长只能存储同一种数据类型的数据int[] 可以存储int值,Student[] 可以存储引用类型…

知识变现海哥|不具备这三种思维,劝你别做知识变现

(本文首发公号跟海哥学知识变现,移步公号与100万知识变现/知识付费创业者,一起学知识变现知识付费干货,回‘领书’获取3本电子书:【知识付费秘籍】【知识创业者成长手册】【100个知识付费成功案例】) 经常有…

单位公派|肿瘤科医生远赴英国伦敦大学学院访学交流

鉴于本单位数位同事都是委托知识人网落实的职位,所以F医生也找到我们。几番挑选又历经周转,最终远赴英国伦敦大学学院访学交流。 F医生背景: 申请类型:单位公派访问学者 工作背景:三甲医院 教育背景:博士…

腾讯云im:用户端来实现群组消息的功能

前言: 腾讯云im如果放在服务端来实现是非常便捷的,但是也受腾讯im的并发等限制,这里提供 用户端,也就是前端 来实现群组消息的相关功能。 实现效果: 实现具体功能需求: 1、群组中有主播、用户、助手、导…

Android 实现单指滑动、双指缩放照片

一、前景提示 最近接到一个查看大图的需求,现在图片展示还不够大,要求还要能缩小能放大还能保存照片。直接开始Google实现方式。 二、实现功能 根据查询到的结果分为两种,一个是使用手势监听来实现,第二种监听触摸事件来实现 …

引入Tuning function design的自适应反步控制方法 下篇

引入Tuning function design的自适应反步控制方法 下篇 目录 引入Tuning function design的自适应反步控制方法 下篇利用Turning function解决高阶不匹配系统的控制器设计问题问题描述控制器设计小结总结上一篇文章写了如何通过推迟参数设计的方法来解决不匹配条件下的系统反步…

怎样把flv转换成mp4,4种方法轻松学

怎样把flv转换成mp4?当我们下载到视频格式是flv的时候,我们就要想着把flv转换成mp4?为什么这么说呢?因为FLV流媒体格式是一种全新的视频格式,全称为Flash Video。由于它形成的文件极小、加载速度极快,使得网…

这里有小白最关心的亚马逊防关联问题

账号的安全问题,很多时候和关联问题相关,一旦被检测到关联就会导致账号被永久封号。亚马逊更是官方出过规定,一个卖家只能开一个账号,如果同一个ip登录两个以上的账户,就很容易导致关联。这样讲可能会有点模糊&#xf…