欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java连载64-finally语法及其注意事项

程序员文章站 2022-03-21 17:17:35
一、finally语句块 1.注意点: (1)finally语句块可以直接和try语句块联合使用。try...finally.... (2)try.....catch.....finally也可以执行; (3)在finally语句块中的代码是一定会执行的。 package com.bjpowerno ......

一、finally语句块

1.注意点:

(1)finally语句块可以直接和try语句块联合使用。try...finally....

(2)try.....catch.....finally也可以执行;

(3)在finally语句块中的代码是一定会执行的。

 

package com.bjpowernode.java_learning;

import java.io.*;

​

public class d64_1_ {

  public static void main(string[] args) throws filenotfoundexception{

    try {

      system.out.println("abc");

    }finally {

      system.out.println("jdfoaij");

    }

   

    try {

//      system.exit(0);//这句话代表退出java虚拟机

      fileinputstream f1 = new fileinputstream("jfdioa");

      //下面这个语句不会执行

      system.out.println("abc");

    }finally {

      //无论try里面的语句是否报错,下面的语句都会执行

      system.out.println("jfaio");

     

    }

  }

​

}

Java连载64-finally语法及其注意事项

2.深入finally语句块

 

public class d64_1_ {

  public static void main(string[] args) throws filenotfoundexception{

    int i = m1();

    system.out.println(i);

 

  }

  public static int m1() {

    int i = 10;

    try {

      return i;

    }finally {

      i++;

      system.out.println("m1的i=" + i);//11

    }

    /*

     * 以上代码的执行原理,

     * int i = 10;

     * trt{

     *   int temp = i;

     *   return temp;

     * }finally{

     *   i++;

     *   system.out.println("m1的i=" + i);//11

     * }

     */

  }

}

Java连载64-finally语法及其注意事项

3.fianlly语句块是一定会执行的,所以通常在程序中,为了保证某个资源一定会被释放,所以一般会在finally语句块中中释放资源。

 

package com.bjpowernode.java_learning;

import java.io.*;

​

public class d64_1_ {

  public static void main(string[] args) throws filenotfoundexception{

    fileinputstream f2 = null;

    try {

      f2 = new fileinputstream("jfoda");

    }catch(filenotfoundexception e){

      e.printstacktrace();

    }finally {

      if(f2 != null) {

        try {

          f2.close();

        }catch(ioexception e) {

          e.printstacktrace();

        }

​

      }

    }

  }

}

Java连载64-finally语法及其注意事项

二、final、finalize和finally之间的区别

final是一个java关键字,用它来修饰的变量,不可以重复在被赋值;用它来修饰的成员函数,不可以重新被覆盖。

finalize()是object中的方法,在垃圾回收之前会自动调用这个方法​。

finally是异常处理机制的一个语法结构。

三者其实没有什么联系,是不相同的​语法。

三、源码:

d64_1_finallysentenceblock.java​

https://github.com/ruigege66/java/blob/master/d64_1_finallysentenceblock.java

2.csdn:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

 Java连载64-finally语法及其注意事项