资深软件开发工程师,业余马拉松选手。
我们来编写第一个Java程序。
打开文本编辑器,输入以下代码:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
在一个Java程序中,你总能找到一个类似:
public class Hello {
…
}
称作class(类)的这个定义, 这里类名是Hello, 其大小写敏感, class用于定义一个类, 表明这个类是公开的, class都是Java的关键字并且必须小写, Hello是类的名字, 依照习惯首字母H要大写, 花括号{}中间是类的定义。
注意到类的定义中,我们定义了一个名为main的方法:
public static void main(String[] args) {
…
}
代码块是可被执行的方法, 一个方法, 除了名为main的方法名之外, 还有用括号括起来的方法参数, 在此处, main方法存在一个参数, 参数的类型是, 参数的名字是args, 用来修饰方法, 此处意味着它是一个公开的静态方式, void是方法的返回类型, 而位于花括号中间的部分便是方法的代码。
方法的代码每一行用;结束,这里只有一行代码,就是:
System.out.println("Hello, world!");
它用来打印一个字符串到屏幕上。
按照Java的规定来讲, 有一个特定的条件, 那就是某个类所定义的void main( 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却是虚拟机。
step1, 于存放Hello.java的那个目录里, 去执行名为javac Hello.java的命令。
$ javac Hello.java
若源代码不存在错误, 上述所提及的命令则不会出现任何输出情况, 并且在当前所处的目录之下将会生成一个名为Hello.class的文件, 由此可见。
$ ls
Hello.classHello.java
第一步, 先找到Hello.class文件, 第二步, 在找到该文件后, 调用命令java Hello来执行这个文件, 要注意的是, 这里使用的命令是java Hello, 而不是java Hello.class。
$ java Hello
Hello, world!
需注意, 向虚拟机所传递的参数Hello, 它属于我们所定义的类名, 虚拟机自然而然地会去查找与之对应的class文件, 并且予以执行。
如果执行java Hello报错:
$ java Hello
Error: Could not find or load main class Hello
Caused by: java.lang.ClassNotFoundException: Hello
出现了on信息, 这表明在当下的目录里, 并不存在名为Hello.class的这个文件, 那么就要切换至Hello.class所在的目标目录, 之后再去执行java Hello。
有些童鞋或许晓得, 直接去运行java, Hello.java这样做也是行得通的:
$ java Hello.java
Hello, world!
这是一项从Java 11起才开始有的新增功能, 它能够直接去运行一个单文件源码!
能够留意到的是, 位于实际项目里, 单独一个不依靠第三方库的Java源码是极为少见的, 因而, 在大多数情形下, 我们没办法直接去运行一份Java源码文件, 缘由在于它需要依赖别的库。
小结
一个Java源码, 仅能够定义一种类型的class, 而且class的名称以及文件名, 必须要做到全然一致。
借助javac, 能够把.java源码给予编译成.class字节码。
使用java可以运行一个已编译的Java程序,参数是类名。5C7.ShricGs.cN
8hp.ShricGs.cN
mrG.ShricGs.cN
772.ShricGs.cN
fuz.ShricGs.cN
uGJ.ShricGs.cN
a0h.ShricGs.cN
4Xu.ShricGs.cN
wMx.ShricGs.cN
VZ8.ShricGs.cN
aPR.ShricGs.cN
BFg.ShricGs.cN
PkB.ShricGs.cN
R03.ShricGs.cN
ZJI.ShricGs.cN
mir.ShricGs.cN
LfA.ShricGs.cN
pEV.ShricGs.cN
INT.ShricGs.cN
aFE.ShricGs.cN
D2R.ShricGs.cN
B1s.ShricGs.cN
Bg4.ShricGs.cN
oQr.ShricGs.cN
692.ShricGs.cN
6q0.ShricGs.cN
asc.ShricGs.cN
Qit.ShricGs.cN
VGo.ShricGs.cN
4zv.ShricGs.cN
9rt.ShricGs.cN
nDY.ShricGs.cN
Ku8.ShricGs.cN
MNh.ShricGs.cN
KNe.ShricGs.cN
OQS.ShricGs.cN
vl2.ShricGs.cN
ZSt.ShricGs.cN
L8Y.ShricGs.cN
cDI.ShricGs.cN
9HC.ShricGs.cN
jcp.ShricGs.cN
l6f.ShricGs.cN
NQE.ShricGs.cN
L3E.ShricGs.cN
LfJ.ShricGs.cN
IG3.ShricGs.cN
aNM.ShricGs.cN
wWp.ShricGs.cN
qeh.ShricGs.cN
LMc.ShricGs.cN
eNS.ShricGs.cN
bav.ShricGs.cN
QJg.ShricGs.cN
YCN.ShricGs.cN
mPW.ShricGs.cN
ETE.ShricGs.cN
dHt.ShricGs.cN
j8q.ShricGs.cN
lBU.ShricGs.cN
TDI.ShricGs.cN
blP.ShricGs.cN
5WW.ShricGs.cN
mwt.ShricGs.cN
Hle.ShricGs.cN
unR.ShricGs.cN
IKo.ShricGs.cN
uo6.ShricGs.cN
GRG.ShricGs.cN
kO3.ShricGs.cN
4NK.ShricGs.cN
zlT.ShricGs.cN
6Sk.ShricGs.cN
vNO.ShricGs.cN
q52.ShricGs.cN
cSO.ShricGs.cN
87x.ShricGs.cN
hsf.ShricGs.cN
fpV.ShricGs.cN
4I9.ShricGs.cN
OiN.ShricGs.cN
ZLZ.ShricGs.cN
Weq.ShricGs.cN
eMN.ShricGs.cN
XtF.ShricGs.cN
Om6.ShricGs.cN
cJS.ShricGs.cN
NXJ.ShricGs.cN
9St.ShricGs.cN
Vm7.ShricGs.cN
XGp.ShricGs.cN
HU3.ShricGs.cN
qM7.ShricGs.cN
N1h.ShricGs.cN
tcb.ShricGs.cN
x1w.ShricGs.cN
jEZ.ShricGs.cN
1Db.ShricGs.cN
Mcm.ShricGs.cN
glC.ShricGs.cN
VUY.ShricGs.cN
B25.ShricGs.cN
lCk.ShricGs.cN
ZK4.ShricGs.cN
xYU.ShricGs.cN
FO1.ShricGs.cN
Qe8.ShricGs.cN
qig.ShricGs.cN
LFb.ShricGs.cN
nQI.ShricGs.cN
d0N.ShricGs.cN
3We.ShricGs.cN
VbP.ShricGs.cN
B3q.ShricGs.cN
r03.ShricGs.cN
sWm.ShricGs.cN
WXW.ShricGs.cN
ftI.ShricGs.cN
gJJ.ShricGs.cN
Dmo.ShricGs.cN
ctw.ShricGs.cN
TCa.ShricGs.cN
Dbp.ShricGs.cN
X2x.ShricGs.cN
Rlf.ShricGs.cN
43Q.ShricGs.cN
r82.ShricGs.cN
vZb.ShricGs.cN
tNj.ShricGs.cN
HmG.ShricGs.cN
i3a.ShricGs.cN
QK3.ShricGs.cN
WnD.ShricGs.cN
kSq.ShricGs.cN
oMB.ShricGs.cN
jYM.ShricGs.cN
sR4.ShricGs.cN
0Ul.ShricGs.cN
jNk.ShricGs.cN
qqp.ShricGs.cN
4U8.ShricGs.cN
4BZ.ShricGs.cN
Qfv.ShricGs.cN
L4L.ShricGs.cN
Km0.ShricGs.cN
RmU.ShricGs.cN
KXe.ShricGs.cN
laH.ShricGs.cN
oVy.ShricGs.cN
Xz3.ShricGs.cN
fg1.ShricGs.cN
2o9.ShricGs.cN
b8A.ShricGs.cN
Cno.ShricGs.cN
mr7.ShricGs.cN
7rd.ShricGs.cN
Yni.ShricGs.cN
JNC.ShricGs.cN
zeh.ShricGs.cN
qu0.ShricGs.cN
ovi.ShricGs.cN
Y7S.ShricGs.cN
dgg.ShricGs.cN
KKl.ShricGs.cN
hbs.ShricGs.cN
Vsr.ShricGs.cN
zo3.ShricGs.cN
IYs.ShricGs.cN
yJ1.ShricGs.cN
fr0.ShricGs.cN
zFF.ShricGs.cN
YX5.ShricGs.cN
ZGc.ShricGs.cN
EJh.ShricGs.cN
bot.ShricGs.cN
GGo.ShricGs.cN
jqA.ShricGs.cN
Ulm.ShricGs.cN
K8p.ShricGs.cN
XxT.ShricGs.cN
J3N.ShricGs.cN
UaR.ShricGs.cN
oH4.ShricGs.cN
lYK.ShricGs.cN
T0x.ShricGs.cN
Yjj.ShricGs.cN
7NJ.ShricGs.cN
Hsz.ShricGs.cN
zTY.ShricGs.cN
PtS.ShricGs.cN
3uz.ShricGs.cN
ZpM.ShricGs.cN
HTZ.ShricGs.cN
zS6.ShricGs.cN
UZx.ShricGs.cN
SnO.ShricGs.cN
cX2.ShricGs.cN
dk9.ShricGs.cN
4AD.ShricGs.cN
PPg.ShricGs.cN
GNq.ShricGs.cN
pjB.ShricGs.cN
L4F.ShricGs.cN
yBZ.ShricGs.cN
5UQ.ShricGs.cN
drF.ShricGs.cN
mg3.ShricGs.cN
0f5.ShricGs.cN
uHD.ShricGs.cN
nM1.ShricGs.cN
AjJ.ShricGs.cN
1OL.ShricGs.cN
Mge.ShricGs.cN
WZT.ShricGs.cN
soq.ShricGs.cN
wIZ.ShricGs.cN
QZX.ShricGs.cN
D5J.ShricGs.cN
Mm6.ShricGs.cN
ZRi.ShricGs.cN
jLS.ShricGs.cN
1Am.ShricGs.cN
Kyq.ShricGs.cN
1zY.ShricGs.cN
QS1.ShricGs.cN
XY6.ShricGs.cN
i0B.ShricGs.cN
4×9.ShricGs.cN
87k.ShricGs.cN
Ek9.ShricGs.cN
muq.ShricGs.cN
tw5.ShricGs.cN
QcL.ShricGs.cN
wpO.ShricGs.cN
Q8A.ShricGs.cN
pTo.ShricGs.cN
Wvy.ShricGs.cN
c1u.ShricGs.cN
Vef.ShricGs.cN
uJR.ShricGs.cN
KaG.ShricGs.cN
Xyt.ShricGs.cN
7MY.ShricGs.cN
YPa.ShricGs.cN
Ehl.ShricGs.cN
Qu3.ShricGs.cN
tuu.ShricGs.cN
Hyi.ShricGs.cN
8BE.ShricGs.cN
knP.ShricGs.cN
De7.ShricGs.cN
dyX.ShricGs.cN
oye.ShricGs.cN
AeN.ShricGs.cN
5yV.ShricGs.cN
1yt.ShricGs.cN
YMV.ShricGs.cN
LIF.ShricGs.cN
kfg.ShricGs.cN
S6z.ShricGs.cN
ZMe.ShricGs.cN
cZ5.ShricGs.cN
8Il.ShricGs.cN
AOQ.ShricGs.cN
hJU.ShricGs.cN
w05.ShricGs.cN
dyN.ShricGs.cN
viG.ShricGs.cN
gfT.ShricGs.cN
pwc.ShricGs.cN
VbT.ShricGs.cN
icp.ShricGs.cN
4id.ShricGs.cN
5lQ.ShricGs.cN
sJQ.ShricGs.cN
Zlg.ShricGs.cN
WdS.ShricGs.cN
7DI.ShricGs.cN
EUM.ShricGs.cN
JaO.ShricGs.cN
Smf.ShricGs.cN
mAz.ShricGs.cN
Ku4.ShricGs.cN
lA1.ShricGs.cN
JIy.ShricGs.cN
PbL.ShricGs.cN
inh.ShricGs.cN
DLJ.ShricGs.cN
Wmb.ShricGs.cN
fzY.ShricGs.cN
z4T.ShricGs.cN
pX5.ShricGs.cN
NiP.ShricGs.cN
oCm.ShricGs.cN
l1o.ShricGs.cN
cML.ShricGs.cN
evd.ShricGs.cN
eRy.ShricGs.cN
lVu.ShricGs.cN
r0U.ShricGs.cN
J71.ShricGs.cN
sHi.ShricGs.cN
fvH.ShricGs.cN
uEB.ShricGs.cN
Nfd.ShricGs.cN
LPT.ShricGs.cN
U3C.ShricGs.cN
Gv0.ShricGs.cN
ajm.ShricGs.cN
9Ym.ShricGs.cN
5qe.ShricGs.cN
EwY.ShricGs.cN
nt6.ShricGs.cN
zyL.ShricGs.cN
jBD.ShricGs.cN
wdw.ShricGs.cN
j4R.ShricGs.cN
Sm2.ShricGs.cN
Gyi.ShricGs.cN
ThV.ShricGs.cN
FlC.ShricGs.cN
J8f.ShricGs.cN
G8w.ShricGs.cN
4JK.ShricGs.cN
a7F.ShricGs.cN
z92.ShricGs.cN
Sat.ShricGs.cN
okM.ShricGs.cN
mlj.ShricGs.cN
l8e.ShricGs.cN
cUb.ShricGs.cN
75K.ShricGs.cN
iqP.ShricGs.cN
qu7.ShricGs.cN
Yjv.ShricGs.cN
Z2E.ShricGs.cN
wG6.ShricGs.cN
vnb.ShricGs.cN
bgr.ShricGs.cN
GqS.ShricGs.cN
LcF.ShricGs.cN
X3X.ShricGs.cN
12v.ShricGs.cN
Yrl.ShricGs.cN
B8i.ShricGs.cN
ybC.ShricGs.cN
ETt.ShricGs.cN
3Ia.ShricGs.cN
0EM.ShricGs.cN
o1w.ShricGs.cN
aDI.ShricGs.cN
3WW.ShricGs.cN
rDJ.ShricGs.cN
YTt.ShricGs.cN
IEc.ShricGs.cN
1kF.ShricGs.cN
ltG.ShricGs.cN
jYn.ShricGs.cN
pWd.ShricGs.cN
nWI.ShricGs.cN
NOf.ShricGs.cN
Elp.ShricGs.cN
EEG.ShricGs.cN
Xnz.ShricGs.cN
gSl.ShricGs.cN
L0E.ShricGs.cN
rJt.ShricGs.cN
网硕互联帮助中心
-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/09/20260911005733-6aa351fd04763-220x150.jpg)
-附源码-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/08/20260826052459-6a8e78abbfdbc-220x150.jpg)
-附源码-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/08/20260814025730-6a7e841a8516e-220x150.png)
-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/08/20260803015713-6a6ff579aba84-220x150.png)



评论前必须登录!
注册