박스형 기본 정수를 다음과 같은 상수와 비교하면 다음과 같습니다. Integer a = 4; if (a < 5) a 상자가 자동으로 풀리고 비교가 작동합니다. 그러나 두 박스 Integers를 비교할 때 같거나보다 작거나 큰 것을 비교할 때 어떤 일이 발생 합니까? Integer a = 4; Integer b = 5; if (a == …
다음 스 니펫에서 간단한 Java 코드를 살펴 보겠습니다. public class Main { private int temp() { return true ? null : 0; // No compiler error - the compiler allows a return value of null // in a method signature that returns an int. } private int same() { if …
Java 5부터는 기본 유형의 boxing / unboxing이있어서 등등 int으로 포장되었습니다 java.lang.Integer. 나는 (즉, 최근에 새로운 자바 프로젝트를 많이 볼 확실히 사용되는하지 (6) 경우, 적어도 버전 5의 JRE를 필요로) int보다는 java.lang.Integer그것이 후자를 사용하는 것이 훨씬 더 편리하지만 그것을 변환하는 몇 가지 헬퍼 메소드를 가지고로, 행 long값 등의 알. 왜 일부는 여전히 …
왜 이런 일이 발생합니까? NullPointerException public static void main(String[] args) throws Exception { Boolean b = true ? returnsNull() : false; // NPE on this line. System.out.println(b); } public static Boolean returnsNull() { return null; } 이 동안하지 않습니다 public static void main(String[] args) throws Exception { Boolean b = …
방금 다음과 유사한 코드를 보았습니다. public class Scratch { public static void main(String[] args) { Integer a = 1000, b = 1000; System.out.println(a == b); Integer c = 100, d = 100; System.out.println(c == d); } } 실행되면 다음 코드 블록이 출력됩니다. false true 첫 번째 이유를 이해 false합니다. 두 …
조건을 사용하여 두 개의 Long 개체 값 을 비교하고 싶습니다 if. 이 값은 때 적은 128보다 의 if조건은 제대로 작동하지만,이 경우 보다 크거나 128에 동일 비교는 실패합니다. 예: Long num1 = 127; Long num2 = 127; if (num1 == num2) { // Works ok } 위 코드의 비교는 제대로 작동하지만 …
Autoboxing은 Java 컴파일러가 기본 유형과 해당 객체 래퍼 클래스간에 수행하는 자동 변환입니다. 예를 들어 int를 Integer로, double을 Double로 변환하는 등의 작업이 있습니다. 변환이 다른 방식으로 진행되는 경우이를 unboxing이라고합니다. 그렇다면 왜 이것이 필요하고 자바에서 오토 박싱과 언 박싱을 사용 하는가?