Java имеет пул строк, в котором Java управляет распределением памяти для объектов String. См. String Pools в Java
Когда вы проверяете (сравниваете) два объекта с помощью оператора ==
, он сравнивает равенство адресов в пуле строк. Если два объекта String имеют одинаковые адреса, то он возвращает true
, в противном случае false
. Но если вы хотите сравнить содержимое двух объектов String, вы должны переопределить метод equals
.
equals
- фактически метод класса Object, но он переопределяется в класс String и дается новое определение, которое сравнивает содержимое объекта.
Example:
stringObjectOne.equals(stringObjectTwo);
Но помните, что это относится к случаю String. Если вы хотите сравнить регистр без учета регистра, вы должны пойти для метода equalsIgnoreCase класса String.
Давайте посмотрим:
String one = "HELLO";
String two = "HELLO";
String three = new String("HELLO");
String four = "hello";
one == two; // TRUE
one == three; // FALSE
one == four; // FALSE
one.equals(two); // TRUE
one.equals(three); // TRUE
one.equals(four); // FALSE
one.equalsIgnoreCase(four); // TRUE
Попробуйте установить C_INCLUDE_PATH
(для файлов заголовков C) или CPLUS_INCLUDE_PATH
(для файлов заголовков C ++).
Как отметил Сиро, CPATH
установит путь как для C, так и для C ++.
Подробнее здесь .
Создайте псевдоним для gcc с вашим любимым включением.
alias mygcc='gcc -I /whatever/'
-l<libnam>
для ссылки. Обратите внимание, что создание псевдонима - очень плохое решение, на самом деле вы бы создали список своих «любимых включений» и добавили их в свой Makefile.
– h4unt3r
17 May 2013 в 18:56
Спецификация gcc spec может выполнять задание, однако все пользователи на машине будут затронуты.
См. здесь
Вот ссылка на руководство GCC 4.8.1, где документированы переменные среды C_INCLUDE_PATH и CPLUS_INCLUDE_PATH .
CPATH
также для всех языков. См.man gcc
в 4.8. – Ciro Santilli 新疆改造中心 六四事件 法轮功 9 June 2015 в 07:55