boolean | 1Byte | true, false |
char | 2Bytes | Unicode |
byte | 1Bytes | 정수형 숫자 |
short | 2Bytes | 상동 |
int | 4Bytes | 상동 (기본) |
long | 8Bytes | 상동 (명시적 선언, L) |
float | 4Bytes | IEEE 754, 부동 소수점 (명시적 선언, F) |
double | 8Bytes | 상동 (기본) |
floating point를 대상으로한 % 연산의 값은 의미가 없는 값.
Short-Circut Evaluation(=SCE)
public class example {
public static void main(String[] args)
{
int num1 = 0, num2 = 0;
boolean ret;
ret = (num1 += 10) < 0 && (num2 += 10) > 0;
System.out.println("num2 = " + num2);
}
}
-> ret = 0
num1 += 10 < 0 자체가 false이고 && 이므로 뒤에 식은 굳이 할 필요가 없어, 실행되지 않는다.
& | 비트단위로 AND 연산 |
| | 비트단위로 OR 연산 |
^ | 비트단위로 XOR 연산, (다르면 1, 같으면 0) |
~ | 비트를 반전, (0 -> 1, 1 -> 0) |
>> | 오른쪽으로 bit shift, 빈 공간은 원래 msb로 채움 (부호 보존 가능) |
>>> | 오른쪽으로 bit shift, 빈 공간은 0으로 채움 (부호 보존 불가능) |
public class example {
public static void main(String[] args)
{
System.out.println(-8 >> 1);
System.out.println(-8 >>> 1);
}
}
-> -4
-> 2147483644
자바에서는 메소드가 정의되는 위치는 프로그램에 영향을 미치지 않는다.
->어떠한 메소드를 호출하는 지점 이후에 해당 메소드를 정의해도 무방.
'JAVA' 카테고리의 다른 글
Nested class, Lambda basic & concept (0) | 2021.10.21 |
---|---|
클래스 패스, 패키지 & 접근 제어 (0) | 2021.10.21 |
객체와 참조변수 (0) | 2021.10.21 |