혼공단/혼공자

혼공자 - 2주차

珠延 2024. 1. 13. 21:15

Chap 4 조건문

  • if문 
  • if-else문 
  • switch문 

✨ if문 (if문, if-else문)

 

 

✨ switch문

  • 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다
  • 괄호 안의 변수 값과 동일한 값을 갖는 case로 가서 실행문을 실행한다.
  • 변수 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행한다. (생략 가능)
  • break : 다음 case를 실행하지 않고 switch문을 빠져나가기 위해 사용됨

 
 

 

👉🏻기본미션


반복문

  • 어떤 작업이 반복적으로 실행되도록 할 때 사용된다.
  • 반복문에는 for, while, do-while문이 있다.

 

🌟 for문

for(초기화 식; 조건식; 증감식){

	실행문;
}

   

🌟 중첩 for문

  • for문 안에 또 다른 for문을 내포하는 것
  • 바깥쪽 for문이 한 번 실행할 때마다 중첨된 for문은 지정된 횟수만큼 반복해서 돌다가 다시 바깥쪽 for문으로 돌아간다
for(int i=1; i<10; i++){
	for(int j=1; j<=9; j++{
    	System.out.println(i+"x"+j+"="+i*j);
        }
}

 

🔆 While 문

  • 조건식이 true일 경우게 계속해서 반복된다
  • 조건식이 false인 경우 while문을 종료한다
int i=1;
while(i<10){
	System.out.println(i);
    i++;
}

 

🔆 do-while문

  • 실행문을 우선 실행하고 실행결과에 따라서 반복 실행을 결정한다
  • 작성시 while() 뒤에 반드시 세미콜론을 붙어야 된다

⛏️ break문

  • for, while, do=while문의 실행을 중지할 때 사용한다
  • 만약 반복문이 중첩돼있을 경우, 바깥쪽 반복문에 이름(라벨)을 붙이고, 'break 이름'을 사용한다

🚩 Continue문

  • 반복을 종료하지 않고 계속 반복을 수행한다
  • continue문 실행시 for문의 증감식 또는 while, do-while문의 조건식으로 이동한다

Chap5 참조타입

 

기본 타입

  • byte, short, char, int, long, float, double, boolean타입
  • 값 자체가 변수에 저장됨

참조 타입

  • 객체의 번지를 참조하는 타입
  • 배열, 열거, 클래스, 인터페이스 변수는 메모리의 번지를 변수 안에 저장한다.

메모리 사용 영역

  • JVM은 운영체제에서 할당받은 메모리 영역을 메소드 영역, 힙 영역, 스택 영역으로 구분해 사용한다

메소드 영역

  • JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역이다
  • 정적 필드, 메소드 코드 , 생성자 코드 등을 분류해서 저장

힙 영역

  • 객체와 배열이 생성되는 영역
  • 주소가 저장 (call by reference)
  • 참조하는 변수나 필드가 없다면 JVM이 자동으로 제거함

JVM 스택 영역

  • 메소드를 호출할 때마다 프레임을 추가하고 메소드가 종료되면 해당 프레임을 제거하는 동작을 수행한다
  • 참조 타입 변수는 스택 영역에 힙 영역의 객체 주소를 가진다
  • 변수 생성


번지 비교 ( ==, != )

기본 타입 변수에서 ==, != 변수 값이 같은지, 아닌지를 좃
참수 타입 변수에서 ==, != 동일한 객체를 참조하는지, 다른 객체를 참조하는지
즉 번지 값을 비교한다.

 
참수 타입 변수에서 동일한 번지 값을 갖고 있다는 것은 동일한 객체를 참조한다는 의미다.
 


 

null과 NullPointerexception

- 참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null값을 가질 수 있다 (초기화)
- nll로 초기화된 참조 변수는 스택 영역에 생성된다.
- null : String 변수가 참조하는 String 객체가 없다는 뜻
예외 : 도중에 발생하는 오류
-> NullPointerexception
참조를 읽은 String 객체는 어떻게 될까?
>> JVM이 메모리에서 자동 제거 해준다.

new 연산자 (객체 생성 연산자)

  • String 객체를 생성시킴
  • 힙 영역새로운 객체를 만들 때 사용하는 연산자로 객체 생성 연산자라고 한다.

String name1 = new String("hi");
String name2 = new String("hi");

 

name1 == name2;

name1 == name2의 값은 false다.
왜냐하면 name1과 name2는 new 연산자를 통해 서로 다른 String 객체를 참조하고 있기 때문이다.