前端视角 Java Web 入门手册 1.3:Java 世界的规则

基础规则

这是一个最简单的 Java 应用程序,存储在 Welcome.java文件中

java 复制代码
public class Welcome {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

JavaScript 的规则相对松散,而 Java 程序有几个需要遵守的规则

  • 源代码文件名和 public 类名保持一致,这也就意味着一个文件内只能有一个 public 类名
  • 源代码文件使用 .java作为拓展名
  • 类名必须以大写字母开头,且只能包含字母、数字、下划线和美元符号,不能使用 Java 的关键字
  • 包名是用来组织和管理 Java 类的一种机制,必须以小写字母开头,且只能包含小写字母、数字和点号
  • 方法名必须以小写字母开头,且只能包含字母、数字和下划线
  • Java 程序必须包含一个main方法,作为程序的入口点,方法签名必须是 public static void main(String[] args)

代码组织

Java 的代码组织主要通过包(Package)和类(Class)实现。包是一组相关的类和接口的集合,它们被组织在一个统一的命名空间下,以便更好地管理和组织。类是 Java 中最基本的代码单元,它定义了对象的属性和行为。

使用 package关键字声明包,一般包名中的英文单词全部使用小写

java 复制代码
// 声明包
package com.example;

public class Test {
    
}

Java 中的包命名规则遵循反转的 Internet 域名规则,也就是说包名应该从上到下按照域名的层次结构来命名,每个层次结构使用小写字母。在阿里巴巴开发一个 TestProject 的项目,包名可能是 com.alibaba.testproject

使用 import关键字引入其它包内的类与接口,以便在当前类中使用,Java import 无法给引入对象设置别名,多个类名重复时需要使用完整路径

java 复制代码
// 引入类
import com.package.Test;

Java 类一般都有 public、protected、private 等访问限制符修饰,不加任何访问限制符默认为可以被同一个包内的类访问

编译 & 运行

Java 代码需要编译后运行,javac是 Java 编译器的命令行工具

bash 复制代码
$ javac Welcome.java

如果编译成功,将会生成一个与 public 类名称相同、后缀名为 .class 的字节码文件 Welcome.class,使用 Java 命令运行可以在控制台输出程序结果

bash 复制代码
$ java Welcome

Java 代码编写完成后,需要经过编译器生成对应的字节码文件,而 Java 虚拟机(JVM)则负责解释执行这些字节码文件。由于 Java 虚拟机的存在,Java 程序可以跨平台运行、在不同的操作系统上运行相同的 Java 程序

另外 Java 虚拟机还提供了一些高级功能,例如利用即时编译器在运行时将热点代码编译成本地机器码,提高程序的执行效率;提供Java调试器接口(Java Debug Interface),方便开发人员进行调试等

打包

Java 程序发布通常需要打包为 jar(Java ARchive)格式,内部可以包含 Java 字节码文件、配置文件、图片等资源文件

bash 复制代码
$ jar -cvf jar文件名.jar 需要打包的文件或文件夹
  • -c:创建 jar 文件
  • -v:在控制台输出打包过程
  • -f:指定 jar 文件名称

在一般情况下打包、解压 jar 文件会通过 Eclipse、IntelliJ IDEA 等集成开发环境完成,打包完成后就可以把 jar 文件发布到 Maven、Gradle 了

相关推荐
sheji34161 小时前
【开题答辩全过程】以 家庭教育资源网为例,包含答辩的问题和答案
java
百***78751 小时前
Grok-4.1与GPT-5.2深度对比:技术差异、适用场景及Python集成指南
java·python·gpt
Mr -老鬼2 小时前
Java VS Rust
java·开发语言·rust
北凉军2 小时前
java连接达梦数据库,用户名是其他库的名称无法指定库,所有mapper查询的都是以用户名相同的库内的表
java·开发语言·数据库
程序员张32 小时前
Mybatis条件判断某属性是否等于指定字符串
java·spring boot·mybatis
wuk9982 小时前
基于C#与三菱PLC通过TCPIP实现MC协议通信示例
java·网络·c#
沛沛老爹2 小时前
Web转AI架构篇 Agent Skills vs MCP:工具箱与标准接口的本质区别
java·开发语言·前端·人工智能·架构·企业开发
码农小卡拉2 小时前
Maven与Gradle选型指南:如何匹配项目的依赖管理需求
java·gradle·maven
黎雁·泠崖2 小时前
吃透Java操作符进阶:算术+移位操作符 全解析(Java&C区别+完整案例+避坑指南)
java·c语言·python