【一】第一个java程序详解

2023-11-18

一、前言

通过之前上一节【开篇】Java语言介绍及环境搭建,我们已经成功的安装了java环境并执行了我们的第一个java程序,但是我们还是不清楚该怎么去编写并运行一个java程序,本节将会通过对第一个java程序进行详细讲解,使我们能够快速了解java这门语言。

二、创建并编写java源代码的文件

创建java源代码文件

在桌面新建一个HellowJava.txt文件,并将下面代码复制粘贴到文件中,保存退出。

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

更改文件后缀

在计算机系统中通过文件的后缀去标识一个文件,如图片有.png、.jpg格式,java的源代码文件通过后缀.java标识,我们将HellowJava.text文件更改HellowJava.java文件,如下图。

图2.1
图2.2
ps:这里文件图标可能跟大家的不一样,是因为我安装了编写java代码的软件,所以会自动更改.java文件的图标。

java代码的结构

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

这个程序总共占五行,有实际意义的其实只有前三行,后面两行的两个"}“都是为了与前面的”{"进行配对,组成一个封闭的区域。接下来讲解这三行代码的作用。

1、“public class HellowJava{}”:这是java语言定义“类”的定义方式,java是一门面向对象的编程语言,java中需要执行的操作必须放置在“类”的“{}”中。

这个类的定义由四个部分组成,

  • “public”:修饰符,表示其他代码对这个类的访问权限,在修饰符的章节会详细讲解。
  • “class ”:java中关键字,类的定义标识,通过“class”来标识这是一个类。
  • “HellowJava”:类的名字,由你自己定义,但是必须以字母开头,后面可以跟字母和数字的任意组合,不能使用java的保留字和关键字,如“public”,“class”等。
  • {}:类的范围,表示这个类的范围。

注意:类名的定义规范是,以大写字母开头,如果由多个单词组成,每个单词的第一个字母大写。如本文的HellowJava。建议取名能够望文生义。一个文件里面可以有多个类,但是public修饰的类只能有一个,且文件名必须与public修饰的类名一致。如下:

public class HellowJava{  
	public static void main(String[] args){
    	System.out.println("Hello Java"); 
    }
}
class test{
	.......
}

2、“public static void main(String[] args){}”:这是java程序的入口函数,程序执行时将会从该处由上而下执行代码,格式暂时固定,暂时只需知道程序执行从“{}”的里面开始执行就行。

注意:main函数是程序的入口,在一个类中main函数只能有一个,不然java运行程序时不知道该从那个函数开始执行代码。

3、“System.out.println(“Hello Java”);”:这里是程序要干的事,这句话的意思是向用户展示“Hello Java”,双引号中的内容就是向用户展示的内容。

注:这个地方是进行调用方法,java通过“.”的方式调用方法,这里调用的是System.out对象的println方法,这里“;”表示这个动作完成了,java通过“;”来判断你的动作是否已经完成

三、编译执行

编写好代码后,我们希望计算机能够执行我们的程序,但是计算机并不能执行我们编写好的程序,这是因为计算机并不能识别我们所写的源代码文件,需要将源代码编译成计算机可以识别的字节码文件,才能够执行这个程序。

编译

java语言通过使用“javac”命令来将源代码编译成计算机可识别的字节码文件。

  • 在java源代码文件处打开cmd,或者通过快捷键win+r,输入“cmd”打开cmd窗口,通过cd命令切换到源代码文件所在的目录,随后再通过dir命令查看源代码文件是否在该目录,如下图。

图3.1打开cmd
图3.2 切换至桌面目录且打印该目录下文件

  • 切换到源代码文件目录后,运行“javac HellowJava.java”将源代码编译,这里需要输入的是文件所有名字,包含后缀,如果没有报错的话会在该目录下生成一个HellowJava.class文件,该文件就是编译好的文件了,如下图。

图3.3 编译
图3.4 编译好的字节码文件
如果报错的话,先检查java环境变量是否配置成功,运行java命令如图如下图表示环境变量配置成功。如果没有环境变量需要重新配置,可以查看我的上一讲【开篇】Java语言介绍及环境搭建,只有环境配置成功,我们才能够在cmd里面调用java命令。

图3.5 java环境变量配置成功

执行

编译好的字节码文件可以通过“java”命令执行了。在文件目录下运行“java HellowJava”执行程序了。这里将我们在“System.out.println(“Hello Java”);”中写的内容输出出来了,我们可以通过更改内容来更改显示效果,不过更改代码需要重新编译。效果如下图。
图3.6 效果

四、总结

本节通过对第一java程序进行讲解,介绍了java代码的结构,以及如何将一个java源代码成功的编译并运行,java代码的运行流程方式如下图。

