개발자가 자바 소스코드(.java) 작성자바 컴파일러가 자바 소스코드(.java) 파일을 읽어 바이트코드(.class) 코드로 컴파일바이트코드(.class) 파일은 아직 컴퓨터가 읽을 수 없고 JVM(자바 가상 머신)이 읽을 수 있는 코드✔️ 바이트 코드 : 특정 하드
call by value > 값에 의한 호출 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시공간이 생성됨 ➡️ 종료 시 해당 공간 사라짐 함수 호출 시 전달되는 변수 값을 복사해서 함수 인자로 전달 ➡️ 이때 복사된 인자는 함수 안에서 지역적으로
자바는 기본현(Primitive type)과 참조형(Reference type)이 있음Java Data Type ㄴ Primitive Type ㄴ Boolean Type(boolean) ㄴ Numeric Type ㄴ Integral Type
타입을 변환하는 것(=형변환)(1)은 0.1이 double형이지만 int로 될 정보 또한 가지고 있음(2)는 true는 int형이 될 정보를 가지고 있지 않음1\. 다형성 : 오버라이딩 된 함수를 분리해서 활용할 수 있음2\. 상속 : 캐스팅을 통해 범용적인 프로그래밍
JVM(자바 가상 머신) > 시스템 메모리를 관리하면서 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공 ➡️ JVM의 목적은 다른 프로그램을 실행시키는 것 기능 자바 프로그램이 어느 기기나 운영체제 상에서도 실행될 수 있도록 하는 것 ➡️ JAVA와
스레드(Thread) > 프로세스 안에서 실질적으로 작업을 실행하는 단위 ✔️ 프로세스 : CPU에 의해 메모리에 올라가 실행 중인 프로그램 멀티스레드 > 하나의 프로세스 안에 여러 개의 스레드가 동시에 작업을 수행하는 것 스레드 구현 Runnable 인터페이스 구
사용하지 않는 객체는 메모리에서 삭제하는 작업JVM에서 수행(힙 메모리만 다룸)C/C++ 언어와 달리 자바는 개발자가 명시적으로 객체를 해제할 필요가 없음객체가 NULL인 경우(ex. String str = null)블럭 실행 종료 후, 블럭 안에서 생성된 객체부모 객
시스템 레벨에서 발생하여 개발자가 조치할 수 없는 수준➡️ 컴파일 시 문법적인 오류와 런타임시 널포인트 참조와 같은 오류로 프로세스에 심각한 문제를 야기시켜 프로세스를 종료시킬 수 있음ex. 메모리 부족, 스택 오버플로우 JVM에 설정된 메모리의 한계를 벗어난 상황일
✔️ 상속(Inheritance) 하위 클래스가 상위 클래스의 특성을 재정의 한 것 구현 상속(클래스 -> 클래스)의 단점 1\. 캡슐화 위반 2\. 유연하지 못한 설계 3\. 다중 상속 불가능기존 클래스가 새로운 클래스의 구성요소가 되는 것➡️ 상속처럼 기존의 클래스