본문 바로가기

JAVA

자바 자료형 및 기타 연산자

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