麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

finally和return執行順序

2019-11-14 15:00:58
字體:
來源:轉載
供稿:網友

先貼代碼:

import java.util.HashMap;
import java.util.Map;

public class FinallyTest {
public static void main(String[] args) {
ObjectTest obj=new ObjectTest();
System.out.
StringTest str = new StringTest();
System.out.println("str=="+str.getValue());

StringObjTest strObj=new StringObjTest();
System.out.println("strObj=="+strObj.getValue());

IntegerTest integer=new IntegerTest();
System.out.println("Integer=="+integer.getValue());
}

}

class IntegerTest {
public Integer getValue() {
Integer j = new Integer(1);
try {
j=new Integer(10);
return j;
} finally {
j=j+new Integer(100);
}
}
}

class StringTest {
public String getValue() {
String j = "string_orgin";
try {
j="string_try";
return j;
} finally {
j = "string_finally";
}
}
}

class StringObjTest {
public String getValue() {
String j = new String("stringobj_orgin");
try {
j=new String("stringObj_try");
return j;
} finally {
j = new String("stringObj_finally");
}
}
}

class ObjectTest {

public Map<String, String> getMap() {
final Map<String, String> argMap = new HashMap<String, String>();
try {
argMap.put("tryKey", "2");
return argMap;
} finally {
argMap.put("finalKey", "2");
}
}
}

 返回結果:

obj=={tryKey=2, finalKey=2}
str==string_try
strObj==stringObj_try
Integer==10

總結:在return返回之前  會將return的值拷貝一份,然后在執行finally,如果拷貝的變量類型是string、基本類型、包裝基本類型的Boolean Integer Double Long 因為這些類型都是不可變的,想要改變值只能拷貝一個原來的值,finally操作的值只是操作的一個拷貝, 但是如果是對象 那么因為拷貝的一個對象引用  finally會改變原來在堆中的對象,所以會影響return 值

PS:1、順序一定是執行try塊,在執行finally 但是因為return返回機制的原因 導致因為返回類型導致的數據不同

     2、執行順序:1、在return前將數據壓入棧中(如果是Boolean Integer Double Long不可變類型或者string類型 直接將值壓進去,如果是可變的那么把堆中的地址引用壓進去)

                        2、執行finally語句,因為string和Boolean Integer Double Long為不可變類型變量,如果改變會另外申請一塊常量池內存,但是不會改變棧中的值,而對象的話因為是引用  所以Finally會改變其真實值

                        3、最后return棧中的值


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲极色 | 成人免费视频视频在线观看 免费 | 久久成人精品视频 | 国产91小视频在线观看 | 欧美一级全黄 | 天天黄色片 | 免费国产一级淫片 | 日本在线观看视频网站 | 露脸各种姿势啪啪的清纯美女 | 国产精品视频自拍 | 最新一区二区三区 | 久久综合网址 | 久久久久一本一区二区青青蜜月 | 久久国产精品二区 | 免费网站看毛片 | 国产一区精品在线观看 | 国产成人小视频在线观看 | 宅男噜噜噜66国产免费观看 | 久久99国产精品久久 | 欧美特级一级毛片 | 久久久成人精品视频 | 综合在线一区 | 国产电影精品久久 | 日韩精品dvd | 天天好比网 | 久久精品中文字幕一区二区 | 91精品国产九九九久久久亚洲 | 欧美成人一区二区视频 | 成人一区二区三区在线 | 欧美一区二区三区免费观看 | 黄色特级一级片 | 成人在线免费小视频 | 久久777国产线看观看精品 | fc2成人免费人成在线观看播放 | 91精品久久香蕉国产线看观看 | 91精品国产乱码久久久久 | 亚洲国产小视频 | 斗罗破苍穹在线观看免费完整观看 | 春光影院理论片 | 国产精品99久久99久久久二 | 国产精品av久久久久久久久久 |