true 또는 false 두 가지 값 중 하나만 가질 수 있는 변수는 불리언형 변수이고, true와 false는 불리언 직접량입니다. 다음 문을 사용하여 state라는 부울 변수를 정의할 수 있습니다.
부울 상태=true
이 문은 변수 상태를 참값으로 초기화합니다. 대입문을 사용하여 부울 변수에 값을 할당할 수도 있습니다. 예를 들어, 다음과 같은 진술이 있습니다.
상태=거짓
변수 state의 값을 false로 설정합니다.
현재 우리는 부울 변수에 값을 할당하는 것 이상을 할 수 없지만 다음 장에서 볼 수 있듯이 부울 변수는 프로그램에서 결정을 내릴 때 유용하며, 특히 표현식을 사용하여 It을 생성할 수 있을 때 유용합니다. 부울 결과에 더 유용합니다.
부울 값을 결합하는 연산자에는 부울 AND(AND), 부울 OR(oR), 부울 NOT(각각 &&, 11, !에 해당)과 부울 결과를 생성하는 비교 연산자가 있습니다. 지금은 추상적으로 배우는 대신 다음 장으로 넘어가서 프로그램 실행 순서를 변경하기 위해 이를 적용하는 방법을 연습에서 확인할 수 있습니다.
한 가지 주의할 점은 부울 변수는 다른 기본 데이터 유형과 다르다는 점이며, 다른 기본 유형은 부울 유형으로 변환할 수 없습니다.
Java에서 부울 객체를 생성하는 세 가지 방법 비교
Java가 Boolean 객체를 생성하는 첫 번째 일반적인 방법은 new 연산자를 사용하는 것입니다.
부울 boolean1 = new Boolean(1==1);
두 번째는 정적 메소드 valueOf를 통한 것입니다.
부울 boolean1 = Boolean.valueOf(1==1);
세 번째 유형은 JDK1.5 이후의 자동 boxing입니다.
부울 boolean1 = 1==1;
이 세 가지 방법의 차이점은 무엇입니까?
먼저 코드를 살펴보겠습니다
Boolean[] boolean1 = new Boolean[100];Boolean[] boolean2 = new Boolean[100];Boolean[] boolean3 = new Boolean[100];for (int i = 0; i < 100;i++){ boolean1[i ] = Boolean.valueOf(1==1);}for (int i = 0;i < 100;i++){ boolean2[i] = new Boolean(1==1);}for (int i = 0; i < 100;i++){ boolean3[i] = 1==1;}System.out.println("valueOf: " + String.valueOf(boolean1[1] == boolean1[2]));System.out.println("새 부울: " + String.valueOf(boolean2[1] == boolean2[2]));System.out.println("자동 랩: " + String.valueOf(boolean3[1] == boolean3[2]));
출력은 다음과 같습니다
valueOf: truenew 부울: falseauto 랩: true
왜 이런 일이 발생합니까?
그 이유는 new로 생성된 Boolean 객체는 지속적으로 새로운 인스턴스 객체를 생성하는 반면, valueOf는 Boolean 클래스의 정적 멤버 변수를 반환하고 동일한 인스턴스 변수를 많이 생성하지 않기 때문입니다. 자동 래핑은 valueOf와 유사합니다.
실제로 jdk 문서에서는 Boolean 클래스 객체를 생성할 때 new 대신 valueOf를 사용할 것을 권장합니다.