본 글은 책 자바의 정석을 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[배열]의 참조값을 갖고 있다.
'프로그래밍 > 자바' 카테고리의 다른 글
8장 예외처리, 9장 유틸클래스 (0) | 2022.07.28 |
---|---|
6장, 7장 객체지향 프로그래밍 (0) | 2022.07.28 |
1장 자바, 2장 변수 (0) | 2022.07.28 |
[JAVA] 컬렉션 프레임 워크 <-> 배열 변환 (0) | 2022.07.13 |
[JAVA] 자바 메소드 참조 (0) | 2022.04.12 |