==
проверяет ссылки на объекты, .equals()
проверяет строковые значения.
Иногда кажется, что ==
сравнивает значения, потому что Java делает некоторые закулисные вещи, чтобы убедиться, что одинаковые строки в строке являются одним и тем же объектом.
Для Например:
String fooString1 = new String("foo");
String fooString2 = new String("foo");
// Evaluates to false
fooString1 == fooString2;
// Evaluates to true
fooString1.equals(fooString2);
// Evaluates to true, because Java uses the same object
"bar" == "bar";
Но будьте осторожны с нулями!
==
обрабатывает строки null
в порядке, но вызов .equals()
из пустой строки приведет к исключению:
String nullString1 = null;
String nullString2 = null;
// Evaluates to true
System.out.print(nullString1 == nullString2);
// Throws a NullPointerException
System.out.print(nullString1.equals(nullString2));
Итак, если вы знаете, что fooString1
может но не менее очевидно, что он проверяет значение null (из Java 7):
System.out.print(Objects.equals(fooString1, "bar"));
Мне нравится читать блог Сотрудника Google Steve Yegge, и недавно я столкнулся эта статья его , где он утверждает, что Mozilla Rhino является хорошим решением для серверной стороны JS. Это - несколько неаккуратная расшифровка стенограммы, Вы могли бы предпочесть смотреть видео разговора . Это также предлагает определенное понимание на том, почему он думает серверная сторона, JS является хорошей идеей во-первых (или скорее почему он думает, что это - хорошая идея использовать динамический язык для сценариев Java). Я думал точки, которые он делает, были убедительны, таким образом, Вы могли бы хотеть проверить его.
Некоторое время ранее, он также отправил что-то о динамических языках в общем (он - большой поклонник их), на всякий случай Вы задавались вопросом, почему использовать JS вообще.
Программирование серверной стороны было вокруг для намного дольше, чем сторона клиента и уже имеет партии из хороших решений.
JavaScript выжил и стал популярным просто, потому что у разработчиков есть очень мало выбора в вопросе - это - единственный язык, который может взаимодействовать с DOM. Его единственная конкуренция на стороне клиента от вещей как Flash и Silverlight, которые имеют совсем другую модель.
Это также, почему JavaScript получил такое усилие к умному это и добавляет современные опции. Если для целого рынка браузеров было возможно отбросить JavaScript и заменить его чем-то разработанным правильно для задачи, я уверен, что они были бы. Поскольку это стоит, JavaScript имеет странные основанные на прототипе объекты, несколько аккуратных функций функционального программирования, ограниченных и изворотливых наборов и очень немного библиотек.
Для маленьких сценариев это прекрасно, но это - ужасный язык для записи больших сложных систем. То, что вещи как Firefox и Gmail (частично) записаны в нем, является героическим выполнением с их стороны, не знаком, что язык готов к реальной разработке приложений.
Я не вижу, что большинство разработчиков преобладает над своим отвращением к клиентскому программированию JavaScript. Я перешел бы к Java для материала серверной стороны перед выбором JavaScript.
, Почему Вы хотели бы обработать что-то в JavaScript, когда можно обработать его в PHP или ASP.NET, который специально разработан для этой задачи?
, Возможно, потому что JavaScript является более мощным языком программирования, чем те два? Например, это имеет функции как первоклассные типы данных и поддержку закрытий.
Steve Yegge занес в блог о портировании Ruby on Rails к серверной стороне JavaScript как внутренний проект в Google ("Носорог на направляющих"). Он сделал это, потому что ему нравятся направляющие, но использование Ruby не позволяется в Google.
paintComponent
мы получаем копию Графики не Graphics2D. Как мы можем подтвердить, что данный параметр на самом деле имеет тот метод?
– Mathew Kurian
21 October 2013 в 13:31
Ну, простой ASP поддерживал серверную сторону JavaScript несколько лет назад и всех onad, их собака использовала VBShiate вместо этого. Но я должен согласиться с другими: JS, кажется, не правильный инструмент здесь - и я люблю делать клиентский JS:)
g
, вероятно, объявляется с супер типом этим doesn' t имеют drawLine()
метод.
– Sotirios Delimanolis
21 October 2013 в 13:26
Я даже не услышал об этом, но это, кажется мне, использует неправильный инструмент для задания. Так как языки программирования являются просто инструментами, разработанными, чтобы помочь нам решить некоторую проблему.
, Почему Вы хотели бы обработать что-то в JavaScript, когда можно обработать его в PHP или ASP.NET, который специально разработан для этой задачи?
Уверенный можно загнать гвоздь в с отверткой, но молоток работает намного лучше, потому что он был на самом деле разработан для него...
Так не, я не вижу, что он взлетает.
Кажется, что большинство из Вас пугается этой идеи из-за того, насколько неприятный различные клиентские реализации JavaScript были. Я проверил бы существующие решения перед передающим суждением, тем не менее, потому что помнят, что никакое конкретное решение SS/JS, в настоящее время не связывается с реализациями JS используясь в браузерах. JavaScript основан на ECMAScript, помните, спецификация, которая в настоящее время находится в довольно зрелом состоянии. Я подозреваю, что решение SS/JS, которое поддерживает более свежие спецификации ECMA, не было бы более громоздким, чем использование других языков сценариев для задачи. Помните, Ruby не был записан, чтобы быть "веб-языком" первоначально, также.
Прежде чем это было получено Google, , JotSpot использовал серверную сторону JavaScript, чтобы позволить Вам запросить их базу данных и отобразить Ваши страницы. Они использовали Носорог , чтобы сделать это. CouchDB использует серверную сторону JavaScript для создания представления из их базы данных.
, Как Вы видите от этих примеров, отличный способ использовать JavaScript на сервере для плагинов. Одна из причин, это используется, - то, что можно создать очень изолированную песочницу для людей для выполнения их кода в. Кроме того, из-за способа, которым работает JavaScript как язык, можно предоставить пользователю, оснащающему конкретно заточенный к задачам, которые должны выполнить пользователи. Если Вы делаете это правильно, пользователи не должны узнавать, что нового языка для выполнения их задач, быстрого взгляда на API и примеры достаточно для получения их на их пути. Сравните это со многими из других языков, и Вы видите, почему с помощью серверной стороны JavaScript для обеспечения сменной архитектуры так соблазнителен.
А вторичное популярное решение, то, которое видно через проект как Jaxer, то, что типичная проблема веб-приложений, которые делают клиентскую проверку, состоит в том, что, так как JavaScript легко обойден в браузере, проверка должна быть выполнена еще раз на сервере. Система как Jaxer позволяет Вам писать некоторую функциональность проверки, которая является допускающей повторное использование и между сервером и между клиентом.
String
к Object
, удаляет способность звонить String
функции на переменной (потому что компилятор видит Object
). Это похоже на компилятор с помощью Object
как интерфейс для определения то, что может быть сделано к ячейке памяти, не, что находится в том месте. Работы Upcasting с той же логикой пока бросок законны.
– Brandon Buck
21 October 2013 в 13:44
Я лично сделал целый сайт в стороне сервера JavaScript с помощью ASP. Я нашел это довольно приятным, потому что я смог иметь некоторое хорошее повторное использование кода. Это включало:
Вместе с высокоуровневым инструментом моделирования и генералом кода, я весело провел время с тем проектом.
у меня нет чисел на перфекте, к сожалению, так как он используется только на интранет. Однако я должен предположить, что производительность на одном уровне с поддержанными сайтами ASP VBScript.
((Graphics2D) g).drawLine(...)
... для использования обновленных методов в Graphics2D. Upcasting.
– Mathew Kurian
21 October 2013 в 13:25
кто-либо провожает Серверную сторону взятие JavaScript?
Попытка, смотрящая http://www.appjet.com , запуск, делающий, разместил приложения JavaScript для получения ощущения того, что можно сделать. Мне особенно нравится процесс обучения, который мягко пошагово перемещает пользователя для создания вещей с минимальными издержками ~ http://appjet.com/learn-to-program/lessons/intro
Теперь, это могло бы казаться странной идеей в данный момент, чтобы использовать JavaScript, но вспомнить когда запущенный выход ПК. Каждый компьютерный фанат, о котором я знал, вводил далеко в их новом Мусор 80 , Commodore64, Apple] [ ввод в играх или простые приложения в ОСНОВНОМ.
, Где сегодняшний основной для младшего хакера?
просто возможно, что JavaScript мог сделать для Веб-серверных приложений, как ОСНОВНОЙ сделал для ПК.
instanceof Graphics2D
.
– Sotirios Delimanolis
21 October 2013 в 13:32
Медиасервер Flash задан сценарием при помощи Серверного Сценария Действия, который является действительно просто JavaScript (ECMAScript). Так, я делаю это много. На самом деле большая часть моего дня имела дело с SSAS.
И я ненавижу его. Хотя быть справедливым, набор этого более связан с (не настолько большой) кодовая база, которую я наследовал, чем фактический язык.
Поддержка JS на сервере становилась более сильной, и количество платформ становится больше еще быстрее.
Просто недавно serversideJS группа была основана. У них есть много умных людей, которые работали над серверной стороной JS в течение многих лет (некоторые из них более затем 10).
Цель для этого проекта состоит в том, чтобы создать стандартную библиотеку, которая в конечном счете позволит веб-разработчикам выбирать среди любого количества веб-платформ и инструментов и выполнять тот код платформы, которая имеет большую часть смысла для их приложения.
людям, которые говорят, "почему Вы предпочли бы JS Java или какому-либо другому языку?" - необходимо считать эту Реинтродукцию Crockford и забыть о DOM - DOM суперужасен, но это не отказ JS, и JS не является DOM.
Я думаю, что серверный Javascript гарантированно заработает. Это только вопрос времени.
Mozilla, Google и Adobe настолько заинтересованы в Javascript, что потребуется чудо, чтобы вытеснить его из мира браузеров. Следующим логическим шагом будет перенос этого на серверную сторону.
Это шаг к отходу от мешанины Интернет-технологий, которая обычно включает все эти
Я мало что слышал о текущем состоянии фреймворков сервера Javascript, за исключением того, что они в основном неполные.
Учитывая это, я полагаю, серверный Javascript сделал популярным.
Я вижу, что серверные js-файлы будут предлагать значительные преимущества в будущих приложениях. Почему? Веб-приложения, которые могут отключаться, клиентские хранилища баз данных, механизмы Google и т. Д.
Следуя этой тенденции, все больше и больше логики перемещаются на клиентскую сторону. Используйте ORM, который работает на стороне клиента, и другой на стороне сервера (будь то PHP / Ruby / что-то еще), напишите логику синхронизации дважды на двух разных языках, напишите свою бизнес-логику дважды на двух разных языках?
Как насчет использования js на стороне клиента И на стороне сервера и написать код один раз?
Убедительно?
Лично я разрабатываю и использую собственный JavaScript-фреймворк около 4 лет .
JS на стороне сервера хорош тем, что реализован в ASP Classic, вам не нужно устанавливать какие-либо другие подключаемые модули или программное обеспечение, кроме того, я также использую свой javascript (клиент) фреймворк. на моем сервере, что позволяет мне пользоваться той же функциональностью и проверенной производительностью моих функций как на стороне клиента, так и на стороне сервера.
Не только для проверки данных, но также, скажем, динамические конструкции HTML или CSS могут выполняться на стороне клиента или сервера, по крайней мере, с моей структурой.
Пока он работает быстро, мне не о чем жаловаться или сожалеть, кроме его отличного удобства использования и масштабируемости, которыми я наслаждался последние 4 года, до того момента, когда я изменение моего кода ASP Classic на код javascript.
Вы можете увидеть это на практике по адресу http://www.laferia.com.do
where(quantity: 0)
– sevenseacat 21 October 2013 в 14:42