Java之第一个Java程序
编写第一个Java程序
打开文本编辑器,输入以下代码
1 2 3 4 5 | public class Hello { public static void main(String[] args) { System.out.println( "Hello, world!" ); } } |
在一个Java程序中,你总能找到一个类似
1 2 3 | public class Hello { ... } |
的定义,这个定义被称为class(类),这里的类名是Hello,大小写敏感,class用来定义一个类public表示这个类是公开的,public,class都是Java的关键字,必须小写,Hello是类的名字,按照习惯首字母大写,而{}中间则是类的定义
注意到类的定义中,我们定义了一个名为main的方法
1 2 3 | public static void main(String[] args) { ... } |
方法是可执行的代码块,一个方法除了方法名main
,还有用()
括起来的方法参数,这里的main
方法有一个参数,参数类型是String[]
,参数名是args
,public
、static
用来修饰方法,这里表示它是一个公开的静态方法,void
是方法的返回类型,而花括号{}
中间的就是方法的代码。
方法的代码每一行用;
结束,这里只有一行代码,就是:
1 | System.out.println( "Hello, world!" ); |
它用来打印一个字符串到屏幕上。
Java规定,某个类定义的public static void main(String[] args)
是Java程序的固定入口方法,因此,Java程序总是从main
方法开始执行。
注意到Java源码的缩进不是必须的,但是用缩进后,格式好看,很容易看出代码块的开始和结束,缩进一般是4个空格或者一个tab。
最后,当我们把代码保存为文件时,文件名必须是Hello.java
,而且文件名也要注意大小写,因为要和我们定义的类名Hello
完全保持一致。
如何运行Java程序
Java源码本质上是一个文本文件,我们首先用javac把Hello.java编译成字节码文件Hello.class然后用java命令执行这个字节码文件
│ Hello.java │<─── source code
└──────────────────┘
│ compile
▼
┌──────────────────┐
│ Hello.class │<─── byte code
└──────────────────┘
│ execute
▼
┌──────────────────┐
│ Run on JVM │
因此,可执行文件javac是编译器,而可执行文件java就行虚拟机
第一步,在保存Hello.java的目录下执行命令javac Hello.java
1 | javac Hello.java |
如果代表无误,上述命令不会输出,而当前目录下会产生一个Hello.class文件
1 2 | # ls Hello. class Hello.java |
第二步,执行Hello.class使用命令java Hello
1 2 | # java Hello Hello, world! |
直接运行java Hello.java也是可以的
1 2 | # java Hello.java Hello, world! |
这是Java 11新增的一个功能,它可以直接运行一个单文件源码!
需要注意的是,在实际项目中,单个不依赖第三方库的Java源码是非常罕见的,所以,绝大多数情况下,我们无法直接运行一个Java源码文件,原因是它需要依赖其他的库。
小结:
一个Java源码只能定义一个public类型的class,并且class名称和文件名要完全一致
使用javac可以将.java源码编译成.class字节码
使用java可以运行一个已编译的Java类名,参数是类名。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2017-10-21 oracle通过profile限制用户的恶意登录和使用期限
2017-10-21 oracle权限赋予