Call by value와 Call by reference

Call by value와 Call by reference 상당히 기본적인 질문이지만, 헷갈리기 쉬운 주제다. call by value 값에 의한 호출 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시공간이 생성됨 (종료 시 해당 공간 사라짐) call by value 호출 방식은 함수 호출 시 전달되는 변수 값을 복사해서 함수 인자로 전달함 이때 복사된 인자는 함수 안에서 지역적으로 사용되기 때문에 local value 속성을 가짐 따라서, 함수 안에서 인자 값이 변경되더라도, 외부 변수 값은 변경안됨 예시 void func(int n) { n = 20; } void main() { int n = 10; func(n); printf("%d", n); } printf로 출력되는 값은 그대..

자바 컴파일과정

자바 컴파일과정 들어가기전 자바는 OS에 독립적인 특징을 가지고 있습니다. 그게 가능한 이유는 JVM(Java Vitual Machine) 덕분인데요. 그렇다면 JVM(Java Vitual Machine)의 어떠한 기능 때문에, OS에 독립적으로 실행시킬 수 있는지 자바 컴파일 과정을 통해 알아보도록 하겠습니다. 자바 컴파일 순서 개발자가 자바 소스코드(.java)를 작성합니다. 자바 컴파일러(Java Compiler)가 자바 소스파일을 컴파일합니다. 이때 나오는 파일은 자바 바이트 코드(.class)파일로 아직 컴퓨터가 읽을 수 없는 자바 가상 머신이 이해할 수 있는 코드입니다. 바이트 코드의 각 명령어는 1바이트 크기의 Opcode와 추가 피연산자로 이루어져 있습니다. 컴파일된 바이크 코드를 JVM의..