В классе для обработки транзакций SQL в Java я все время использую классы PreparedStatement и ResultSet.Переменное повторное использование в java
Мне было интересно узнать, что было бы лучше (более эффективной) практикой в Java; объявив их членами класса ...
class SqlThingy {
PreparedStatement pstx;
ResultSet rs;
public void SqlThingyMethod() {
pstx = database.connection.prepareStatement("...");
....
}
}
... или как локальные переменные отдельных методов?
class SqlThingy {
public void SqlThingyMethod() {
PreparedStatement pstx;
ResultSet rs;
pstx = database.connection.prepareStatement("...");
}
}
ли VM просто перезаписать содержимое члена класса с (ссылка на) новый PreparedStatement, или это будет сделать некоторые дополнительные инициализации, который также утверждает, ресурсы и даже из-за разницы распределения локальных переменных каждый раз ?
Thats upto зависит от ваших потребностей. Если вы хотите использовать эти переменные далее в одном классе, объявляет его вне любого метода (1). – Satya
Существует незначительное увеличение производительности при использовании локальной переменной. Тем не менее, вы должны больше сосредоточиться на том, чтобы сделать код Java понятным. Если вам нужно повторно использовать переменную, сделайте это поле, если нет, сделайте его локальным. Вы должны прочитать этот ответ, который содержит некоторые тесты http://stackoverflow.com/a/21614413/3280538 – flakes
Вы даже не используете правильный синтаксис для методов в вашем примере, поэтому у вас есть более важные вещи, о которых стоит беспокоиться, чем эффективности. – Kayaman