【初心者】Java質問・相談スレ13【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0705デフォルトの名無しさん
NGNGちょっと疑問に思ったことがあったので質問させてください。
public class DBAccess {
/* 〜中略〜 */
// DBから書籍情報を取得する
static BookData getBook(String primary_key) {
BookData bk = null;
// 書籍オブジェクトを生成して、書籍情報を格納する
bk = new BookData();
/* 〜中略〜 */
// 生成した書籍オブジェクトを返す
return bk;
}
/* 〜中略〜 */
}
これを他のクラスから
BookData bk = DBAccess.getBook(primary_key);
として呼び出します。
ここで思ったのですが、DBAccess.getBook()の戻り値である
BookDataオブジェクトはDBAccess.getBook()内で宣言されたものです。
ということは、
BookData bk = DBAccess.getBook();で
bkにBookDataオブジェクトのアドレスが渡されているのだとすれば、
C言語流の考えだとBookDataオブジェクトはDBAccess.getBook()内で
宣言されたオブジェクトですから、DBAccess.getBook()を抜けた時点で
解放されてしまう可能性がありますよね。
ここのところどうなってるんでしょうか・・・。ご存じの方お願いします。
■ このスレッドは過去ログ倉庫に格納されています