U E D R , A S I H C RSS

Java Study2003/첫번째과제/곽세환

  • ìž�바언어ì�˜ 특징
간단하다(Simple):
�바� 주� 특징� 기존� C/C++ 언어� 문법� 기본�으로 따르고, C/C++ 언어가 갖는 전처리기, ��터, ��터 연산, 다중 ��, 연산� 중첩(overloading) 등 복잡하고 �해하기 난해한 특성들� 제거함으로� 기존� 프로그램 개발�들� 쉽고 간단하게 프로그램� 개발할 수 있�� 합니다.
�체지향��다(Object-Oriented):
�바는 C++와는 달리 처�부터 �체지향 개�� 기반으로 하여 설계�었고, �체지향 언어가 제공해 주어야 하는 추�화(Abstraction), ��(Inheritance), 그리고 다형성(Polymorphism) 등과 같� 특성들� 모� 완벽하게 제공해 주고 있습니다. �한, �바� �러한 �체지향� 특성� 분산 환경, ���언트/서버 기반 시스템� 갖는 요구사항� 만족시켜 줄 수 있습니다.
높� 신뢰성(Reliability)� 갖는다:
�바는 컴파� 시� �러 검사를 철저하게 하고, 실행 시� 발�할 수 있는 �러� 대해서� 실행 시� 철저하게 검사를 수행함으로� 신뢰�가 높� 프로그램� 작성할 수 있�� 해 �니다. �한, C/C++ 프로그램 개발�들� 가장 혼란스럽게 하고, 프로그램� 치명�� 오류를 발�시킬 수 있는 ��터 � ��터 연산� �바�서는 사용하지 않게 함으로�, ��터를 사용함으로� 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
보안성(Security)� 갖는다:
�바는 분산환경�서 작�하�� 설계 �었습니다. 그러나, �바는 �바 언어와 �바 런타임 시스템 내� 보안 기능� 내재�어 있기 때문� 보안성� 있는 프로그램� 개발할 수 있�� 해 �니다. �러한 특성� �바 프로그램� 네트� 환경�서 바�러스 등과 같� 프로그램� 파� 시스템� 파괴하려는 것� 막� 수 있�� 해 �니다.
아키�� 중립�(Architecture-neutral)�고 ��성(Portable)� 높다:
�바는 서로 다른 �종(Heterogeneous)� 네트워� 환경�서 분산 �어 실행� 수 있�� 설계�었습니다. �와 같� 환경�서는 �용 프로그램들� 다양한 하드웨어 아키�� 위�서 실행� 수 있어야만 합니다. �를 위해 �바 컴파�러는 �종� 하드웨어 � 소프트웨어 플랫��서 효율�으로 코드를 전송하기 위해 설계� 아키�� 중립�� 중간 코드� 바�트코드를 �성합니다. �는 ��한 �바 프로그램� �바 바�트코드가 �바 가�머신� 설치�어 있는 어떤 플랫��서� 실행� 수 있�� 하는 것입니다. �한, �바는 기본 언어 정�를 엄격하게 함으로� 효율�� ��성� 제공해 주고 있습니다. 예를 들어, int 형과 같� 기본 ��터형� �기를 플랫�과 무관하게 �정하게 하고, 연산�� 기능� 확실하게 규정하고 있습니다. C 언어를 �용하여 int 형� 선언할 때, �스�서는 16비트, 윈�우 95/98/NT 등 32비트 운� 체제 환경�서는 32비트, 유닉스�서는 32비트 등 그 플랫�� 따� �기가 다르지만, �바�서는 플랫�� �관없� 32비트로 고정��� 하였습니다. �는 �바 프로그램� 실행�는 환경� �바 가�머신으로 ��하기 때문입니다.
높� 수행성능(High-performance)� 제공한다:
�바�서는 �터프-리터가 런타임 환경� 검사할 필요 없� 실행� 수 있�� 구성하였기 때문� 뛰어난 성능� 제공해 �니다. 쓰레기 수집기(garbage collector) 즉 메모리 관리�는 ��으로 낮� 우선순위� 백그�운드 스레드로 실행�어 메모리가 필요할 때�만 �작하�� 함으로�, �바 가�머신�게 무리를 주지 않으면서 보다 나� 수행 성능� 제공할 수 있�� 해 �니다. �한, 방대한 양� 계산� 수행하는 프로그램� 계산� 많� 부분� 본래� 플랫�� 해당하는 기계어 코드로 재작성하여 �바 프로그램과 �터페�스 할 수 있�� 하였습니다.
�터프리터(Interpreter) 방��다:
�바 언어로 작성� �바 프로그램� 중간언어 형태� �바 바�트코드로 컴파�하고, �렇게 �성� �바 바�트코드를 �바 �터프리터가 해�함으로�, �바 �터프리터와 런타임 시스템� ��(porting)� 모든 플랫��서 �바 바�트코드를 �접 실행할 수 있습니다.
다중 스레드(Multi-thread)를 지�한다:
�바� 다중 스레드 기능� �시� 많� 스레드를 실행시킬 수 있는 프로그램� 만들 수 있�� 해 �니다. �바는 �기화 메소드들� 기본�으로 키워드로 제공함으로�, �바 언어 수준�서 다중 스레드를 지�해 �니다. �바 API�는 스레드를 지�해 주기 위한 Thread �래스가 있으며, �바 런타임 시스템�서는 모니터와 조건 잠금 함수를 제공해 �니다.


  • ê°€ìƒ�머신ì�´ëž€
