Django на Google App Engine

Ответ: 4 .

Поскольку вы использовали ключевое слово new, Java создаст новый объект String в обычной (не пуловой) памяти, и x будет ссылаться на него. В дополнение к этому, литерал «xyz» будет помещен в пул строк, который снова является другим строковым объектом.

Итак, 4 строковых объекта:

  1. «xyz» (в памяти без пула)
  2. «xyz» (в память пула)
  3. «abc» (в памяти пула)
  4. «xyzabc» (в памяти без пула)

Если бы ваш код был таким:

String x = "xyz";
String y = "abc";
x = x + y;

, то ответ был бы 3 .

Примечание: строка № 4 находится в памяти без пула, поскольку строковые литералы и строки, полученные путем вычисления константных выражений (см. JLS §15.28), являются единственными строками, которые неявно интернированы.

Источник: SCJP Sun Certified Programmer для Java 6 (Страница: 434, Глава 6)

19
задан MathOldTimer 18 June 2009 в 08:59
поделиться

4 ответа

Я потратил некоторое время, пытаясь ответить на тот же вопрос ... мне кажется, что наиболее сложными для переноса в GAE являются модели django ... ощущение, что они требуют различных модификаций и переосмысления, в основном потому, что бэкэнд GAE - это не стандартная реляционная БД, а BigTable Google . Я нашел здесь хорошее вступление к этому:

http://www.youtube.com/watch?v=rRCx9e38yr8

В любом случае, стоит скачать один из этих «патчей» и попробовать!

Для меня лучшим решением является « app-engine-patch ». Я скачал образец проекта, и он сразу заработал! (Имейте в виду, что вам нужно иметь GAE ' s SDK устанавливается отдельно) Убийственной фичей для меня является тот факт, что django-admin и многие другие классические функции django также были перенесены !!!

http://code.google.com/p/app-engine-patch/

Документация , на мой взгляд, по-прежнему довольно минимальна, но она достаточно хороша, чтобы вы начали. Это поможет вам бегло просмотреть официальные документы GAE!

13
ответ дан 30 November 2019 в 03:43
поделиться

App Engine включает версию 0.96 Django "из коробки", но она весьма урезана.

App Engine Helper и app-engine-patch предположительно решают эту проблему в некоторой степени, но я сам не пробовал.

http://code.google.com/appengine/articles/appengine_helper_for_django.html http://code.google.com/appengine/articles/app-engine-patch.html

1
ответ дан 30 November 2019 в 03:43
поделиться

Объем проблем зависит от того, сколько существующего кода вы хотите использовать повторно. К сожалению, из-за того, что Datastore не поддерживает SQL, вы часто не можете просто взять любое подключаемое к django приложение и использовать его в своем проекте GAE.

App-engine-patch http://code.google.com/p / app-engine-patch / , похоже, опережает других помощников django в переносе стандартных приложений (Sites, ContentTypes, Flatpages) в GAE. Я использовал app-engine-patch в нескольких проектах gae, и как только вы поймете, как портировать модель django-sql в модель django-gae и преобразовать sql в запросы хранилища данных, все можно сделать очень быстро, но всегда есть обучение кривая.

appengine-helper пытается восполнить пробел в хранилище данных, предоставляя модель, чтобы вам не приходилось менять суперклассы модели, но я ' Мы обнаружили, что в любом случае вам придется изменить отношения ManyToMany и любой sql, поэтому преимущество в конечном итоге минимально. У ae-patch есть план, чтобы попытаться предоставить серверную часть ae-datastore, но это, вероятно, не произойдет в ближайшее время.

0
ответ дан 30 November 2019 в 03:43
поделиться

Всего Вчера (в зависимости от вашего часового пояса) Google выпустил новый SDK для Python на Appengine, который поддерживает django 1.0 из коробки.

12
ответ дан 30 November 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: