Вы пробовали установить
server.context-path=/appname
в Spring Boot?
Указатель - это просто число. Он хранит адрес в ОЗУ, где находятся данные. Сам указатель довольно мал (вероятно, того же размера, что и int
на 32-битных архитектурах, long
на 64-битных).
Вы правы, хотя int *
не экономит место при работе с int
s. Но дело не в этом (каламбур нет). Здесь есть указатели, так что вы можете иметь ссылки на вещи, а не просто использовать сами вещи .
На некоторых архитектурах есть дополнительные накладные расходы на указатели на символы, потому что архитектура поддерживает только адресные слова (32- или 64-битные значения). Таким образом, указатель на символ сохраняется как адрес слова и смещение символа внутри этого слова. Отмена ссылки на указатель включает выборку слова, а затем смещение и маскировку его значения для извлечения символа.
Как уже говорили другие, указатель хранит адрес памяти, который является «просто числом», но это абстракция. В зависимости от архитектуры процессора это может быть более одного числа, например, основание и смещение, которое необходимо добавить для разыменования указателя. В этом случае накладные расходы немного выше, чем если бы адрес был одним числом.
Да, есть накладные расходы при доступе к int или bool через указатель, а не напрямую, где процессор может поместить переменную в регистр. Указатели обычно используются там, где значение косвенного обращения перевешивает любые накладные расходы, например, обход массива.
Я имел в виду накладные расходы времени. Не уверен, что OP больше интересовался пространством или накладные расходы.
Адреса памяти.
Это места в памяти, где другие данные равны .
Указатели обычно представляют собой размер слова процессора, поэтому они обычно могут перемещаться за один цикл инструкций. Короче говоря, они быстрые.
Число относится к его адресу в памяти. Размер указателя обычно равен собственному размеру архитектуры компьютера, поэтому нет дополнительных накладных расходов по сравнению с любым другим примитивным типом.