�바 바�트코드 명령어를 해�하고, �를 �바 �터프리터가 설치�어 있는 플랫�(윈�우 95/98/NT, 유닉스, 매킨토시 등)� 맞게 실행시켜 �니다.
��
아키�� 중립�(Architecture-neutral)�고 ��성(Portable)� 높다(�바언어� 특징중� 하나지요)
단�
�바는 기계어 코드를 �접 실행시키는 것� 아니고, 플랫� �립�� 중간 코드 형태� 바�트코드를 �바 가�머신� 해�하여 실행시키는 �터프리터 방�� 취하고 있으므로 �린 수행 시간� 갖습니다. �반�으로 C보다 �균 8배 정� �리고, 최대 20배까지 �립니다.


  • ìž�ë°”ì�˜ 종류
�바 애플리케�션(Application):
JDK와 함께 제공�는 �바 가�머신� �해 �립�으로 실행� 수 있�� 작성� �바 프로그램입니다. 다시 �해서, 여러분� 컴퓨터�서 윈�우� �스창 �는 유닉스 쉘 등과 같� 쉘�서 �바 가�머신� �용하여 실행시키는 �바 프로그램입니다. 위� 나오는 그림� �바 애플리케�션� 실행 과정� �세히 보여주고 있습니다.
�바 애플릿(Applet):
<APPLET>~</APPLET> 태그를 �용하여 HTML 페�지 내� �함�어, �바 호환 웹 브�우저� �해서 실행��� 작성� �바 프로그램입니다. 다시 �해서, 여러분� 홈 페�지 내� 삽입�어 �바 호환 웹 브�우저� �해 실행��� 규약� 맞추어 작성� �바 프로그램� �하는 것입니다. 다�� 나오는 그림� �바 애플릿� 실행 과정� �세히 보여주고 있습니다.
�바 서블릿(Servlet):
기존� CGI 프로그램과 같� 웹 서버 프로그램� 기능� 확장하기 위한 �바 프로그램으로서, 웹 서버 내� 있는 �바 런타임 환경과 함께 제공�는 �바 가�머신� �해 실행��� 작성� �바 프로그램입니다. �바 서블릿� 웹 서버 내�서 �바 런타임 환경과 함께 제공�는 �바 가�머신� �해 실행�고, �바 애플릿� 웹 서버�서 웹 ���언트로 다운로드 �어 웹 ���언트�서 �바 호환 웹 브�우저� 내장� �바 가�머신� �해 실행�다는 차��� 있습니다. �렇게 웹 서버 내�서 실행� 수 있�� 작성� �바 서블릿� 기존� 웹 서버 내�서 실행�는 프로그램� CGI 프로그램� 대체할 수 있�� 고안�었습니다. 다�� 나오는 그림� �바 서블릿� 실행 과정� �세히 보여주고 있습니다.
�바 빈(Bean):
�파� �는 비주얼 베��� �용하여 프로그램� 작성할 때, 버튼�나 창과 같� 컨트롤들� 마우스로 �어다 프로그램 내� 삽입할 수 있�� �어 있는�, �와 마찬가지로 �바 빈� 하나� 완벽한 기능� 갖고 재사용� 수 있�� 만들어진 소프트웨어 컴�넌트입니다. 마��로소프트�서 제공�는 ActiveX 컴�넌트와 같� �바�서 컴�넌트 프로그램� 가능하�� 해 �니다.
�바 패키지(package):
다른 ìž�ë°” 프로그램ì—� ì�˜í•´ 삽입(import)ë�˜ì–´ 사용ë�  수 있ë�„ë¡� 작성ë�œ ìž�ë°” 프로그램입니다. ì�´ëŸ¬í•œ ìž�ë°” 패키지는 기존ì�˜ 프로그래ë°� 언어ì—�서 사용하ë�˜ ë�¼ì�´ë¸ŒëŸ¬ë¦¬ ë˜�는 ìš´ì˜�ì²´ì œì—�서 제공해 주는 API 등과 같다고 ë³¼ 수 있습니다. ìž�ë°” 패키지 역시 해당 규약ì�„ 갖겠지요. ìž�ë°”ì—�서는 기본ì �으로 ì••ì• íŒŒì�¼ì�˜ 형태로 'casses.zip"ì�´ë�¼ëŠ” ìž�ë°” 패키지가 제공ë�˜ê³  있고, ì••ì• íŒŒì�¼ ë‚´ì—�는 디렉토리 단위로 패키지가 í�¬í•¨ë�˜ì–´ 있습니다. 다ì�Œì—� 나오는 그림ì�€ JDK 1.2.2 ì—�서 제공ë�˜ëŠ” 패키지를 보여주고 있습니다.


  • "Hello, World!" ìœë ¥í”„로그램

