Java란?
Java의 특징
객체지향 프로그래밍(Object-Oriented Programming, OOP)
⇒ 현실 세계를 모델링하여 소프트웨어를 개발하는 방법론이다.
⇒ 객체는 속성과 동작을 가짐, 각각 상태, 기능을 나타낸다.
⇒ OOP는 객체를 정의하고 객체 간 관계를 정의하며 소프트웨어를 구성한다.
⇒ 캡슐화 : 변수와 메소드가 하나의 캡슐 안에 묶인 특성을 의미한다. 그 캡슐 안의 정보들은 밖에서 접근이 불가능하다.
⇒ 상속성 : 자동차라는 부모클래스가 있다. 뚜껑이 열리는 기능이 있는 자동차가 있으면 좋겠다. 그럼 기존의 자동차에서 뚜껑이 열리는 자동차 자식클래스를 만든다. 자동차라는 특성을 물려받는 것, 이것이 상속성이다.
⇒ 다형성 : 하나의 객체가 여러 형태를 가지는 것을 의미한다. 상속을 이용하여 기능을 확장/변경하는 것도 다형성이다.
훌륭한 이식성
⇒ 자바는 서로 다른 실행환경을 가진 시스템간, 프로그램을 옮겨 실행할 수 있는 것을 의미한다.
⇒ 자바 실행환경이 설치된 모든 운영체제에서 실행이 가능하다.
메모리를 자동으로 관리한다.
⇒ C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 만약 이 작업을 성실하게 해주지 않는다면 프로그램은 불완전해지고 갑자기 다운될 수도 있다.
⇒ 반면, 자바에서는 직접 메모리에 접근할 수 없으며 직접 자바가 관리한다.
⇒ 객체 생성시 자동으로 메모리 영역을 찾아서 할당하고, 사용 완료하면 쓰레기 수집기를 실행시켜 자동으로 사용하지 않는 객체를 제거한다.
Java와 Linux의 관계
⇒ 따라서 Java는 당연히 Linux 환경에서도 실행할 수 있다. 자바 애플리케이션을 개발하고 배포하는 데에 리눅스 운영체제가 자주 사용된다.
⇒ 이 이유는 리눅스가 안정적이고 보안성이 높으며 자바 가상 머신 특정 기능을 최적화하는 데도 유용하기 때문이다.
참고
- 자바 할 수 있는 사이트 (https://repl.it, https://onlinedb.com)
서브목차