Java 3

JAVA 상속

학습목표 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 # 자바 상속의 특징 객체에 메소드(기능)를 추가하는 것을 하고 싶다. 그러나 아래 2가지 때문에 어렵다. 1. 만약 객체에 추가하는 메소드를 자신이 만들지 않았다. 그렇다면 원 소스를 업데이트 하면 추가한 메소드가 사라져서 이런 문제가 일어나지 않기 위해서는 지속적으로 코드를 관리해야 한다. 2. 해당 객체가 다양한 곳에서 사용되면 다른 곳에서 불필요한 기능이 포함될 수 있다. 그럼 기존의 객체를 그대로 유지하면서 어떤 기능을 추가하는 방법이 없을까? 이런 맥락에서 등장하는 것이 상속이다. 즉 기존의 객체를 수정하지 않으..

Backend/Java 2021.02.20

자바 데이터 타입, 변수 그리고 배열 (2주차)

목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var # 프리미티브 타입 종류와 값의 범위 그리고 기본 값 - 8가지의 기본형 타입이 있습니다. - 기본값이 있기 때문에 Null이 존재하지 않습니다. - 실제 값을 저장하는 공간으로 Stack(스택) 메모리 영역에 저장 됩니다. ​ 타입(Type) 할당 메모리크기 기본값(default) 데이터 표현 범위 논리형 boolean 1 byte false true, false 정수형 byte 1 ..

Backend/Java 2021.01.11

JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (1주차)

학습할 것 JVM이란 무엇인가 컴파일하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM 은 무엇인가? JAVA는 자바 컴파일러에 의해. class 바이트코드 소스로 컴파일된다. 그러나 컴퓨터는 기계어로 변경해야만 이해할 수 있기 때문에 해당하는 바이트코드는 JVM(Java Virtual Machine)이라는 Runtime 환경이 필요하다. JVM 같은 중간 언어를 해석해주지 못하는 언어들은 운영체제가 변경될 때마다 그에 맞게 실행 가능한 프로그램을 만들어야 한다. 이러한 단점을 보완하기 위해 바이트코드를 기계어로 번역해주는 과정을 한 번 더 하며 성능을 포기하고 편리함을 선택했다. JAVA는 왜 다른 언어에 비해 느림..

Backend/Java 2021.01.10