반응형

본 글은 책 자바의 정석을 ref 하여 요약한 내용입니다.


연산자와 피연산자

연산자에 따라 피연산자의 필요 개수가 달라진다.

* 부호 연산자인 - 경우 피연산자가 1개 필요

* 뺄셈 연산자인 - 경우 피연산자가 2개 필요

 

연산자의 종류

산술 - 사칙연산과 나머지 연산자

비교 - 크기 비교 연산자 

논리 - true, false 결과가 나오는 연산자

대입 - 대입 연산자

기타 - 삼항 연산자

 

연산자 우선순위

우선순위는 산술, 비교, 논리, 대입 순서로 연산된다.

우선순위는 외우는 것 보다는 자연스럽게 생각해도 되며, 필요하다면 괄호를 사용한다.

단항 연산자는 우선순위가 가장 높다는 것을 기억하고 있으면 좋다.

단항, 대입을 제외한 나머지는 연산 순서가 왼쪽에서 오른쪽

 

산술 변환

이항 연산자에서 두 타입이 다르면 타입을 큰 타입으로 일치시킨다.

단, short + byte 같은 정수 연산의 경우 int 연산이 JVM 스택 연산에 가장 효율적이므로 int로 변환된다.

 


 

단항 연산자

전위형(++i), 후위형(i++) 이 있으며, 후위형은 세미콜론; 을 기준으로 실행이 된 이후에 증가시킨다고 생각

부호 표시 연산자

 

산술 연산자

기본적인 사칙연산 순서를 따르며, 나누기를 할 때 0으로 나누는 것을 주의

계산 후 오버플로우가 예상되면 미리 한쪽을 큰 타입으로 형 변환 후 연산한다.

 

비교 연산자

이항 연산자이므로 타입이 맞지 않을 경우 큰 타입으로 변환시킨다.

등가 연산자는 참조 변수를 비교할 경우 객체의 참조값을 비교한다.

 

논리 연산자

&& 가 || 보다 우선순위가 높다.

논리 연산자는 효율적인 연산을 한다. && 라면 좌측만 보고도 false라면 false로 취급한다.

 

대입 연산자

lvalue는 변수처럼 값을 변경할 수 있는 것이어야 한다. rvalue는 변수, 식, 상수 전부 가능하다.

복합 대입 연산자가 가능하다 *=, -= ...

 

 


 

if

조건식의 결과는 반드시 true, false 여야 한다.

* if문을 종료조건으로 사용하면 중첩 블록을 유지하지 않아도 되기 때문에 코드를 깔끔하게 짤 수 있다.

 

switch

조건식, case, break

case에 해당되지 않으면 default

break가 없으면 아래 case도 실행

* case - 변수, 실수 사용 불가능

 

for

초기화, 조건식, 증감식

 

향상된 for문

(타입 변수 : 배열 or 컬렉션)

 

while

조건식이 true이면 계속 실행

* 조건식을 생략할 수 없다.

 

do while

do 블럭을 무조건 1번 실행, 이후 조건문을 확인

 

break

자신이 포함된 가까운 반복문을 멈춘다

 

continue

아래 코드는 실행하지 않은 채 다음 반복으로 진행한다.

 

이름있는 반복문

loop1: for...

* break loop1, continue loop1 

 

 


 

배열

같은 타입의 묶음

저장공간이 연속적으로 배치

index는 0부터 length-1 까지

배열의 크기를 넘어서면 ArrayIndexOutOfBoundException 예외 발생

한번 지정된 배열의 크기는 변경할 수 없다. 새로운 배열을 생성 후 값을 복사해줘야한다.

참조형 배열일 경우 각 요소에 저장되는 값은 참조값이다.

 

다차원 배열

new int[row][col]

row는 수직, col은 수평으로 생각하면 이해하기 쉽다.

각 row는 col[배열]의 참조값을 갖고 있다.

 

 


 

 

 

반응형

+ Recent posts