У меня есть приложение для Android, которое использует базу данных. Созданный мной класс db будет перебирать базу данных и использовать отдельный класс для «HOLD»? каждый ряд.Все объекты java хранятся в памяти до тех пор, пока не будут уничтожены?
public List<Poster> getAllPosters() {
List<Poster> posterList = new ArrayList<Poster>();
// Select All Query
String selectQuery = "SELECT * FROM " + "posters";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Poster poster = new Poster(Integer.parseInt(cursor.getString(0)),Integer.parseInt(cursor.getString(1)),Integer.parseInt(cursor.getString(2)),cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6),cursor.getString(7),cursor.getString(8));
// Adding contact to list
posterList.add(poster);
} while (cursor.moveToNext());
}
db.close(); // Closing database connection
// return contact list
return posterList;
}
Класс плаката - как и следовало ожидать. Он имеет конструктор с каждой переменной, которая относится к столбцу и метод для установки и получения каждого значения столбца.
Итак, каждая строка теперь является собственным объектом, к которому можно получить доступ в любое время, или это класс плаката, который является объектом, и содержит все строки?
Кроме того, является ли этот объект в памяти до тех пор, пока приложение не завершится или не будет перезаписано новым экземпляром Плаката?
Возможно, вы захотите прочитать о [разности между классами и объектами] (http://stackoverflow.com/questions/1215881/the-difference-between-classes-objects-and -instances). – azurefrog
Вы возвращаете список 'Poster'. Список и его ссылки доступны, если есть ссылка на них. После того, как последняя ссылка исчезла, она * подходит для GC; когда этот GC происходит, зависит. –