Skip to content

Commit

Permalink
#7 [ADD] <JAVA> 자바의 정의와 특징 및 SOLID
Browse files Browse the repository at this point in the history
  • Loading branch information
soyeon207 committed Jul 28, 2021
1 parent 85cf1e3 commit 4f33da0
Showing 1 changed file with 83 additions and 0 deletions.
83 changes: 83 additions & 0 deletions _posts/2021-07-22-what-is-java.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
layout: post
title: <JAVA> 자바의 정의와 특징 및 SOLID
categories: JAVA
tags: [JAVA]
---
## 자바의 정의

- 자바는 썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어



## 자바의 특징
### 1. 객체 지향 프로그래밍 (OOP)

> 프로그래밍을 개발하는 기법으로 , 부품에 해당하는 객체들을 먼저 만들고 객체들을 조립 및 연결하여 전체 프로그램을 완성 하는 것
**캡슐화**

- 하나의 객체에 대해 그 객체가 특정한 목적을 위한 필요한 변수나 메소드를 하나로 묶는 것
- 가장 중요한 목적은 **정보은닉**으로 캡슐화를 하면 불필요한 정보를 감출 수 있음

**추상화**

- 객체들의 공통된 특징을 파악해 정의해 놓은 설계 기법
- 인터페이스와 추상클래스

**다형성**

- 형태가 같은데 다른 기능을 하는 것
- 한 레퍼런스 변수가 다른 형태의 객체를 참조할 수 있음
- 오버로딩, 오버라이딩 등등

**상속성**

- 기존 상위클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있도록 도와주는 개념
- 코드의 중복을 없애기 위함

### 2. 높은 이식성

- 이식성 : 서로 다른 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것
- 자바가 JVM 위에서 돌아가고 JVM에서는 별도의 Java Compiler 를 통해 사용자의 코드를 Byte 코드로 변환하기 때문에 모든 자바 프로그램은 자바 실행 환경 (JRE) 이 설치되어 있는 **모든 운영체제에서 실행 가능**


### 3. 자동 메모리 관리 (gc)

- 자바는 **가비지 컬렉션**을 사용해 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 자동으로 해제


### 4. 멀티 쓰레드 지원

- 하나의 프로그램에서 여러 개의 쓰레드가 동시에 실행할 수 있는 환경을 지원
- 동시에 여러가지 작업을 하는 경우 , 대용량 작업을 빨리 처리할 경우 사용 필요

![ㅇㅇ](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99931C335AF2684421)


### 5. 동적 로딩

- 실행 시 모든 클래스가 로딩되지 않고, **필요한 시점에 클래스를 로딩해서 객체를 생성**
- 그때그때마다 메모리에서 불러오기 때문에 프로그램 실행 속도가 정적로딩에 비해 느림


## 정리

**자바의 정의**

: 자바는 객체지향 프로그래밍 언어


**자바의 특징**

: 객체 지향 프로그래밍 , 높은 이식성 , 자동 메모리 관리, 멀티 쓰레드 지원, 동적 로딩 등이 있음


## 레퍼런스

[[JAVA] 자바(Java) 언어의 특징](https://life-with-coding.tistory.com/430)

[[JAVA 파헤치기]1. 자바의 특징](https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=rhksdlr134&logNo=221548954712)

[JAVA :: 자바란? 자바의 특징(객체지향, 메모리관리, 멀티스레드, 동적로딩, 오픈소스)](https://hongku.tistory.com/171?category=799262)

0 comments on commit 4f33da0

Please sign in to comment.