Java运行过程
首先编写好.java源文件,随后利用“javac”命令将远点编译成“.class”文件,随后在运用“java”命令调用jvm执行程序,通过“java”命令调用的是不同系统的jvm,所以将“.class”文件复制到其他系统也能够执行,这也是为什么java程序可以跨平台的原因。

通过本节我们学会了java的基本结构,下一章节我们将会开始我们的java语言的旅行了。

五、附

java关键字

class interface byte short int
long float double char boolean
void true false null if
else switch case default while
do for break continue return
private protected public abstract final
static synchronized extends implements new
this super instanceof try catch
finally throw throws package import
native strictfp transient volatile assert

ps:如果大家在观看的时候发现有拼写错误,代码错误以及内容混淆的地方,希望大家积极反馈,我及时进行更改,谢谢大家,邮箱:BaldTeenager@163.com

更多精彩文章扫码关注“这个程序猿不太秃”,专注程序开发
在这里插入图片描述

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

【一】第一个java程序详解 的相关文章

  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • Netbeans 8.1 Gnome 3 GTK+ UI 字体和选项卡高度

    我刚刚在运行 GNOME 3 桌面的 Ubuntu 16 04 上安装了 NetBeans 8 1 如果可能的话 我想继续使用 IDE 的 GTK 外观和感觉 但 UI 上的字体 尤其是选项卡中的字体 太小且重叠 我尝试添加 fontsiz
  • 使用 Tabula 通过 Python 读取 pdf 时出现 Java 错误

    我已经安装了 tabula 库 用于使用 python 将 pdf 读取到 pandas 数据框中 但是当我运行代码时 import tabula df tabula read pdf sample1 pdf pages 1 我得到了例外
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • 如何调试“com.android.okhttp”

    在android kitkat中 URLConnection的实现已经被OkHttp取代 如何调试呢 OkHttp 位于此目录中 external okhttp android main java com squareup okhttp 当
  • 如何在 JPQL 或 HQL 中进行限制查询?

    在 Hibernate 3 中 有没有办法在 HQL 中执行相当于以下 MySQL 限制的操作 select from a table order by a table column desc limit 0 20 如果可能的话 我不想使用
  • Jframe 内有 2 个 Jdialogs 的 setModal 问题

    当我设置第一个选项时 我遇到了问题JDialog模态 第二个非模态 这是我正在尝试实现的功能 单击 测试对话框 按钮 一个JDialog有名字自定义对话框 主要的将会打开 如果单击 是 选项自定义对话框主 其他JDialog named 自
  • Android studio - 如何保存先前活动中选择的数据

    这是我的代码片段 这Textview充当按钮并具有Onclicklistner在他们 当cpu1000时Textview单击它会导致cpu g1000其代码如下所示的类 public class Game 1000 extends AppC
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 如何在 Spring 中使 @PropertyResource 优先于任何其他 application.properties ?

    我正在尝试在类路径之外添加外部配置属性资源 它应该覆盖任何现有的属性 但以下方法不起作用 SpringBootApplication PropertySource d app properties public class MyClass
  • 如何使用 JMagick 转换色彩空间?

    如何使用 JMagick API 转换色彩空间 例如 CMYK gt RGB 和 RGB gt CMYK None
  • 如何在.NET中使用java.util.zip.Deflater解压缩放气流?

    之后我有一个转储java util zip Deflater 可以确认它是有效的 因为 Java 的Inflater打开它很好 并且需要在 NET中打开它 byte content ReadSample sampleName var inp
  • 蓝牙发送和接收文本数据

    我是 Android 开发新手 我想制作一个使用蓝牙发送和接收文本的应用程序 我得到了有关发送文本的所有内容逻辑工作 但是当我尝试在手机中测试它时 我看不到界面 这是Main Activity Code import android sup
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • 不可变的最终变量应该始终是静态的吗? [复制]

    这个问题在这里已经有答案了 在java中 如果一个变量是不可变的并且是final的 那么它应该是一个静态类变量吗 我问这个问题是因为每次类的实例使用它时创建一个新对象似乎很浪费 因为无论如何它总是相同的 Example 每次调用方法时都会创
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似
  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho

