플레이데이터 - 3일차 자바 공부

Kim Hyen Su·2023년 7월 3일

🎇연산자

비교 연산자

  • <, >, <=, >=, ==, !=
  • 연산 결과를 boolean 값을 반환하는 연산자.
  • 참조형과 기본형 간의 비교 연산이 불가능하다.
    - 참조형은 참조한 메모리 값을 담고 있고, 기본형에는 실제 값을 담고 있어 서로 값의 형태가 달라 비교가 불가능하다.

논리 연산자

  • AND(&&), OR(||), NOT(!)

단락회로평가

논리 연산자 사용 시, 연산 결과가 예상되는 경우에 뒤의 연산을 생략하는 것이 가능하여, 효율성이 좋다. 반면에, 비트 연산자(&, |)의 경우 단락회로 평가가 적용되지 않아 효율이 상대적으로 떨어진다.

복합대입 연산자

  • 단축키
  • +=, -=, *=, /=, %=

🎇조건문

if

	if(조건 식) {
    	true 시 실행 코드.
    }

if else

	if(조건 식){
    	true 시 실행 코드.
    }else {
    	false 시 실행 코드.
    }

if else if

	if(조건 식1){
    	조건식 1이 true 시 실행 코드.
    }else if(조건 식2){
    	조건 식 1이 false && 조건 식2 true인 경우 실행되는 코드.
    }else {
    	모든 조건 식이 false인 경우 실행되는 코드.
    }

switch문

  • 변수 중심의 조건문
  • 변수 타입은 숫자형, 문자형, 문자열을 사용한다.
  • 가독성이 좋다는 장점이 있다.
  • 변수 내 저장 값의 범위를 설정하기 위해 default를 통해 설정해주는 것이 일반적이다.
  • 실행 순서 : (1) 변수 값이 case와 일치하는 곳으로 이동 → (2) 실행 후 하위의 모든 실행 구문을 실행한다.
  • 위 (2)번 과정을 생략하기 위해서는 break를 사용하여 switch문을 탈출해야 한다.
	switch(변수){
    	case 값 : 
        실행구문;
        break;(탈출)
    }

🎇반복문

for문

  • 반복횟수가 명확한 경우 사용하는 반복문.
  • 실행 순서 : 초기값 → 조건식 → true → 괄호 내부 코드 실행 → 증감식 → 조건식 → ... 반복.
  • 관습적으로 내부 변수명은 i,j,k ... 문자를 사용하며, 하나의 for문에 여러개의 변수를 사용할 수 있다.
	for(초기식; 조건식; 증감식){
    	반복 코드
    }

while문

  • 반복횟수가 명확하지 않은 경우 사용하는 반복문.
	while(조건식){
    	반복 코드
    }

do while문

  • 최소 한번 실행 후 조건을 따져서 반복하는 반복문.
	do{
		반복 코드
	}while(조건식)

🎇제어 키워드

break

  • 반복문 탈출 후 종료.
  • label을 이용한 중첩 반복문 탈출 시, 탈출할 반복문의 label과 break를 함께 써주어 탈출한다.
Outer : for(int i = 0; i <= 10; i++){
	for(int j = 0; j <= 10; j++){
    	if(조건식){
        	break Outer; // 외부 반복문 탈출
        }
    }
}

continue

  • 반복문 내 일정 조건 건너뛰기.
  • 반복문 내에서 continue 실행 시 아래의 코드가 실행되지 않고 다시 반복문을 반복한다.

🎇참조형 변수

메모리 영역

	▶ 데이터 영역 / 스택 영역 / 힙 영역
    
    데이터 영역 :
    Java 실행 시 생성, 모든 스레드가 공유함.
    클래스 로더에 의해 클래스가 로딩되는 영역.(클래스 영역)
    클래스 로더에 의해 읽힌 클래스 내부의 정적 필드와 상수, 메서드 코드와 생성자 코드 등을 분류하여 저장하는 영역.(데이터 영역)
    리터럴 풀(상수 풀)이 저장되는 영역도 존재하며, 프로그래밍 중 사용되는 모든 리터럴 값이 리터럴 풀에 저장되어 있다.(상수 영역)
    정적(static) 자원은 클래스 로딩 직후 초기화 되어 정적으로 생성된다.(정적 영역)
    
    스택 영역 :
    지역 및 매개변수, 참조 변수 등은 스택에 쌓이고 사용이 끝나면 정리되어 사라진다.
    
    힙 영역 :
    객체 생성과 함께 생성되며, 참조 되지 않은 객체의 경우 GC에 의해 자동 삭제된다.
    
  • 자바 변수의 자료형은 기본형과 참조형이 있다.

  • 참조형 변수는 참조값(주소값)을 가리키는 변수를 의미한다.

  • 실제 값은 (힙) 메모리 내부에 저장되어 있고 해당 메모리는 참조 변수에서 참조하고 있다.

  • 참조 변수는 선언과 동시에 null 값이 담긴다. 이를 초기화 없이 사용할 경우, NullPointException이 발생하게 된다.

  • 자바에서는 동일한 리터럴 값을 참조하는 두개 이상의 참조변수는 메모리를 효율적으로 관리하기 위해 동일한 메모리에 있는 리터럴 값을 참조하게 된다.

  • new 연산자는 힙 영역에 새로운 객체를 생성할 때 사용하는 연산자로 객체 생성 연산자를 의미한다.

  • String 객체 내부의 값을 비교해야하는 경우, equals() 메서드를 사용한다.

  • 참조를 잃은 객체는 Garbage Collector에 의해 메모리에서 자동 제거된다.(Java 메모리 관리)

참조 변수의 ==, != 연산

메모리 주소값이 같아야 true 반환.
즉, true인 경우 두 참조 변수가 같은 메모리를 참조하고 있다는 것을 의미한다.

profile
백엔드 서버 엔지니어

0개의 댓글