이 글은 자바의 정석 기초편을 참고하여 작성했습니다. 개인적으로 중요하다 생각되는 부분은 볼드처리 하였으며 자바를 처음 배우거나 복습하실 때 도움이 되길 바랍니다.
자바는 썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다.
1.운영체제에 독립적이다.
자바는 운영체제(OS)에 독립적이다. 자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행이 가능하고 운영체제에 따라 프로그램을 전혀 변경하지 않고도 실행이 가능하다. 이러한 장점으로 인터넷의 발전과 함께 많은 사용자 층을 확보할 수 있었다.
이것은 일종의 에뮬레이터인 자바가상머신(JVM)을 통해서 가능한 것인데. 자바응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.
자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적이어서 썬(회사)에서는 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM을 제공하고 있다.
2. 객체지향언어이다.
자바는 프로그래밍의 대세로 자리 잡은 객체지향 프로그래밍 언어 중의 하나로 객체지향 개념의 특징인 추상화, 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어라는 평가를 받고있다.
3. 비교적 배우기 쉽다.
자바의 연산자와 기본 구문은 C++에서, 객체지향 관련 구문은 스몰톡이라는 객체지향언어에서 가져왔다.
간결하고 이해하기 쉬운 코드를 작성할 수 있도록 하였고 객체지향언어의 특징인 재사용성과 유지보수의 용이성을 잡점으로 가지면서 보다 객체지향개념을 쉽게 이해하고 활용할 수 있도록 하여 객체지향 프로그래밍의 저변확대에 크게 기여했다.
4. 자동 메모리 관리(Garbage Collection==GC)
자바로 작성된 프로그램이 실행되면 GC가 자동적으로 메모리를 관리해주기 때문에 개발자가 메모리를 따로 관리 하지 않아도 된다.
GC가 없다면 프로그래머가 사용하지 않는 메모리를 체크하고 반환하는 일을 수동적으로 처리해야 할 것이다.
자동으로 메모리 관리한다는 것이 다소 비효율적인 면이 있지만 프로그래머가 보다 프로그래밍에 집중할 수 있도록 도와준다.
5. 네트워크와 분산처리를 지원한다.
인터넷과 대규모 분산환경을 염두에 둔 까닭인지 풍부하고 다양한 네트워크 프로그래밍 라이브러리를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있다.
6. 멀티쓰래드를 지원한다.
자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 상관없이 구현 가능하며, 관련 라이브러리가 제공되므로 구현이 쉽다.
여러 쓰레드에 대한 스케줄링은 자바 인터프리터가 담당하게 된다.
7. 동적 로딩을 지원한다.
보통 자바로 작성된 애플리케이션은 여러 개의 클래스로 구성되어 있다. 자바는 동적 로딩을 지원하기 때문에 실행시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다.
그외에도 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일 하지 않아도 되며, 애플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 애플리케이션을 작성할 수 있다.
=================================================================
객체지향,JVM,GC,객체지향의 특징,쓰레드,동적,정적이 무엇인지 검색해보세요. 그림이 포함된 설명으로 보는게 이해하기 쉬울거에요.
쓰레드 관련 그림 넣고 싶은게 있는데.. 저작권에 걸릴것 같아서 직접 그려서 추후에 추가하겠습니다.
오탈자와 틀린정보 있으면 알려주세요!
다음 글은 ‘변수’에 관한 내용을 정리하겠습니다. 자바개발도구(JDK)와 이클립스는 직접 설치해주세요.
https://www.youtube.com/watch?v=L8mGi7-q6j4&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=3
맨 아래 링크는 이클립스 단축키등을 알려주는데 알고있는게 편하니 모르시면 메모해놓고 사용하는걸 추천합니다. 금방 손에 익긴 할거에요!
3 Comments
대표 멘토 - 아키텍터
2024-07-15기본 내용의 핵심을 잘 써주었네요. 편의 보고 쉽게 알 수 있도록 작성해주셔서 감사합니다. 개발을 JAVA로 시작하는 많은 분들이 참고하기 좋은 글인 거 같네요.
멘티21호 - 백엔드
2024-07-26예비군 다녀와서 지금봤네요. 좋은 말씀 해주셔서 감사합니다!
대표 멘토 - 아키텍터
2024-07-31별말씀을요. 지금처럼 꾸준히 활동해주시는 것만으로도 고맙게 생각하고 있습니다. 최대한 좋은 피드백을 주기 위해서 저도 노력할게요.