如何尝试...最终在内部工作
2022-09-04 21:23:03
目前,我正在使用try进行代码优化。最后阻止以尊重我的对象。
但是我感到困惑的是,当我在最终块中创建对对象的空引用时,如何管理返回对象。??
在 try 块中返回对象时,它会在编译期间创建预编译语句吗?或者在返回语句时在堆中创建新的引用?或者只是返回对象的当前引用?
以下是我的研究代码。
public class testingFinally{
public static String getMessage(){
String str = "";
try{
str = "Hello world";
System.out.println("Inside Try Block");
System.out.println("Hash code of str : "+str.hashCode());
return str;
}
finally {
System.out.println("in finally block before");
str = null;
System.out.println("in finally block after");
}
}
public static void main(String a[]){
String message = getMessage();
System.out.println("Message : "+message);
System.out.println("Hash code of message : "+message.hashCode());
}
}
输出为:
内部 尝试块
哈希代码 str : -832992604
在 final bolck 之前
在最终块之后
消息 : Hello world
消息的哈希代码 : -832992604
当我看到返回对象和调用对象具有相同的哈希码时,我感到非常惊讶。所以我对对象引用感到困惑。
请帮我澄清这个基本面。