[Java] Call By Reference와 Call By Value
·
Java
자바에서 메소드를 호출할 때 파라미터를 전달하는 방법에는 call by reference와 call by value라는 두 가지 방법이 존재하는데 각각에 대해서 알아보자. 우선 call by reference와 call by value의 주요한 차이점은 메서드 내에서 데이터(파라미터)가 전달되고 수정되는 방식이다. Call By Value 우선 값에 의한 호출(call by value)은 메서드 호출 시 파라미터로 전달되는 변수 값의 복사본이 메서드에 전달되는 것을 의미한다. 다시 말해서, 메서드 호출 시 전달된 파라미터 값은 메서드 안에서 값이 변경되더라도 원래 값(파라미터)에 영향을 주지 않는다는 것을 의미한다. 복사본이 메서드에 전달된다는 것이 무슨 말인지 이해가 안 된다면 아래 예시 코드를 보면 ..
가비지 컬렉션(Garbage Collection)이란?
·
Java
가비지 컬렉션(Garbage Collection, GC) C/C++과 달리 자바는 개발자가 명시적으로 객체를 해체할 필요가 없다. 이는 자바의 장점 중 하나이다. 사용하지 않는 객체를 메모리에서 삭제하는 작업을 GC라고 부른다. 가비지 컬렉션은 동적으로 할당된 메모리 영역 중 사용하지 않는 영역(쓰레기)를 찾아 지우는 역할을 한다. GC에 대해 자세히 알기 전에 'stop-the-world'를 먼저 살펴보자. stop-the-world? GC를 실행하기 위해 JVM은 애플리케이션 실행을 멈추게 하는데 이를 'stop-the-world(STW)'라고 한다. 모든 GC는 STW를 발생시키는데 STW가 발생하면 GC를 실행하는 Thread를 제외하고 모든 Thread는 작업을 멈춘다. GC 작업이 완료되어야 ..
JVM(Java Virtual Machine)이란?
·
Java
JVM이란? JVM(Java Virtual Machine)은 자바를 실행하기 위한 가상 기계로 Java의 특징 중 하나인 OS에 종속받지 않고 사용할 수 있는 특징을 가능하게 해주는 도구이다. JVM이 Java와 OS사이에서 중개자 역할을 수행하기 때문에 Java가 OS에 종속받지 않고 사용을 가능하게 해준다. 그리고 메모리 관리(Garbage Collection)도 수행한다. JVM 구성 요소 Class Loader Class Loader는 클래스 파일(.class file)을 JVM이 OS로 부터 할당받은 메모리 영역(Runtime Data Area)으로 로딩하는 역할을 한다. Execution Engine 클래스 로더가 메모리(Runtime Data Area)에 클래스 파일들을 적재시켰다면 실행 엔..
배열
·
Java
💡 배열 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 "배열"이라고 한다. 여러 값을 index로 접근해서 관리할 수 있다. (index는 0부터 시작한다. 범위는 0부터 배열의 길이 -1까지이다) 배열 선언 타입[] 변수이름; -> int[] score; 타입 변수이름[]; -> int score[]; 배열 생성 배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다. 타입[] 변수이름; // 배열을 선언 변수이름 = new 타입[길이]; // 배열을 생성 // 배열 선언과 생성을 동시에 int[] score = new int[5]; // 길이가 5인 int배열 배열의 인덱스를 활용해..
반복문 - for문
·
Java
💡 For문 코드를 작성하다 보면 중복이 되는 코드들이 있다. 중복되는 코드들을 반복문을 이용하여 간단하게 표현할 수 있다. 반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용된다. 반복의 3요소에는 초기값 지정; 반복 조건; 상태 변경(반복할 때마다 실행될 것))이 있다. for문의 기본 구조 for(초기값 지정; 조건 상태; 상태 변경) { // 조건식이 참(true)인 동안 수행될 문장 } 제일 먼저 초기화가 수행된다 -> 초기값 지정 조건식이 참인 동안 수행될 문장이 실행된다. -> 조건 상태 확인 후 블럭 안 구문 실행 문장이 실행되고 증감식이 진행된다. -> 상태 변경 조건식이 거짓이 되면 for문을 빠져나간다. -> 조건 상태 확인 후 false면 for문 종료 for문 사용 예 for(..
조건문
·
Java
Boolean boolean 자료형은 참 또는 거짓(true/false)의 값을 갖는다. boolean 연산은 조건문의 판단 기준으로 많이 사용한다. System.out.println(1 true System.out.println(1 > 3); -> false Single equal(=) - assign assign → single equal (=) ⇒ 변수에 값을 지정 / 값에 이름을 붙여줌. x = 1; x라는 변수에 1을 할당했다고 표현이 된다. boolean result = 1 = 1; System.out.println(result); -> 1 error result에다 1을 할당해주고 또 1을 할당해준다는 의미는 말이 안되기 때문에 에러가 발생 Double equal(==) - ..