Разница между System.out.println(true) и System.out.println(true)

Есть ли разница между

System.out.println(true);

а также

System.out.println("true");

Хотя результат, который я вижу, одинаков, есть ли разница в отношении использования или стиля кодирования?


person Leo    schedule 02.01.2015    source источник
comment
Говоря о стиле кодирования, я бы сделал № 2. Но поскольку вы печатаете логическое значение (которое, я полагаю, исходит из логической переменной), я бы назвал System.out.println(myBoolVariable);. Непонятно, каков будет реальный вариант использования вашего предложения. Вы не должны беспокоиться об этом и позволить вызвать соответствующий перегруженный метод.   -  person Alexis C.    schedule 02.01.2015


Ответы (4)


В первом варианте вы передаете boolean методу println PrintWriter, а во втором вы передаете String, поэтому вызываются разные методы println. В конце концов, boolean в первом случае преобразуется в String, так что конечный результат тот же.

Если вы печатаете только один логический литерал, println(true) короче. Если вы объедините этот литерал с другими String, println("value = true") будет иметь больше смысла, чем println("value="+true).

person Eran    schedule 02.01.2015
comment
В случае println("value="+true)какой аргумент мы передаем методу println? - person Leo; 02.01.2015
comment
@Leo Вы бы передали String, так как true будет преобразовано в String и объединено с "value=" перед передачей в println. - person Eran; 02.01.2015

true дает логическое значение, а "true" означает последовательность символов или строковое значение.

person Aditya Vyas-Lakhan    schedule 02.01.2015

Метод println() программы PrintWriter переопределен для многих объектов и примитивов.

Если вы посмотрите внутрь, он использует

write(String.valueOf(obj));

так что obj.toString() - это то, что делает всю магию :)

person yUdoDis    schedule 02.01.2015

Оба различны. true - это логический литерал, а "true" - строковый литерал.

person Mohammad sharif    schedule 26.02.2019