java 자바정리 기초, 문법, 규칙, 정리, 변수이름 및 초기화, Casting, 비트연산
변수 이름 짓기
변수, 상수, 메서드 이름 지을 때 규칙이 있다.
이를 어길 시 오류가 빈번히 발생한다.
첫 글자 영문자
keyword X
특수문자 X
공백 문자 X
최대 32 문자
아무 이름이나 적는 것보다 뜻을 생각하고 의미를 부여해서 짓는 게 좋다.
물론 for문에서 잠시 사용하는 코드는 i, j, k, num, a, b, aa 이런 식으로 간단하게 지어도 좋다.
변수를 초기화할 때 값을 넣어 초기화하는 행동은 멀리하자.
Casting
형 변환
자동형 변환
서로 다른 타입을 연산할 때 (오토 스팅)
작은 타입이 큰 타입에 영향을 받아 변경
강제 형 변환
개발자 필요에 의해 Casting
int + double을 doule + double로
3 + 3.2 → 3.0 + 3.2로 자동으로 바뀐다.
3 / 4 = 0.75인데
int / int = int 니까 0이나 온다. 왜냐하면 int 특성상 소수점은 표시하지 않기 때문에 잘라버린다.
double로 바꿔서 쓰면 알아서 나머지 int가 double로 바뀌어서 오토 캐스팅이 일어난다.
주의
- buffer(임시저장 메모리) 캐스팅할 때 계산해야 하니 순간적으로 바뀌는 거다. 영구적으로 바뀌지 않는다.
- a=+1; 한 문장에 똑같은 걸 쓰지 마라. 그럼 이걸 대체할 수 있는 게 뭐가 있을까?
...
코드를 실행하고 변수에 더하는 a++이다... 1을 변수에 더하고 실행하는 ++a도 마찬가지이다.
b=a++이라고 하자, 우선 a값을 b에 집어넣고 a에 1을 증가시키는 것이다.
감소는 a+a-1 타임라인에 똑같은 게 나오기 싫기 때문에 a--, --a 연산이 있는 것이다.
물론
a=a+4도 대체할 게 있다.++a ++a ++a ++a를 할 것이냐...
그냥 합쳐서 a+=4라고 입력하면 쉽다.
논리
논리 | 설명 | 코드 |
and | 둘 다 true여야 true가 나온다 | a&&b |
or | 둘 중 하나만 true여도 true가 나온다 | a||b |
그럼 '&' 나 '|'를 하나씩 쓴다면... 계산을 해보자
3&10 = 2 인 것을 계산해 보자. 우선 2진수로 변환한다.
0011 =(숫자)=> 3
1010 =(숫자)=> 10
순서대로 false false true false 이므로 0010이다.
그러므로 0010은 2이다.
비트 쉬프트 연산자
쉬프트 연산자 | 설명 | 발자국 (이동하면서 생기는 수) |
<< (leftshift) | 2 진수에서 비트열을 왼쪽으로 이동 | 발자국 0으로 남는다 |
>> (right shift) | 2진수에서 비트열을 오른쪽으로 이동 | 양수일 때 0으로 남고 음수일 경우 1로 남긴다. |
>>> | 2진수에서 비트열을 오른쪽으로 이동 | 발자국은 양수건 음수건 0으로 남긴다. |
즉, int a = x << y라고 하면 2^y*x가 된다.
&한 개만 쓰면 비트 연산이다. 결괏값은 10진수 결괏값이 나온다.
&& 두 개 쓰면 논리 연산자가 된다. 참 거짓으로 나온다.
주의
- a=3; a<<1; //6
- 변수에 대해 연산과 선언 초기화를 확실히 하자
- 변수를 초기화해야만 값이 바뀐다.
- 그냥 연산일 뿐이다.
- 연산 후 a는 6이야 라고 하면 틀립니다. 왜냐하면 a값은 3이야가 맞습니다.
- 저 연산한 값이 6일뿐입니다.