Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java object 클래스
- nice_v1.1.jar
- 맥북 port kill
- 외부 라이브러리 jar 배포
- object 배열
- object tostring
- 자바
- object배열
- 자바object다형성
- Object
- map multivaluemap
- 졸프
- maven repository jar
- maven jar 배포
- 배포시 systempath
- Spring
- JS
- maver 외부 jar 배포
- 자바스크립트
- object 다형성
- object다형성
- java object 다형성
- maven systempath
- java
- 스프링
- map vs multivaluemap
- niceid_v1.1.jar maven
- javascript
- 도커 컨테이너에 mysql
- maven 외부 라이브러리 배포
Archives
- Today
- Total
모래블로그
JAVA (자바) 본문
728x90
반응형
자바는?
- Java는 객체지향 프로그래밍 언어
- 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어
- 장점
- JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이다.
- 가비지컬렉터(GabageCollector)를 통한 자동적인 메모리 관리가 가능하다.
- 멀티스레드를 지원
- 객체 지향 언어이다.
- 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어
- 단점
- JVM 위에서 동작하기 때문에 실행 속도가 상대적으로 느리다.
- 다중 상속이나 타입에 엄격하며, 제약이 많다.
자바 접근 제어자 종류와 특징
- public - 접근 제한이 없다. (같은 프로젝트 내 어디서든 사용 가능)
- protected - 해당 패키지 내, 다른 패키지에서 상속받아 자손 클래스에서 접근 가능
- default - 해당 패키지 내에서만 접근 가능
- private - 해당 클래스에서만 접근 가능
OOP(Object Oriented Programing, 객체지향 프로그래밍)
OOP 5대 특징
- OOP 5대 원칙(SOLID)
- S : 단일 책임 원칙(SRP, Single Responsibility Principle)
한 클래스는 하나의 책임만 가져야 한다. - O : 개방-폐쇄 원칙(OCP, Open Closed Principle)
확장에는 열려있고, 수정에는 닫혀있어야 한다. - L : 리스코프 치환 원칙(LSP, Liskov Substitution Principle)
상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다. - I : 인터페이스 분리 원칙(ISP, Interface Segregation Principle)
인터페이스를 클라이언트에 특화되도록 분리시키라는 설계 원칙이다 - D : 의존 역전 원칙(DIP, Dependency Inversion Principle)
의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 것이다.- DIP 원칙을 따르는 가장 인기 있는 방법은 의존성 주입(DI)이다.
클래스/객체/인스턴스
- 클래스(Class) : 객체를 만들어내기 위한 설계도 혹은 틀 이라고 할 수 있고, 객체를 생성하는데 사용한다.
- 객체(Object) : 설계도(클래스)를 기반으로 선언된 대상, 클래스의 인스턴스라고도 부름.
- 인스턴스(Instance) : 객체에 메모리가 할당되어 실제로 활용되는 실체
오버로딩/ 오버라이딩
- 오버라이딩과 오버로딩의 차이
- 오버라이딩(Overriding) 상위 클래스에 있는 메소드를 하위 클래스에서 재정의 하는 것
- 오버로딩(Overloading) 매개변수의 개수나 타입을 다르게 하여 같은 이름의 메소드를 여러 개 정의하는 것
자바 메모리 영역
자바의 메모리 공간은 크게 Method 영역, Stack 영역, Heap 영역으로 구분되고, 데이터 타입에 따라 할당된다.
- 메소드(Method) 영역 : 전역변수와 static변수를 저장하며, Method영역은 프로그램의 시작부터 종료까지 메모리에 남아있다.
- 스택(Stack) 영역 : 지역변수와 매개변수 데이터 값이 저장되는 공간이며, 메소드가 호출될 때 메모리에 할당되고 종료되면 메모리가 해제된다. LIFO(Last In First Out) 구조를 갖고 변수에 새로운 데이터가 할당되면 이전 데이터는 지워진다.
- 힙(Heap) 영역 : new 키워드로 생성되는 객체(인스턴스), 배열 등이 Heap 영역에 저장되며, 가비지 컬렉션에 의해 메모리가 관리되어진다.
728x90
반응형
'Language > Java' 카테고리의 다른 글
[Java] Object toString() (4) | 2024.07.23 |
---|---|
[Java] java.lang 패키지 (0) | 2024.07.15 |
Map, MultiValueMap의 차이 (1) | 2024.06.11 |