<JAVA> 자바의 정의와 특징 및 SOLID
자바의 정의
- 자바는 썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어
자바의 특징
1. 객체 지향 프로그래밍 (OOP)
프로그래밍을 개발하는 기법으로 , 부품에 해당하는 객체들을 먼저 만들고 객체들을 조립 및 연결하여 전체 프로그램을 완성 하는 것
캡슐화
- 하나의 객체에 대해 그 객체가 특정한 목적을 위한 필요한 변수나 메소드를 하나로 묶는 것
- 가장 중요한 목적은 정보은닉으로 캡슐화를 하면 불필요한 정보를 감출 수 있음
추상화
- 객체들의 공통된 특징을 파악해 정의해 놓은 설계 기법
- 인터페이스와 추상클래스
다형성
- 형태가 같은데 다른 기능을 하는 것
- 한 레퍼런스 변수가 다른 형태의 객체를 참조할 수 있음
- 오버로딩, 오버라이딩 등등
상속성
- 기존 상위클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있도록 도와주는 개념
- 코드의 중복을 없애기 위함
2. 높은 이식성
- 이식성 : 서로 다른 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것
- 자바가 JVM 위에서 돌아가고 JVM에서는 별도의 Java Compiler 를 통해 사용자의 코드를 Byte 코드로 변환하기 때문에 모든 자바 프로그램은 자바 실행 환경 (JRE) 이 설치되어 있는 모든 운영체제에서 실행 가능
3. 자동 메모리 관리 (gc)
- 자바는 가비지 컬렉션을 사용해 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 자동으로 해제
4. 멀티 쓰레드 지원
- 하나의 프로그램에서 여러 개의 쓰레드가 동시에 실행할 수 있는 환경을 지원
- 동시에 여러가지 작업을 하는 경우 , 대용량 작업을 빨리 처리할 경우 사용 필요
5. 동적 로딩
- 실행 시 모든 클래스가 로딩되지 않고, 필요한 시점에 클래스를 로딩해서 객체를 생성
- 그때그때마다 메모리에서 불러오기 때문에 프로그램 실행 속도가 정적로딩에 비해 느림
정리
- 자바의 정의
-
자바는 객체지향 프로그래밍 언어
- 자바의 특징
-
객체 지향 프로그래밍 , 높은 이식성 , 자동 메모리 관리, 멀티 쓰레드 지원, 동적 로딩 등이 있음