1. 程式人生 > >Java中finally與return的執行順序

Java中finally與return的執行順序

finally不會執行的兩種情況:
1.finally對應的try塊語句還沒被執行到就返回了
2.finally對應的try塊語句中有System.exit()這樣的語句

finally塊的語句在try或catch中的return語句執行之後返回之前執行
若finally裡也有return語句,則覆蓋try或catch裡的return的值後返回
finally裡的修改語句(不是return)不影響try或catch中return的值:
可認為try或catch中的return返回的值複製一份放入執行緒棧的頂部,如果值是基本型別,則修改的不是同一份,因此不影響;如果值是物件的引用(複製的是引用,則都是指向同一個物件),是可以修改引用所指向的物件的,但仍然無法修改引用(值)