成都网站建设设计

将想法与焦点和您一起共享

java结束main代码 java 结束运行程序的最佳方式

如何直接结束main函数

java中:System.exit(1);

创新互联从2013年创立,是专业互联网技术服务公司,拥有项目网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元成县做网站,已为上家服务,为成县各地企业和个人服务,联系电话:18980820575

C++中:return 1;或者exit(1),只是要包含stdlib.h

java main结束后还会执行其他代码吗 ?为什么?求高手指点,要有文字说明,详细一些。

下面的程序输出结果为

2

1

当在输出2的时候,main已经结束了。但是程序依然执行,输出了1.

是因为main函数只是程序的入口,是一个程序中多条线程的其中一条。独立的线程间是互相不影响的,因此即便main线程结束了,其他线程依然会照常运行。

class test extends Thread{

@Override

public void run() {

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println(1);

super.run();

}

}

public class Test{

public static void main(String[] args) {

//new Server();

System.out.println(0);

new test().start();

System.out.println(2);

}

}

Java中为用return结束了main方法;但是finally还是会执行?入口都关闭了,为什么?

Java中finally代码是肯定会被执行的,即使抛出异常或者return。看下面代码:

public static void main(String[] args) {

try {

System.out.println("Try");

return;

} finally {

System.out.println("Finally");

}

}

如果查看这段代码的汇编代码:

Code:

0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;

3: ldc           #3                  // String Try

5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V

8: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;

11: ldc           #5                  // String Finally

13: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V

16: return

17: astore_1

18: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;

21: ldc           #5                  // String Finally

23: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V

26: aload_1

27: athrow

可以看到编译器编译时已经把finally中的代码(8,11,13)提前到了return之前(16)执行。return之后还会看到finally中的汇编,不过不会执行了。我的理解是编译的时候把return之后的语句拷贝到return之前的位置,但是没有删除return之后的语句。

java中如果输入1程序结束怎么编写代码

方法如下:

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while (true) {

System.out.println("----------------");

Object o = sc.next();

String str = o.toString();

if ("-1".equals(str)) {

break;

}

int n1 = sc.nextInt();

int n2 = sc.nextInt();

//调用方法

}

}


新闻标题:java结束main代码 java 结束运行程序的最佳方式
文章位置:http://chengdu.cdxwcx.cn/article/ddgsjji.html