본문 바로가기

백엔드 기술/Java

(21)
OOP (객체지향 프로그래밍) 이란 ? OOP (객체지향 프로그래밍) 객체를 기준으로 한 코드를 통해 필요한 속성과 기능을 부여하여 관리하고, 필요에 따라 특정 기능을 가진 객체들을 조합하여 결과물을 만드는 프로그래밍 기법. ex) 자판기 라는 물체를 위해 각 속성과 기능에 따라 여러 객체를 나누어 생산하고 조합함. A. OOP - SOLID 원칙 1. S (단일 책임 원칙) : 하나의 클래스는 하나의 책임만 가지고 있다. 2. O (개방-폐쇄 원칙) : 확장에는 열려있지만, 변경에는 닫혀 있어야 한다. 3. L (리스코프 치환 원칙) : 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 객체로 바꿀 수 있어야 한다. 자식클래스의 객체는 부모 클래스의 참조변수를 대입해서 역할 수행이 가능해야 한다. 4. I (인터페이스 분리 원칙) : 인터페..
추상 클래스와 인터페이스 차이 [추상 클래스] ( is a kind of ~ // ex. 사자 is a kind of 동물) 여러 자식들이 가지고 있는 공통된 속성을 뽑아서 하나의 클래스를 만들어 놓은 것. 하위 클래스에서도 상속을 통해 이 추상 클래스를 상속받아 객체를 구체화 한다. 1. 단일 상속을 지원 2. 변수를 가질 수 있다. 3. 하나 이상의 추상 메서드가 존재해야 한다. 4. 자식 클래스에서 상속을 통해 추상 메서드를 구현. // 추상 클래스 // abstract class Animal { public String kind; public abstract void sound(); } // 추상 클래스 상속 // class Dog extends Animal { // Animal 클래스로부터 상속 public Dog() { t..
클래스와 객체의 차이 클래스 객체를 만들 수 있는 설계도. 객체 클래스를 통해 생성된 인스턴스. ex) 개발자 입장에서 상품 페이지를 만든다고 가정하자. 전자 제품 담당자라면, 제품 종류 별로 TV, AC, Stove 페이지를 만들어야 한다. 또한 제품별로 이름, 가격, 특징 등을 다르게하여 일일이 만들어야 하지만, 객체 지향 개념으로 클래스를 이용해 인스턴스를 생성한다면 각 제품군의 설계도를 만들어두면, 필요한 정보들만 넣어 객체를 만들면 간편하게 관리가 가능하다. 1. [제품군별 설계도를 만든다] public class TV { String name; int size; int price; String function; public TV(String name, int size, int price, String functio..
Java 데이터 타입의 기본형 & 참조형 타입 변수(variable) 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간 Java의 데이터 타입 변수에 할당할 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 키워드 A. 기본형 변수 (primitive variable) 값을 저장할 때, 데이터의 실제 값이 저장되는 8가지의 데이터 타입. 즉 입력되는 실제 값은 스택 영역에 있다. 기본형 변수는 크게 논리형, 문자형, 정수형, 실수형 4가지로 나뉜다. 타입 할당되는 메모리 크기 기본 값 데이터의 표현 범위 논리형 boolean 1 byte false true, false 정수형 byte 1 byte 0 -128 ~ 127 short 2 byte 0 - 32,768 ~ 32,767 int (..
JVM (Java Virtual Machine) ? JVM (Java Virtual Machine) 1. 자바 프로그램이 어떠한 운영체제 상에서도 실행될 수 있도록 하는 도구. 2. Java 프로그램 런타임시 메모리를 관리하고 최적화 하는 것. [JVM 구성 요소] #Compiler (컴파일러/ javac) 자바 소스 코드(.java 파일)를 JVM이 이해할 수 있는 바이트코드(.class) 파일로 변환하는 역할. #Class Loader (클래스 로더) .java 파일이 컴파일러를 통해 바이트코드(.class)로 변환되면 이 파일들을 메모리가 할당된 Runtime Data Area로 적재하는 역할. [로딩-링크-초기화] 순서로 진행된다. A. 로딩 클래스 로더가 바이트코드(.class) 파일을 읽고, 적절한 바이너리 데이터를 만들어 메서드 영역에 저장 ..