2013년 11월 5일 화요일

[자바강좌, Java Architecture]자바언어 특징(Java Language Feature), 자바공부하기 위해서는 우선 자바의 특징을 알아야 겠죠 Architecture/Platform independence “Write once, run anywhere” Bytecode level의 독립성 c.f. source level independence, binary compatibility JVM(Java Virtual Machine)이 이식된 모든 플랫폼에서 수행 가능 Platform independent data type definition Object-oriented class hierarchy, inheritance, encapsulation 등 지원 single inheritance만 지원 다중 상속 효과를 위한 interface statically typed 객체 사용이전에 반드시 선언 Compile & interpret language 실행 화일의 생성 - compile, 실행 - interpret compile 언어보다 범용이고 interpret 언어보다 효율적 단순성, 효율성 C/C++과 비슷 : 기존 언어에 친숙한 프로그래머가 배우기 쉬움 혼란한 개념의 배제 자동적인 타입 캐스팅, 헤더파일, 전처리기, 포인터 연산, 암시적 형변환(implicit type conversion), struct, union 템플리트(templates), 다중 상속 , 연산자 재정의 strong typed - type checking in compiling, run-time no pointers - use only reference type for objects exception handling memory leakage 방지 Security no pointers - Java program은 시스템을 crash시킬 수 없다. 실행하기 전에 code verify(Byte Code Verifier) security manager for applets Extensibility 기존 binary class를 그대로 두고 새로운 기능을 추가 호환성 유지 MultiThreaded 상호 작용과 실시간성이 증가 Synchronized Mwthod를 지원하므로 쓰레드간의 동기화 문제를 해결한다. 자바 API에서는 쓰레드를 지원하기 위한 Therad Class가 존재 Performance faster than interpreted language slower than C/C++ programs (최악의 경우, 10 ~ 20 배) 기계어를 직접 실행 시키는 것이 아니라 플랫폼 독립적인 중간형태의 자바 바이트코드를 자바 가상머신이 해석하여 실행하는 인터프리터 방식이므로 느리다. 이의 해결을 위해 아래의 기술을 이용 JIT(Just-In-Time) : Native코드 생성기를 이용하여 인터프리트 하는 도중에 기계어로 동적으로 번역하여 나중에 반복 수행시 시간을 절약 가능 HotSpot : 프로그램을 실행하는 중에 그 실행형태를 분석하여 병목이 발생하는 부분을 찾아내어 그 부분만을 컴파일 해 놓음으로써 실행시간을 최적화 시킨다. Distributed Designed to be run over a network Has TCP/IP and HTTP capabilities Socket, URL Processing… Make server side processing… servlets/jsp [출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecJava&wr_id=523 [개강임박강좌, 오프라인교육장에 오시면 보다 자세히 배울 수 있습니다.] 오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr) [주간] [11/13]SQL초보에서실전전문가까지 [11/13]안드로이드개발자과정 [11/18]Spring3.X, MyBatis, Hibernate실무과정 [11/18]iPhone 하이브리드 앱 개발 실무과정 [평일야간] [11/08]C#,ASP.NET마스터 [11/08]Spring3.X, MyBatis, Hibernate실무과정 [11/12]iPhone 하이브리드 앱 개발 실무과정 [11/14]JAVA&WEB프레임워크실무과정 [주말] [11/09]JAVA&WEB프레임워크실무과정 [11/09]Spring3.X, MyBatis, Hibernate실무과정 [11/09]웹퍼블리싱 마스터 [11/16]C#,ASP.NET마스터 [11/16]PL/SQL,오라클힌트,SQL튜닝,사례연구 [11/16]ASP.NET4.0 MVC 프로그래밍 JAVA ORACLE iPhone/Android .NET 표준웹/HTML5 채용/취업무료교육 초보자(재학생)코스 

[자바강좌, Java Architecture]자바언어 특징(Java Language Feature), 자바공부하기 위해서는 우선 자바의 특징을 알아야 겠죠
 
Architecture/Platform independence
“Write once, run anywhere”
Bytecode level의 독립성
c.f. source level independence, binary compatibility
JVM(Java Virtual Machine)이 이식된 모든 플랫폼에서 수행 가능
Platform independent data type definition


Object-oriented
class hierarchy, inheritance, encapsulation 등 지원
single inheritance만 지원
다중 상속 효과를 위한 interface
statically typed
객체 사용이전에 반드시 선언


Compile & interpret language
실행 화일의 생성 - compile, 실행 - interpret
compile 언어보다 범용이고 interpret 언어보다 효율적


단순성, 효율성
C/C++과 비슷 : 기존 언어에 친숙한 프로그래머가 배우기 쉬움
혼란한 개념의 배제
자동적인 타입 캐스팅, 헤더파일, 전처리기, 포인터 연산, 암시적 형변환(implicit type conversion), struct, union 
템플리트(templates), 다중 상속 , 연산자 재정의


strong typed - type checking in compiling, run-time
no pointers - use only reference type for objects
exception handling
memory leakage 방지


Security
no pointers - Java program은 시스템을 crash시킬 수 없다.
실행하기 전에 code verify(Byte Code Verifier)
security manager for applets



Extensibility
기존 binary class를 그대로 두고 새로운 기능을 추가
호환성 유지



MultiThreaded
상호 작용과 실시간성이 증가
Synchronized Mwthod를 지원하므로 쓰레드간의 동기화 문제를 해결한다.
자바 API에서는 쓰레드를 지원하기 위한 Therad Class가 존재



Performance
faster than interpreted language
slower than C/C++ programs (최악의 경우, 10 ~ 20 배)
기계어를 직접 실행 시키는 것이 아니라 플랫폼 독립적인 중간형태의 자바 바이트코드를 자바 가상머신이 해석하여 실행하는 인터프리터 방식이므로 느리다. 이의 해결을 위해 아래의 기술을 이용
JIT(Just-In-Time) : Native코드 생성기를 이용하여 인터프리트 하는 도중에 기계어로 동적으로 번역하여 나중에 반복 수행시 시간을 절약 가능
HotSpot : 프로그램을 실행하는 중에 그 실행형태를 분석하여 병목이 발생하는 부분을 찾아내어 그 부분만을 컴파일 해 놓음으로써 실행시간을 최적화 시킨다.



Distributed
Designed to be run over a network
Has TCP/IP and HTTP capabilities
Socket, URL Processing…
Make server side processing… servlets/jsp

댓글 없음:

댓글 쓰기