클래스간 중복 제거하기 위해 상속과 인터페이스 중복 제거 조건 1. 공통멤버를 가지는 클래스들 간의 공통점이 있는가? 2. is kind of 관계가 성립하는가? 자식 클래스 인스턴스 처리 순서 상속한 부모클래스 먼저 생성 이후 자식클래스 생성 public class Employee{} public class LMSTest{ public static void main(String[] args){ Employee e = new Employee(); } } 스택에 생긴 e 에서 힙에 생긴 Employee에 접근 자식 클래스에서 this로 부모 클래스 멤버 변수에 접근가능 super class A extends B A 클래스내에서 this == A, super ==B super는 상속받은 클래스의 모든 생성자..
인스턴스? 객체 : 속성과 행동으로 구성된 하나의 단위(전산화하려는 실체) 클래스 : 객체를 만드는 설계도 인스턴스 : 클래스를 메모리에 new 명령문으로 생성한 객체 자바의 메모리 메소드 영역 : class 파일 실행 시 JVM 클래스로더가 실행하기 위해 클래스의 메소드 및 레퍼런스를 메소드 영역에 올림모리 힙 영역 : 클래스의 인스턴스 생성될때 저장(필드값만) 스택 영역 : 자바가 접근할 수 있는 유일한 메모리, 힙 메모리에 할당된 인스턴스 참조 정보를 저장함, 지역변수 저장 JVM에서 메모리 변수 검색 순서 1. 현재 실행 중인 메서드의 스택 영역 검색 2. 스택에 없으면 this가 참조하는 인스턴스 필드 검색 static : 메소드 영역의 스태틱 존에 클래스파일 실행 시 바로 올라감 스태틱 붙은 ..
프로그램 개발 순서 소스파일 >> 컴파일 >> 실행파일 >> 실행 >> 컴퓨터 컴파일 고급언어(자바, 소스파일)는 저급언어(기계어, 실행파일)로 컴파일 필요. 자바 실행파일 자바 소스파일 >> 컴파일 >> 실행파일(바이트코드, 기계어 아님) >> 실행 >> JVM >> 컴퓨터 *.java javac *.java *.class java *(class 확장자 생략) JVM 실행환경 운영체제에 맞는 JVM에서 바이트코드만 돌리면 되기 때문에 자바는 플랫폼 종속적이지 않음 클래스로더 : 실행에 필요한 클래스 찾아줌 바이트코드 검증 : 실행파일 코드의 유효성 검증 JIT 컴파일러 : 기계어 코드로 변환,,, 한줄씩 변환해주는 인터프리터 방식, 전체 변환해주는 컴파일 방식 자바 플랫폼 JAVA SE(Standard..