对Java程序main方法的一些思考

简介: 本文浅谈对Java程序main方法的一些思考

Java语言的HelloWrold是这样的:

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

只需要照搬这个结构,初学者就可以写出可执行的Java程序,尽管并不理解。

下面笔者将通过对该程序的剖析介绍Java的基础知识。

Java是一门面向对象的语言,因此类和对象是Java的最核心内容。通常,一个普通的Java类有如下结构:

[修饰符] class 类名 {
    // 零到多个类变量定义
    // 零到多个成员变量定义
    // 零到多个构造方法定义
    // 零到多个成员方法定义
    // 零到多个类方法定义
    // ...
}

修饰符可以是pubic、protected、private、abstract、final、static等,没有修饰符也可以。

定义方法的语法格式如下:

[修饰符] 方法返回值类型 方法名(形参列表) {
    // 方法体
}

修饰符可以是pubic、protected、private、abstract、final、static、synchronized等,没有修饰符也可以,也可以按规范使用多个修饰符。

main方法必须是public,这是为了能让JVM访问main方法,否则会不能运行。

方法用static修饰表示方法属于类而不属于对象。作为程序的入口,main方法必须是static的。如果main允许是非静态的,那么在调用main方法时,JVM就得实例化这个类;而在实例化这个类时,又要调用类的构造方法,如果这个类的构造方法有参数,就会出现歧义。

方法返回值可以是Java允许的任何数据类型,包括基本类型和引用类型,这时必须有return语句;也可以没有返回值,则返回值处用void声明,不能空缺。这是约定,不能是任何其他类型。

主函数的方法名为main是语法规定的,Java区分大小写,所以必须是小写的main。

参数String[] args通常用不到,用于获取命令行参数。由于是形参,所以String[]类型不能改,但args作为形参名,是可改的,不过一般按约定俗成的名称来。

由于是void修饰,所以不需要返回语句return,因此方法体甚至可以是空的。

本文首发于掘金,为博主本人创作,修改后搬运至阿里云开发者社区发表。

相关文章
|
3天前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
11 1
|
21天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
72 4
|
2月前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
48 17
|
25天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
67 2
|
27天前
|
Java 网络安全 Maven
Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
【10月更文挑战第26天】Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
37 2
|
2月前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
20 3
|
2月前
|
Java 开发者
在Java多线程编程中,选择合适的线程创建方法至关重要
【10月更文挑战第20天】在Java多线程编程中,选择合适的线程创建方法至关重要。本文通过案例分析,探讨了继承Thread类和实现Runnable接口两种方法的优缺点及适用场景,帮助开发者做出明智的选择。
19 2
|
2月前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
19 1
|
2月前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
34 1
|
27天前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。