一个完整的Java程序示例
(1) 第一个程序HelloWorld:
package mypack; //相当于一个目录
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
注:
1、文件名必须和public修饰的类名一致,以.java作为文件后缀,如果定义的类不是public的,则文件名与类名可以不同。
2、一个.java文件中可以有多个class,但是只有一个public修饰的类。
3、java源代码文件编译后,一个类对应生成一个.class文件。
4、一个java应用程序应该包含一个main()方法,而且其签名是固定的,它是应用程序的入口方法,可以定义在任意一个类中,不一定是public修饰的类。
编译:javac -d . HelloWorld.java
含有包的类,在编译的时候最好用上面的格式,-d指的是让该类生成的时候按照包结构去生成,“.”指的是在当前路径下生成。
如果不用上面的格式,也可以用javac HelloWorld.java,但是需要注意的是包结构就要由自己去建立,然后将生成的.class文件放到该目录下。
执行:java mypack.HelloWorld
将字节码文件交给Java虚拟机去解释执行。
需要注意的事,必须使用包名.类名去解释执行。
(2) Java的运行过程
编译:生成可执行文件,如C++中利用g++生成a.out,效率高,但不跨平台。
解释:解释器把源文件逐行解释,跨平台但效率不高。
在java中,先编译后解释,把.java文件编译成.class字节码文件:
Java源代码文件(.java文件)
Java编译器(javac)
Java字节码文件(.class文件,平台无关的)
Java解释器(java),执行Java字节码
Java是跨平台的语言,真正执行的不是二进制代码,而是字节码。
Java程序的执行实际上是在JVM(Java Virtual Machine,Java虚拟机)上解释执行的,Java是跨平台的,而JVM不是跨平台的(JVM是由C语言编写的),Java之所以能够做到跨平台,本质原因在于JVM不是跨平台的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理