본문 바로가기
Programming/JAVA

자바의 특징

by 추천캐릭터 2022. 10. 27.
728x90

1. 자바(JAVA)란 무엇인가?

1995년 발표된 자바는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 처음에는 가전제품 내에 탑재해 동장하는 프로그램을 위해 개발했지만 현재는 웹 애플리케이션과 모바일 앱 개발에 가장 많이 사용되는 언어이다.

2. 자바의 특징

● 객체 지향 언어

 -  절차 지향 언어와 다르게 하나의 기능을 객체 형태로 만들어 객체들을 결합하여 하나의 프로그램을 만드는 것.

 - '자바'는 객체 지향 언어의 대표적인 언어이다.

● 인터프리터 언어

-  자바는 컴파일 언어인 동시에 인터프리터 언어이다.

-  텍스트 소스를 컴파일하여 클래스 파일로 만든다음 자바 런타임이 클래스 파일을 인터프리트 하면서 실행된다.

 ● 독립적인 플랫폼

- 어떠한 운영체제라도 독립적으로 자바언어를 사용할 수 있다.(JVM 가상머신에서 실행되기 때문)

 ● 자동 메모리 관리(Garbage Collection)

 - 개발자가 직접 메모리에 접근할수 없으며 자바가 직접 관리한다.

 - 객체 생성시 자동적으로 메모리 영역을 찾아서 할당, 또한 사용하지 않는 객체를 가비지컬렉터가 제거시켜 준다.

 ● 멀티 쓰레딩 지원

 - 하나의 프로그램 단위가 동일한 쓰레드를 동시에 수행할 수 있다.

 - 운영체제마다 멀티 쓰레드를 이용하는 API가 다르나 자바의 경우는 자바 API를 사용하기 때문에 쉽게 구현 가능하다.

● 동적이다

- 객체간 상호 작용을 정의하기 때문에 필요하지 않는 객체는 생성되지 않고, 필요한 객체만 생성해 사용한다.

 

3. 자바의 객체지향 특징

● 캡슐화(Encapsulation)

 - 관련된 기능과 데이터를 하나의 클래스에 묶어서 사용

 - 정보 은닉(접근에 제한을 설정)

 - public (+) : 클래스 내부/외부에서 접근 가능하다.

 - protected (#) : 해당 객체를 상속받은 객체 내부에서 접근할 수 있다. 단순 인스턴스에서 접근할 수 없다.

 - default : 동일한 패키지 내의 객체에서 인스턴스를 생성하여 접근할 수 있다.

 - private (-) : 클래스 내부에서는 접근 가능하나 외부에서 접근할수 없다.

 

● 상속(Inheritance)

- 재사용(extends), 부모 클래스에서 선언한 변수나 메소드를 자식 클래스에서 직접 만들지 않고 상속받음으로 자식 클래스가 부모 클래스의 변수나 메소드를 사용할 수 있다.

- 자바의 모든 클래스(class)는 Object클래스를 상속 받는다.

- 부모클래스의 생성자, 초기화 블록은 상속 되지 않는다.

- 자바는 단일 상속만 지원한다.

- Is a (상속관계) : 자식 클래스는 (하나의) 부모 클래스이다.

- Has a (연관관계) : 한 클래스 멤버변수로 다른 클래스 타입의 참조변수를 선언한다.

 

● 추상화(Abstraction)

- 객체에서 공통된 속성과 행위를 추출한다.

 

● 다형성(Polymorphism)

 -  오버라이딩(Overriding)

  관련된 기능과 관련된 데이터를 하나의 클래스로 묶어서 사용하는 법

  메소드 위에 @Override 표시한다.

  부모클래스의 메소드를 상속받아 매개변수의 개수, 타입, 순서 동일하면 메소드를 재정의할 수 있다.(접근제어자가 private면  오버라이딩 되지 않는다.)

 -  오버로딩(Overloading)

  한 클래스 내에서 같은 이름의 메소드를 여러개 정의 가능하다.

  같은 메소드 이름, 다른 타입의 매개변수여야 한다.

 

https://s-bug.tistory.com/57#--%--%EC%-E%--%EB%B-%--%EC%-D%--%--%ED%-A%B-%EC%A-%--%---%EA%B-%--%EC%A-%--%E-%-C%--

 

728x90

댓글