Есть ли разница между
System.out.println(true);
а также
System.out.println("true");
Хотя результат, который я вижу, одинаков, есть ли разница в отношении использования или стиля кодирования?
Есть ли разница между
System.out.println(true);
а также
System.out.println("true");
Хотя результат, который я вижу, одинаков, есть ли разница в отношении использования или стиля кодирования?
В первом варианте вы передаете boolean
методу println
PrintWriter
, а во втором вы передаете String
, поэтому вызываются разные методы println
. В конце концов, boolean
в первом случае преобразуется в String
, так что конечный результат тот же.
Если вы печатаете только один логический литерал, println(true)
короче. Если вы объедините этот литерал с другими String
, println("value = true")
будет иметь больше смысла, чем println("value="+true)
.
println("value="+true)
какой аргумент мы передаем методу println?
- person Leo; 02.01.2015
String
, так как true
будет преобразовано в String
и объединено с "value="
перед передачей в println
.
- person Eran; 02.01.2015
true дает логическое значение, а "true" означает последовательность символов или строковое значение.
Метод println() программы PrintWriter переопределен для многих объектов и примитивов.
Если вы посмотрите внутрь, он использует
write(String.valueOf(obj));
так что obj.toString()
- это то, что делает всю магию :)
Оба различны. true - это логический литерал, а "true" - строковый литерал.
System.out.println(myBoolVariable);
. Непонятно, каков будет реальный вариант использования вашего предложения. Вы не должны беспокоиться об этом и позволить вызвать соответствующий перегруженный метод. - person Alexis C.   schedule 02.01.2015