신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

자바 소개

썬마이크로시스템즈(썬)에서 최초 발표한 언어이다.

오우크(Oak)언어에서부터 시작해서 인터넷 프로그래밍 언어로 발전하면서,

자바라는 이름으로 변경되었다.

 

 

2010년 오라클에서 썬을 인수하여,

JAVA 개발, 관리, 배포를 주관하고 있다.

 

자바 특징

이식성이 높은 언어

이식성이 높은 이유??

자바는 JVM(Java Virtual Machine) 위에서 돌아가기 때문에,

운영체제 종류에 상관없이 돌아간다.

 

 

예를들어,

C언어의 경우 운영체제 종류에 따라 int형의 크기가 달라지기도 하지만

JAVA의 경우는 이런 경우가 없다.

(모두 동일한 JVM 환경에서 돌아가기 때문)

 

즉, MS 윈도우, 리눅스, 맥OS 등 여러 운영체제에서 동일하게 실행 가능하다.

 

객체지향언어(OOP)

Object Oriented Programing

자바는 처음부터 OOP 개발용 언어로 설계된 언어이다.

 

객체지향언어는 하나의 기능을 객체로 만들어서,

이러한 객체들을 결합해서 하나의 프로그램을 만든다.

 

예를들어, 자동차를 만든다고 생각해보자.

자동차를 만들기 위해서는 여러가지 부품 및 재료가 필요하다.

엔진, 타이어 등등 여러가지 부품들을 조합해서 자동차를 만들게 된다.

 

객체지향언어로 따지면,

  • 자동차 = 완성된 하나의 프로그램

  • 엔진, 타이어 = 객체

 

함수적 스타일 코딩

함수적 코딩 방식을 람다식이라고 하기도 한다.

 

코드를 간결하게 작성할 수 있고,

대용량 데이터에 대한 처리를 할 수 있다.

 

메모리를 자동으로 관리

C언어의 경우 메모리를 직접 관리해줘야 하지만,

 

JAVA의 경우는 가비지 컬렉터(garbage collector)에 의해

사용하지 않는 객체는 자동으로 메모리에서 제거를 한다.

(컴퓨터에게 자원을 반납)

 

다양한 어플리케이션을 개발가능

콘솔프로그램, UI 어플리케이션, 서버 어플리케이션, 모바일 앱 등등

다양한 프로그램을 개발할 수 있다.

 

다양한 프로그램을 개발하기 위한 개발도구, API를 제공한다.

 

Java SE

  • 기본 에디션

  • 자바 프로그램을 실행시키는 최소한의 JVM 정의

  • 구현체 : JDK(Java Development Kit)

 

Java EE

  • 서버 어플리케이션 개발을 위한 에디션

  • 웹 어플리케이션, 웹서비스, 분산 컴포넌트 등 개발을 위한 도구와 API 정의

  • 구현체 : WAS(Web Application Server) - Tomcat 등

 

Java ME

  • 임베디드, 모바일 장비 개발을 위한 도구와 API 정의

 

멀티 스레드(Multi-Thread)를 쉽게 구현 가능

  1. 동시에 여러가지 작업을 하는 경우

  2. 대용량 작업을 빨리 처리할 경우

위 두가지를 하기위해 병렬처리가 필요하다 = 멀티스레드가 필요하다

 

 

운영체제마다 멀티스레드를 이용하는 API다르다.

Java의 경우 Java API를 이용하기 때문에, 일관된 생성 및 관리가 가능하다.

 

동적 로딩

미리 객체를 만들지않고, 필요한 시점에 동적으로 로딩해서 객체를 생성할 수 있다.

유지 보수시 특정 객체만 쉽게 수정 및 교체해서 사용이 가능하다.

 

풍부한 오픈소스 라이브러리

자바는 오픈소스 언어이고, 자바를 이용해서 만들어진 라이브러리가 굉장히 많다.

라이브러리를 이용하여, 시간비용을 줄이고 좋은 어플리케이션을 만들기 편하다.

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기