Java: 두 판 사이의 차이

편집 요약 없음
태그: mobile edit
편집 요약 없음
태그: mobile edit
17번째 줄: 17번째 줄:
== 단점 ==
== 단점 ==
=== 느린 속도 ===
=== 느린 속도 ===
[[C]]같은 언어들은 기계어로 번역해서 바로 실행할 수 있는데, 바이트코드는 인터프리터를 거쳐서 실행되는 방식이기 때문에 느릴 수 밖에 없다.
=== 불편한 예외처리 ===
=== 불편한 예외처리 ===
{{ㅊ|사실 제일 불편한 게 이거라 카더라}}
자바에서 예외는 '''일단 막고 봐야 한다'''. 다른 언어에선 필요한 경우 예외처리를 한다면, 자바는 '''예외 처리를 하고''' 필요한 경우 조치를 취한다고 생각하면 된다.<ref>일부 RuntimeException의 경우 제외 {{ㅊ|왜 RuntimeException만 제외인건데}}</ref> 그래서 보통 자바코드에선 try-catch 문을<ref>예외처리를 할 때 사용하는 코드이다.</ref> 굉장히 빈번하게 볼 수 있다.


==주석==
==주석==
<references>
<references>

2015년 4월 19일 (일) 06:53 판

Java는 썬 마이크로시스템즈(현재 오라클에 합병)에서 개발한 다중 플랫폼 객체지향언어이다

특징

가상머신

기존의 인터프리터 언어와 다르게 Java는 우선 컴파일러에서 바이트 코드라는 가상머신의 기계어로 컴파일한다. 그후 자바 프로그램이 실행될 때, 가상머신에서 이를 해석하여 실행 플랫폼에 맞는 기계어로 변환한다. 이로서 다중 플랫폼을 구현하였다.

객체지향

자바의 탄생목적중 하나는 C++이 너무 많은 기능을 탑재하고 있었기 때문에 이를 모바일 환경에서 실행할 수 없어 만들어 졌다는 것이다. 따라서 Java는 객체지향 패러다임을 가지고 있다.

가비지 컬렉션(GC)

자바는 프로그래머에게 모든 메모리 관리를 맡기지 않는다. 프로그래머가 생성하고, 이를 직접 해제하는게 아니라, 가상머신에서 프로그램을 잠시 멈춘후 사용하지 않는 객체를 제거한다. 이는 프로그래머의 수고를 덜어주었지만, 반대로 중간에 프로그램이 멈춰서 사용자의 불만을 초래하기도 한다.

장점

안정성

다양한 라이브러리

다중 플랫폼

인터프리터로 처리되는 자바의 특성상 다중 플랫폼을 지원한다. 현재 자바 인터프리터가 있는 OS 플랫폼은 윈도우, OS X, 우분투, 페도라 및 그 외 리눅스 계열[1], 심지어 블랙베리, 피처폰, 그외 임베디드 플랫폼에서도 자바를 사용할 수 있다.[2]

단점

느린 속도

C같은 언어들은 기계어로 번역해서 바로 실행할 수 있는데, 바이트코드는 인터프리터를 거쳐서 실행되는 방식이기 때문에 느릴 수 밖에 없다.

불편한 예외처리

사실 제일 불편한 게 이거라 카더라

자바에서 예외는 일단 막고 봐야 한다. 다른 언어에선 필요한 경우 예외처리를 한다면, 자바는 예외 처리를 하고 필요한 경우 조치를 취한다고 생각하면 된다.[3] 그래서 보통 자바코드에선 try-catch 문을[4] 굉장히 빈번하게 볼 수 있다.

주석

<references>

  1. 안드로이드는 사정이 다른데 그 이유는 안드로이드는 달빅 바이트코드를 사용하기 때문에 지바 바이트코드를 실행할 수 없다.
  2. 애초에 자바의 목적이 가전제품에서 돌아갈 수 있도록 하는 것이었다고 한다.
  3. 일부 RuntimeException의 경우 제외 왜 RuntimeException만 제외인건데
  4. 예외처리를 할 때 사용하는 코드이다.