随机推荐

  • SpringBoot整合Swagger

    一 Swagger 认识Swagger Swagger 是一个规范和完整的框架 用于生成 描述 调用和可视化 RESTful 风格的 Web 服务 总体目标是使客户端和文件系统作为服务器以同样的速度来更新 文件的方法 参数和模型紧密集成到服
  • 开关电源Buck电路CCM及DCM工作模式

    一 Buck开关型调整器 二 CCM及DCM定义 1 CCM ContinuousConduction Mode 连续导通模式 在一个开关周期内 电感电流从不会到0 或者说电感从不 复位 意味着在开关周期内电感磁通从不回到0 功率管闭合时
  • (详解与使用)Sharding-JDBC通过mysql主从复制来进行项目优化

    目录 背景 一 环境准备 1 mysql的主从复制环境 2 导入maven坐标 3 在配置文件 application yml 中配置读写分离规则 4 在配置文件中配置允许bean定义覆盖配置项 5 配置完毕可以测试 背景 面对日益增加的系
  • 安可与普通测评的区别_订房网站比较,Agoda、Booking、Hotels、Expedia和携程的区别,哪个更好更便宜...

    经常在网上看到不少网友在订房过程中会提出这样的问题 Agoda和Booking有什么区别 Agoda和携程哪个好 Hotels订房靠谱吗 订酒店哪个网站最便宜 Agoda Booking还是Expedia 等等 今天我们就来介绍一下 五大主
  • GitLab 简易指引(一):离线一键安装

    本文为 原创 文章 转载请标明出处 原文链接 https weyunx com 2019 01 22 原文出自 微云的技术博客 前言 近期为满足持续集成的需要 需要在内网搭建GitLab GitLab 简介 GitLab 是利用 Ruby
  • 把频谱图的纵坐标设置为分贝刻度

    在信号的频谱分析中 有时频谱的幅值有很大的动态范围 必须要把幅值取对数转换成为分贝值 有两种解决方法 一种是Y轴用对数坐标 另一种是对幅值取对数 转换成分贝值后再画图 1 Y轴用对数坐标 作图时 Y轴用对数坐标 在MATLAB中 X轴 Y轴
  • spring boot 集成logstash 日志

    1 logstash 插件配置 logstash下config文件夹下添加 test conf 文件内容 input tcp mode gt server host gt 0 0 0 0 port gt 4567 codec gt json
  • 已解决 AttributeError: module ‘tensorflow‘ has no attribute ‘random‘

    今天运行py文件的时候发现出了这个错 用了很多方法都没能解决 删了重装已经试了无数次了也不行 于是我把tensorflow的版本给升级了一下 解决问题了 之前是1 10的我升到了1 12 pip install tensorflow gpu
  • linux:vim NERDTree 安装和使用

    1 安装NERDTree之前按照网上的按照一直都安装不上 现在安装上了笔记一下 现在NERDTree 提供两种下载方法 http www vim org scripts script php script id 1658 https git
  • Linux系统通过Console线连接交换机

    Linux系统通过Console口连接交换机 安装minicom Ubuntu安装 sudo apt get install minicom Centos 安装 sudo yum install minicom 配置minicom 需要ro
  • 页面增加水印,附带vue3写法

    效果图 App vue文件
  • cmake简单使用

    概述 cmake是一种跨平台编译工具 除了可以编译c c 代码也可以编译其他语言的代码 其主要就是通过cmake执行CMakeLists txt从而生成Makefile 下面就自己了解到的简单的一点知识 做以记录 更多可查看官网 https
  • python二叉树类定义,列表转二叉树,leetcode本地调试

    如果想用本地IDE调试leetcode上的题目 可以使用以下辅助类 二叉树类定义 Definition for a binary tree node class TreeNode def init self x self val x sel
  • AIX5.3 weblogic9.2速度很慢问题的解决过程

    问题描述 开始的时侯采用的是32位JDK 但是部署应用的时侯总是out of memory 后来改用64位JDK 使用64位JDK之后没有aix 64位 native lib 最后从BEA工程师那取得了64位lib依然无法使用 没有使用na
  • python面试题:Python 剪绳子的多种思路实现(动态规划和贪心)

    本文来源于公众号 csdn2299 喜欢可以关注公众号 程序员学府 这篇文章主要介绍了Python 剪绳子的多种思路实现 动态规划和贪心 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友们下面随着小编来
  • MyBatis-Plus开启AR功能

    开启AR功能领域模型 1 实体类开启AR 同时开启Dao层AR 继承MP特殊类Model
  • echarts x轴数据过多左右滚动显示

    dataZoom使用让出现X轴的滚动条 dataZoom type slider show true xAxisIndex 0 start 0 end 100 textStyle color ccd7d7 或者代码 dataZoom sta
  • 使用ray对pytorch模型进行超参数调节

    def main num samples 10 max num epochs 10 gpus per trial 1 data dir os path abspath data load data data dir config l1 tu
  • gradle 编译 Spring 源码(亲测有效)

    天知道我今天下午经历了什么 从去年开始断断续续看源码 在 IDEA 中 Spring 源码只读不能写 所以每次都是将方法拷贝到 vscode 中 IDEA 中看代码逻辑 接着在 vscode 对应的方法上写注释 期初这种方式没觉得有什么不便
  • 【一】第一个java程序详解

    第一个java程序详解 一 前言 二 创建并编写java源代码的文件 创建java源代码文件 更改文件后缀 java代码的结构 三 编译执行 编译 执行 四 总结 五 附 java关键字 一 前言 通过之前上一节 开篇 Java语言介绍及环