没有main函数如何运行代码

学了java之后我们都知道,java中的main函数就像java函数的入口,比如说下面这段非常简单的代码。

public class Demo1 {
    public static void main(String[] args) {
        System.out.println("hello world!");
    }
}

不难得出,这段代码运行的结果是
在这里插入图片描述
那么这时候我们也许会想,如果不用main函数怎么才能让这段代码运行呢?

通过我在网络中的查询,我找到了一个不用main函数便可以执行代码的方法,摘自如下:链接: https://blog.csdn.net/qq_36322492/article/details/81172536.
上述的博客中,我们可以知道static块可以在没有main函数的情况下单独运行。博主所用得是jdk1.8,所以这里用jdk1.8测试一下。
但是当我测试的时候,又出现了如下错误:
在这里插入图片描述
而错误的原因如下:
不同JDK版本会有不同的结果,笔者使用jdk1.4版本可以正确得到以上结果,使用jdk1.8版本编译成功但是运行报错,所以读者应该慎重选择jdk版本。更多的版本测试结果请在评论区交流~
上面这段话转自:链接: https://blog.csdn.net/esonjohn/article/details/64444117.
但是为了弄清楚static静态块之前可以单独运行的原因,写了如下代码
下面展示一些 内联代码片

public class Demo2 {
        //静态代码块
        static {
            System.out.println("我是静态代码快,我被执行了!");
            System.exit(0);//退出程序
        }
        public static void main(String[] args) {
            System.out.println("我是main函数,我要执行了");
        }

}

代码运行结果如下:
在这里插入图片描述
下面展示一些 内联代码片

public class Demo2 {
        //静态代码块
        static {
            System.out.println("我是静态代码快,我被执行了!");
        }
        public static void main(String[] args) {
            System.out.println("我是main函数,我要执行了");
        }
}

代码运行结果如下:
在这里插入图片描述
由上面两段代码可以得出:static语句块会在加载类的时候加载,它在main函数之前运行。 当static语句块运行完毕后,会寻找main函数,如果没有找到,就会抛出异常。但是在以上的代码中,static语句块执行后,我们终止程序的运行,所以异常就不会被抛出。
链接: https://blog.csdn.net/WUHUANCSDN2011/article/details/7716865?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值