前端视角 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 了

相关推荐
万少4 小时前
小龙虾(openclaw),轻松玩转自动发帖
前端·人工智能·后端
Jagger_6 小时前
AI 洪水淹到脖子了:剩下的是什么?我们该往哪儿跑?
后端
Victor3567 小时前
MongoDB(28)什么是地理空间索引?
后端
Victor3567 小时前
MongoDB(29)如何创建索引?
后端
皮皮林5518 小时前
面试官:什么是 fail-fast?什么是 fail-safe?
后端
陈随易9 小时前
前端大咖mizchi不满Rust、TypeScript却爱上MoonBit
前端·后端·程序员
雨中飘荡的记忆10 小时前
Multi-Agent + Skills + Spring AI 构建自主决策智能体
后端·spring
我叫黑大帅11 小时前
Go 语言并发编程的 “工具箱”
后端·面试·go