2016년 7월 17일 일요일

Java 1-2 연산자, 변수타입, 자동형변환(promotion), 연산자 우선순위

1. 주석
// 주석
/* */ 주석
@ 어노테이션 주석(사람, 시스템에 알려주는 주석)

2. static은 객체 생성없이 사용할 수 있다.
3. 자바는 대소문자 구별한다.
4. 기본 데이터 타입 종류
 > 모두 default는 0이다.(그래서 boolean의 default는 false)
타입.크기(byte)
byte.1
short.2
int.4
long.8
float.4
double.8
char.2
boolean.1
//레퍼런스타입.4(32,64bit 상관없이 4byte).default는 NULL.객체의 주소를 저장하는 변수

5. 계산식에 여러가지 데이터 타입이 섞여있을 경우, 같은 타입으로 맞추어 계산한다.
이를 프로모션이라고 한다. 맞출때는 큰 데이터 타입으로 맞춘다.
(예 : int + float = float )

6. 연산자의 우선순위.연산순서

() 왼쪽에서 오른쪽
++, --, 부호(+,-), ~, !, (cast)  오른쪽에서 왼쪽
*, /, %  왼쪽에서 오른쪽
+, -  왼쪽에서 오른쪽
<<, >>, >>>  왼쪽에서 오른쪽
<, >, <=, >=  왼쪽에서 오른쪽
==, != 왼쪽에서 오른쪽
& 왼쪽에서 오른쪽
^ 왼쪽에서 오른쪽
! 왼쪽에서 오른쪽
&& 왼쪽에서 오른쪽
!! 왼쪽에서 오른쪽
?: 왼쪽에서 오른쪽
=,+=,-=,*=,/=,%= 오른쪽에서 왼쪽

99. 실습
public class Operator {

public static void main(String[] args) {

double result = (2 + 4) * 2;
System.out.println(result);

int intA = 12;
double doubleA = 12;
float floatA = 12;
// >>는 비트를 오른쪽으로 밀어낸다.
// 1100을 오른쪽으로 2칸 밀어내어 0011, 즉 3이 된다.
intA = intA >> 2;
// 실수형은 >> 가 안된다. 에러발생
// doubleA = doubleA>>2;
// floatA = floatA >> 2;
System.out.println(intA+ " " + doubleA + " " + floatA);

System.out.println(intA);
intA++;
System.out.println(intA);

System.out.println(doubleA);
doubleA++;
System.out.println(doubleA);

int a = 6 , b = 2;
boolean result2 = a < b || b == 2;
result2 = !(a < b);
System.out.println("result2: " + result2);

// 삼항연산자 -> 조건 ? 참의값 : 거짓의값
String result3 = a==b ? "같다." : "다르다." ;
System.out.println("a와 b가 " + result3);

// 각종 수학 계산기능이 담겨있는 묶음 기능(클래스)
// Math.random() 은 무작위로 더블값을 준다.
double ra = Math.random();
System.out.println(ra);
// int dice = Math.random() * 범위 + 시작값;
// 값이나 특정 계산식의 앞에 (자료타입) 형태를 붙여주면 강제로 타입이 바뀐다.
int dice = (int)(ra * 6 + 1);
// 주사위의 값과 그값의 2배값을 출력하는 상황
System.out.println("dice: " + dice +
", dice*2: " + dice*2);

}
}

댓글 없음:

댓글 쓰기