Java란?

Java의 특징

객체지향 프로그래밍(Object-Oriented Programming, OOP)

⇒ 현실 세계를 모델링하여 소프트웨어를 개발하는 방법론이다.

⇒ 객체는 속성과 동작을 가짐, 각각 상태, 기능을 나타낸다.

⇒ OOP는 객체를 정의하고 객체 간 관계를 정의하며 소프트웨어를 구성한다.

⇒ 캡슐화 : 변수와 메소드가 하나의 캡슐 안에 묶인 특성을 의미한다. 그 캡슐 안의 정보들은 밖에서 접근이 불가능하다.

⇒ 상속성 : 자동차라는 부모클래스가 있다. 뚜껑이 열리는 기능이 있는 자동차가 있으면 좋겠다. 그럼 기존의 자동차에서 뚜껑이 열리는 자동차 자식클래스를 만든다. 자동차라는 특성을 물려받는 것, 이것이 상속성이다.

⇒ 다형성 : 하나의 객체가 여러 형태를 가지는 것을 의미한다. 상속을 이용하여 기능을 확장/변경하는 것도 다형성이다. 

훌륭한 이식성

⇒ 자바는 서로 다른 실행환경을 가진 시스템간, 프로그램을 옮겨 실행할 수 있는 것을 의미한다.

⇒ 자바 실행환경이 설치된 모든 운영체제에서 실행이 가능하다.

메모리를 자동으로 관리한다.

⇒ C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 만약 이 작업을 성실하게 해주지 않는다면 프로그램은 불완전해지고 갑자기 다운될 수도 있다.

⇒ 반면, 자바에서는 직접 메모리에 접근할 수 없으며 직접 자바가 관리한다.

⇒ 객체 생성시 자동으로 메모리 영역을 찾아서 할당하고, 사용 완료하면 쓰레기 수집기를 실행시켜 자동으로 사용하지 않는 객체를 제거한다.

Java와 Linux의 관계

⇒ 따라서 Java는 당연히 Linux 환경에서도 실행할 수 있다. 자바 애플리케이션을 개발하고 배포하는 데에 리눅스 운영체제가 자주 사용된다.

⇒ 이 이유는 리눅스가 안정적이고 보안성이 높으며 자바 가상 머신 특정 기능을 최적화하는 데도 유용하기 때문이다.

참고

서브목차