목록전체 글 (33)
기록하자..
인터페이스 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 인터페이스는 객체의 사용 방법을 정의한 타입이다. 인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 객체의 사용 설명서라고 생각하면 될 것 같다. 개발 코드가 인터페이스의 메서드를 호출하면 인터페이스는 객체의 메서드를 호출하게 된다. 이렇듯 개발 코드는 구체적인 객체의 내부 구조를 알 필요 없이 인터페이스의 구조만 알고 있으면 된다. 개발 코드가 직접 객체의 메서드를 호출하는 방법도 생각할 ..
패키지 학습할 것 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 패키지는 클래스와 인터페이스를 묶는 단위이다. 패키지는 서로 관련된 클래스들끼리 그룹 단위로 묶어 사용함으로써 클래스를 효율적으로 관리할 수 있게 한다. 또한 접근을 제어하고, 연관된 타입을 묶는 역할로도 사용할 수 있다. 패키지는 클래스의 일부분이라 할 수 있다. 패키지는 클래스를 유일하게 식별하게 만들어주는 식별자 역할을 한다. 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식한다. 클래스의 전체 이름은 "패키지명 + 클래스명"인데 패키지가 상.하위로 구분되어 있다면 도트(.)를 사용해서 다음과 같이 표현한다. 상위패키지.하위패키지.클래..
상속 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 더블 디스패치 (Double Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속은 OOP의 중요한 특징 중 하나이다. 상속은 기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것을 말해준다. 이미 잘 개발된 클래스를 이용해 새로운 클래스를 만들기 때문에 코드의 중복을 줄여준다. 자바에서 상속을 구현하기 위해서는 extends 키워드를 사용한다. class Parent { } class Child extends Parent { } 위에서 얘기했듯이 여기서 새로운 클래스는 Chlid이고 기존의 클래스는 Parent이다. 프로그램..
클래스 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 클래스 정의하는 방법 클래스 작성 규칙 하나 이상의 문자로 이루어져야 한다. Hello 첫 번째 글자는 숫자가 올 수 없다. 2Hello (X) '$', '_' 외의 특수문자는 사용할 수 없다. $Hello, _Hello @Hello (X) 자바 키워드는 사용할 수 없다. int (X), for (X) 클래스 작성 규칙은 관례적으로 첫 글자를 대문자로, 나머지는 소문자로 작성한다. 만약 서로 다른 단어가 혼합된 경우라면 각 단어의 첫 글자는 대문자로 작성한다. 이제 클래스 작성 규칙을 알고 클래스의 이름을 알았다면 다음과 같이 소스 파일을 생성한다. '클..
제어문 학습할 것 선택문 반복문 제어문 자바 프로그램을 시작하고 프로그램의 실행 흐름이 존재할 때, 실행 흐름을 원하는 방향으로 바꿀 수 있도록 해주는 것이 제어문이다. 선택문 if 문 if문은 의사결정문이라고 할 수 있다. 다음은 if문의 형식과 실행 흐름이다. if (조건식) { // 조건식이 false일 때는 이 블록을 실행하지 않는다. // 조건식이 true } if문은 else문과 함께 사용할 수 있다. 조건식의 결과에 따라 실행 블록을 결정하는데, 조건식이 true이면 if문의 블록을 실행하고, false라면 else문의 블록을 실행한다. if (조건식) { // 조건식이 true } else { // 조건식이 false } 조건식을 여러 개 넣고 싶다면 else if문을 사용할 수 있다. 처..
학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 산술 연산자 연산자 피연산자 수 산출 값 설명 + 이항 숫자 덧셈 연산 - 이항 숫자 뺄셈 연산 * 이항 숫자 곱셈 연산 / 이항 숫자 좌측 피연산자를 우측 피연산자로 나눗셈 연산 % 이항 숫자 좌측 피연산자를 우측 피연산자로 나눈 나머지를 구하는 연산 자바에는 다음가 같은 산술 연산자들이 있다. 산술 연산자의 경우 숫자 타입(byte, short, int, long, float, double)으로 결과가 나온다. 사용법을 보자. int a = 4; int b = 5; Syste..
학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입에는 int, byte, short, long, float, double, boolean, char 총 8가지의 타입이 있다. Type Size(bits) Minimum Maximum byte 8 -27 27-1 short 16 -215 215-1 int 32 -231 231-1 long 64 -263 263-1 다음과 같은 범위를 계산하는 방법은 메모리 크기와 연관이 있다. n개의 비트가 있다면 ..
학습할 것 JVM 이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는가 JVM 구성요소 JDK와 JRE의 차이 JVM 이란 무엇인가 자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트코드이기 때문에 운영체제 위에서 바로 실행할 수 없다. 이를 실행하기 위해서 어떤 가상의 운영체제가 필요한데 이를 JVM(Java Virtual Machine)이라고 한다. :dart: 컴퓨터가 이해할 수 있는 언어는 기계어로 이루어진 바이너리 코드이다. 운영체제별로 프로그램을 실행시키는 방법이 다르기 때문에 각 운영체제(Window, Linux, Mac 등등)에서 동일한 실행결과가 나올 수 있도록 운영체제와 바이트코드(.class)사이에 JVM을 두어 동일한 ..