学了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.