1. 기본자료형
문자 : char
정수 : byte, short, int, long
실수 : float, double
논리 : boolean
이렇게 8가지 기본자료형을 제외한 나머지 자료는
클래스를 통해서 메모리가 할당됩니다.
예를 들어, 문자열 자료형은 String 이라는 클래스를 통해서 메모리가 할당되지요.
클래스는 첫번째 스펠링이 대문자로 되어 있으므로 구분하기가 쉬울 것입니다.
기본자료형과 클래스의 가장 큰 차이점!
기본자료형은 단순히 해당하는 크기의 메모리만 할당해주는 반면,
클래스는 자료형과 더불어 그 클래스만의 함수도 포함하고 있다는 점!
* 유의점!
long regNo = 9003012155000L;
이와 같이 long 자료형은 이 데이터가 long 형이라는 것을 명시해주기 위해
long 형 초기화할 떄는 숫자 맨 뒤에 'L' 을 써주기!
같은 맥락으로
float f = 2.2f;
float 는 f 써주기!
[자료형 변환]
일반적으로 자료형에서 는 아래의 규칙이 성립하는군요.
// 같은 자료형 변수를 연산하면 결과도 그 자료형!
// 다른 자료형끼리 연산하면 더 표현범위가 넓은 쪽으로 바뀐다.
자료형변환의 종류는 크게 2가지가 있습니다.
1) 자동형변환 = 묵시적 형변환
short a = 100, b = 200;
int n = a + b;
그 예가 위의 코드이지요. ㅎㅎ
double i = 7/10;
System.out.println(i); //0.0
이것도 묵시적 형변환의 예 !!
하지만 이런 형변환은 프로그래머가 의도적을 한 것인지 실수인지 알 수가 없기 때문에.
의도적으로 형변환했다는 것을 확실히 명시해줄 필요가 있습니다.
2) 강제형변환
char ch1 = (char) j;
이것이 그 예 이지요.
2. 연산자 우선순위
<자바의 연산자 우선순위>
1) 단항 : !, ++, --
(증감연산자 : postfix(i++), prefix(++i))
2) 이항 - 산술 : +, -, *, /, %
- 논리 : &&, ||
- 관계 : > , >=, <, <=, ==, !=
3) 삼항 : 조건식 ? 참일떄 값 : 거짓일때 값;
4) 대입 : =, +=, -, *=, /= .....
[예제]
// 0~100 사이의 두 숫자중 더 큰 숫자를 출력하시오.
int c = (int) (Math.random() * 101); // 랜덤으로 0~1 사이의 실수를 생성하고 101을 곱하여 0~101 사이의 실수를 생성한 후 int 형으로 강제형변환한다.
int d = (int) (Math.random() * 101);
System.out.println("c is " + c + ", d is " + d);
System.out.println("so.. " + (c>d ? c : d)); // 삼항연산자로 더 큰 숫자 출력!