==
сравнивает ссылки на объекты.
.equals()
сравнивает значения String.
Иногда ==
дает иллюзии сравнения значений String, как в следующих случаях:
String a="Test";
String b="Test";
if(a==b) ===> true
Это связано с тем, что при создании любого строкового литерала JVM сначала ищет этот литерал в пуле строк, и если он найдет совпадение, эта же ссылка будет передана новой String. Из-за этого получаем:
(a == b) ===> true
String Pool
b -----------------> "test" <-----------------a
Однако ==
не выполняется в следующем случае:
String a="test";
String b=new String("test");
if (a==b) ===> false
В этом случае для new String("test")
оператор new String будет создан в куче, и эта ссылка будет указана на b
, поэтому b
будет дана ссылка на кучу, а не на String pool.
Теперь a
указывает на String в пуле String, а b
указывает на String в куче. Из-за этого мы получаем:
, если (a == b) ===> false.
String Pool
"test" <-------------------- a
Heap
"test" <-------------------- b
Пока .equals()
всегда сравнивает значение String, поэтому дает true в обоих случаях:
String a="Test";
String b="Test";
if(a.equals(b)) ===> true
String a="test";
String b=new String("test");
if(a.equals(b)) ===> true
Таким образом, использование .equals()
всегда лучше.
, Если существует хитрый алгоритм для чего-то, такой как корреляция нескольких потоков данных в новый поток тогда, я буду обычно использовать Блок-схему для разработки алгоритма.
, Если решение требует знания состояния тогда, Диаграмма состояний также используется.
Это - те, я использую больше всего.
При выполнении Хранилища данных разрабатывают, я рисую Схемы "звезда", чтобы разработать, как хранить данные. Когда выполнение Транзакционного DB разрабатывает, я использую Диаграммы сущностей и связей для работы нашего хранения данных.
При разработке UI я просто изображаю схематически его. Как только я начинаю получать некоторые части разработанного UI и хотеть играть с некоторыми областями, я буду делать шаблон, распечатывать копию копии и затем использовать это в качестве руководства для работы над подразделами. Для цветовых схем может быть удобно сделать графическое использование калеки и иметь слои для каждой части дизайна и затем играть со слоями, окрашивающими каждого для нахождения правильного баланса.
Я использую электронную доску для моделирования, таким образом, я предполагаю, что "язык моделирования электронной доски" был бы моим ответом.
Я имею Блок-схема основного продукта, с которым я работаю и разрабатываю.
Моя команда также часто использует диаграмма UML эскизы на электронных досках при разработке новых частей для нас для реализации. Они очень полезны в создании шаблонов разработки и моделировании высокоуровневой структуры классов, которые будут необходимы. Это никогда полноценный UML хотя...
Я использую ER и диаграммы классов на бумаге и электронной доске для любого проекта, это больше, чем сценарий оболочки.
Блок-схемы, только когда я должен объяснить процесс непрограммисту (или если это - действительно сложный процесс и я должен понять это сначала).
Мой старый босс раньше заявлял, что "парень просто любит тянуть материал".
Что мы действительно используем? Возможно, другие люди на самом деле создают формальные схемы, но по большей части я просто набрасываю пузыри, поля и строки на листе бумаги.
Я использую Диаграммы последовательности много (продвинутый бумага). Я нахожу, что они дают мне хорошее визуальное представление логический поток вызовов метода и информации между различными системами и компонентами в наших приложениях.
Я использую схемы в качестве способа быстро понять унаследованный код. Требуется некоторая работа для создания схемы, но этого всегда платежи в конце.
Обычно я использую диаграммы классов для получения большого изображения. Иногда диаграммы последовательности и даже диаграмма потоков данных, если часть o код чрезвычайно трудно понять.
В стадии проектирования я использую диаграммы классов и часто диаграммы состояний. Диаграммы состояний прекрасны, если поведение класса не соглашается со своим состоянием.
Электронная доска для обсуждений.
Pen и бумага для менее временной записи.
тупики Кода для 'Вещей к impelement'.
Протестированный и Рабочий код (с обширными комментариями) для потомства.
Я сделаю Диаграмму классов UML для чего-либо, что я разрабатываю, который больше, чем несколько классов. Рисование диаграммы классов заставляет меня занять время для обдумывания дизайна вместо того, чтобы уложить прямо в код и всегда приводит к лучшему результату.
Для большей и более сложной архитектуры я нахожу, что Диаграммы последовательности являются хорошим способом передать behviour, специально для многопоточных систем.
Я тяну ухудшаемые версии класса UML, объектных и диаграмм последовательности. В то время как я пытаюсь быть верным для синтаксиса, я намного более обеспокоен выражением основной идеи позади конкретной функции. Так, я составлю что-то, попрошу, чтобы коллега смотрел, и если это кажется достаточно ясным, мы могли бы даже просканировать его и отправить его в нашей Wiki.
Затем когда это так происходит, что мы на самом деле заставляем некоторое время работать над документацией (и это почти никогда ), я буду использовать BOUML и перерисовывать каракули в надлежащую схему.
Теперь, для помещения все в контексте, я работаю в относительно малочисленной команде (5 разработчиков), делая торговлю и платформы конфигурации продукта в Java. У нас есть наши два продукта, которые мы тогда дополнительно настраиваем к запросам клиента. Будучи сплоченным сообществом, с низким (нулевым) благоприятным поворотом в течение нескольких лет, мы используем документацию, прежде всего, в качестве остатка нам. И в этой установке, вышеупомянутый подход работает вполне хорошо.
Я использую то, что необходимо для communicatation. Обычно это - ничто вообще. Иногда это - электронная доска.
Время от времени, я использую Архитектор Sparx Enterprise , который является UML , моделируя инструмент, хотя он производит достойный diagams, в то время как это в нем. Я использовал его для требований, варианта использования, действия, последовательности, домена, и даже моделирования класса и иногда некоторых перепроектированных схем ER. Любой ценой понять через.
Я работаю в среде разработки Ajax и большей части кода бэкенда, который я пишу работам как канал между реляционной базой данных и frontend JavaScript (пользовательский интерфейс). Так, в наиболее используемой 'схеме' на говорится, что я использую, объекты JSON описать, как данные должны быть переданы назад и вперед между базой данных и интерфейсом. Они просты, универсальны и легки понять структуры данных.
Пример:
{"идентификатор": строка ['идентификатор'], "имя": строка ['имя'], "обязательное": ['обязательная'] строка, "rangeDescription": "Это - Диапазон", "globalRate": строка ['глобальная']}