Что произойдет во время компиляции и выполнения данного кода?

public class Test {
  public static void main(String[] args) {
    String s1 = new String("string");
    String s2 = new String("STRINg");
        
    StringBuilder sb1 = new StringBuilder("test");
    StringBuilder sb2 = new StringBuilder("test");
        
    System.out.println(s1.equalsIgnoreCase(s2) && sb1.equals(sb2)
        && s2.charAt(s2.length()) == 'g');
  }
}
Explanation
Метод equalsIgnoreCase() вернёт true, так как при таком сравнении регистр не учитывается.
Метод equals() в StringBuilder и StringBuffer не переопределён и не позволяет осуществлять сравнение, так что возвращает всегда false.
Благодаря && дальнейшая проверка не выполняется, что позволяет избежать StringIndexOutOfBoundsException, так как последним доступным элементом в строке может быть [s2.length()-1].

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты