Поскольку Java не поддерживает перегрузку оператора, == ведет себя одинаково для каждого объекта, но equals () - это метод, который может быть переопределен в Java, а логика для сравнения объектов может быть изменена на основе бизнес-правил.
Основное различие между == и equals в Java заключается в том, что «==» используется для сравнения примитивов, тогда как метод equals () рекомендуется проверять равенство объектов.
Сравнение строк является распространенным сценарием использования оба метода == и equals. Поскольку класс java.lang.String переопределяет метод equals, он возвращает true, если два объекта String содержат одинаковое содержимое, но == будет возвращать true, только если две ссылки указывают на один и тот же объект.
Ниже приведен пример сравнения две строки в Java для равенства с использованием метода == и equals (), которые устранят некоторые сомнения:
public class TEstT{
public static void main(String[] args) {
String text1 = new String("apple");
String text2 = new String("apple");
//since two strings are different object result should be false
boolean result = text1 == text2;
System.out.println("Comparing two strings with == operator: " + result);
//since strings contains same content , equals() should return true
result = text1.equals(text2);
System.out.println("Comparing two Strings with same content using equals method: " + result);
text2 = text1;
//since both text2 and text1d reference variable are pointing to same object
//"==" should return true
result = (text1 == text2);
System.out.println("Comparing two reference pointing to same String with == operator: " + result);
}
}
В дополнение к упоминанию Brad о SQL Profiler, если Вы хотите сделать это в коде, затем всем Вашим вызовам базы данных нужно к направляемому через общую библиотеку. Вы вставляете код времени там, и вуаля, Вы знаете, сколько времени каждый запрос в Вашей системе берет.
Единственная точка входа к базе данных является довольно стандартной функцией любого ORM или слоя базы данных - или по крайней мере это было в любом проекте, я продолжил работать до сих пор!
Проект Dropthings на CodePlex имеет класс для синхронизации блоков кода. Класс называют TimedLog. Это реализует IDisposable. Вы переносите блок кода, которого Вы желаете ко времени в операторе использования.
SQL Profiler является инструментом, который я использую для контроля трафика, текущего к моему SQL Server. Это позволяет Вам собирать подробные данные вокруг своего SQL Server. SQL Profiler был распределен с SQL Server с тех пор, по крайней мере, SQL Server 2000 (но вероятно перед этим также).
Очень рекомендуем.
Смотрите на эту главу Jeff Atwood, и я записал об оптимизации производительности для веб-сайтов. Мы покрываем много материала, но существует много материала о трассировке базы данных и оптимизации: Ускорьте Свой Сайт: 8 Подсказок по Производительности ASP.NET
При использовании направляющих, это автоматически регистрирует все SQL-запросы, и время, которое они заняли для выполнения в файле журнала разработки.
Я нахожу это очень полезным, потому что, если Вы действительно видите тот, это требует времени, это - один шаг только к копии, и вставьте его непосредственно экран/файл журнала и поместите, 'объясняют' перед ним в mysql.
Вы не должны пойти, роя через Ваш код и восстановить то, что происходит.
Само собой разумеется, этого не происходит в производстве, поскольку оно выполнило Вас из дискового пространства приблизительно за час.
При определении фабрики, которая создает SqlCommands для Вас, и всегда называйте его при необходимости в новой команде можно возвратить RealProxy в SqlCommand.
Этот прокси может затем иметь размеры, сколько времени ExecuteReader / ExecuteScalar и т.д. берут использование StopWatch и регистрируют его где-нибудь. Преимущество для использования этого вида метода по Профилировщику SQL-сервера состоит в том, что можно получить полные отслеживания стека для каждой выполняемой части SQL.