Все объекты гарантированно имеют метод .equals()
, поскольку Object содержит метод, .equals()
, который возвращает логическое значение. Задача подкласса переопределять этот метод, если требуется дополнительное определение определения. Без него (т. Е. С помощью ==
) только адреса памяти проверяются между двумя объектами для равенства. String переопределяет этот метод .equals()
и вместо использования адреса памяти возвращает сравнение строк на уровне символа для равенства.
Ключевое замечание состоит в том, что строки хранятся в одном пуле, поэтому после создания строки он всегда хранится в программе по тому же адресу. Строки не меняются, они неизменяемы. Вот почему это плохая идея использовать регулярную конкатенацию строк, если у вас есть серьезное количество обработки строк. Вместо этого вы будете использовать предоставленные классы StringBuilder
. Помните, что указатели на эту строку могут измениться, и если вам было интересно увидеть, были ли два указателя одинаковыми ==
, это был бы прекрасный способ. Строки сами не делают.
Docker Compose может это сделать.
docker-compose up
создает изображение, создает контейнер и запускает его. docker-compose stop
останавливает контейнер. docker-compose start
перезапускает контейнер. docker-compose down
останавливает контейнер и удаляет изображение и контейнер. С помощью Docker compose file вы можете настроить ArangoDB (выставлять порты, отображение томов для инициализации db, и т.д.). Поместите файл компоновки в корневой каталог проекта и запустите команду up.
image:
; (2) нет; (3) либо Docker Compose может управлять томами, в которых хранятся данные, либо вы можете указывать их в каталогах хостов, и если вы пытаетесь сохранить данные в долгосрочной перспективе в эфемерных контейнерах, то они будут i> потеряны. – David Maze 13 July 2018 в 18:18docker-compose down
вы можете использоватьdocker-compose stop
, а затемdocker-compose start
. – Riku J.K. 13 July 2018 в 18:42docker-compose stop
для будущих читателей. Спасибо за ответ. – rm.rf.etc 17 July 2018 в 08:57