Есть такой код:
public class Main {
public static void main(String[] args) {
if (args[0] == "hi")
System.out.println("Hello");
else
System.out.println("Bye");
}
}
Как видите я хочу, чтобы после запуска с скомпилированным выше кодом файл Main.class, с параметром hi, в терминал выводилось сообщение Hello
, но выводится Bye
. Почему?
Используйте метод equals
для сравнения двух строк, которые создаются во время выполнения.
Рассмотрите эту программу
import java.util.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
System.out.println( "Run-time String definition:" );
String s1 = "He";
String s2 = "llo";
System.out.println( s1 + s2 == "Hello" );
System.out.println( ( s1 + s2 ).equals( "Hello" ) );
System.out.println( "\nCompile-time String definition:" );
String s3 = "Hello";
System.out.println( s3 == "Hello" );
System.out.println( s3.equals( "Hello" ) );
}
}
Ее вывод на консоль
Run-time String definition:
false
true
Compile-time String definition:
true
true
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возможно ли в теории на этапе компиляции обнаружить некорректное преобразование объекта одного класса в объект другого?
У меня есть задача реализовать сортировку пузырьком архитектурой Флинна а именно SimdВ Simd сказано, что это должны быть векторные операции,...
на примере функции water(), в которой есть проверка на пустую строку и null