~cpp 
public class HelloWorldApp {
	public static void main(String args[]) {
		System.out.println("Hello World!");
	}
}

여기저기서 복사해서 붙�긴했는� 뭔소린지 모르는게 많네요
�바를 배우면서 알아갔으면 해요 ^^
그리고 �바� 종류가 애플리케�션, 애플릿.. �런것 같��
버전과 과정� 대해선 잘 모르겠네요 ㅡ.ㅡ;;;;

과제 추가 요구사항


  • "아키í…�ì³� 중립ì �(Architecture-neutral)ì�´ê³  ì�´ì‹�성(Portable)ì�´ 높다" ë�¼ëŠ” ë§�ì�„ 풀어서 설명해 주세요.
  • ì�¸í„°í”„리터ë�¼ëŠ” ë°©ì‹�ì�€ 컴파ì�¼ ë°©ì‹�ê³¼ 무엇ì�´ 틀리고 ìž�ë°”ì�˜ 특징ì�€ 어떻게 ë�˜ë‚˜ìš”?
  • 버전과 과정ì�„ 모르신다면 힌트를 드리겠습니다. jdk ë�¼ëŠ”ê²ƒì�´ 무엇ì�¸ì§€ 알아보세요.
  • "hello, World!"를 ìœë ¥í•˜ëŠ”ë�° 있어서 ì§�ì ‘ 실행ì�´ ë�˜ê²Œë�” 만들지 못한거 같군요. ì§�ì ‘ ìž�ì‹ ì�´ 실행ì�´ ë�˜ê²Œë�” í•´ ë³´ë�¼ëŠ” 소리였습니다.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:33
Processing time 0.0076 sec