2011/09/25 01:54

Java 의 철학 - Write Once, Run Evrywhere

과연 이 철학이.....



- The Java Programming Language

객체지향... 이놈은 자바 언어 Software 기술중에 하나.
하지만 가장 큰 특징은 생산성의 극대화, 동적인면임!
Multi-Threding
구조화된 에러 핸들링
Garbage Collection
Dynamic Linking
Dynamic Extension


- The Java Class File Format

compact 한 형태
bytecode 로의 변경
platform 독립적
network byte order 사용

class 파일은 bytecode 를 binary 형태로 담아놓은 것.
bytecode 는 JVM 이 읽을 수 있는 언어.

JVM 은 Class 를 로딩한 후 여기서 Bytecode 를 읽어들여 실행이 가능하도록 Interpret 하는 과정을 거침. Class 가 Load 된 후 JIT Complier 나 Hotspot Compiler 와 같은 Execution Engine 을 거쳐 실행이 된다.

ByteCode 는 Source code 를 단순히 JVM 의 언어로 번역해 놓은 것이기 때문에 Source 파일과 비슷한 크기를 가지고 있다. C++, Delphi 와 같은 언어에 비해 아주 작은 크기. 이렇게 작은 크기를 유지할 수 있는 이유는 Class 파일에는 실제로 참조하는 라이브러리를 포함하고있지 않고, 단지 Symbolic Reference 만을 가지고 있기때문...

Symbolic Reference 는 참조하고자 하는 대상의 이름만으로 참조관계를 구성한 것을 의미. 참조하는 객체의 특정 메모리 번지로 참조관계를 구성한것이 아니고 참조하는 대상의 이름만을 지칭한 것.

Class 파일이 JVM 에 올라가게 되면 Symbolic Reference 는 그 이름에 맞는 객체의 주소를 찾아서 연결하는 작업을 수행함. 이를 Dynamic Linking 이라고 한다. Java 는 이 Dynamic Linking 때문에 Class 파일은 compact 한 형태를 유지할 수 있다.

Class File Format 은 Network Byte Order 를 사용한다. 서로 다른 계열의  CPU 끼리 데이터를 전송 받을 때의 문제점을 해결하기 위해 정해준 일족의 약속임. Big Indian 을 사용.



- The Java Application Programming Interface (Java API)

Runtime Library의 집합. 말 그대로 Java 실행 환경. 여기에는 Java Virtual machine 과 Java API, 그리고 Native Method 등이 포함되어있다.

Java API 는 OS 시스템과 Java 프로그램 사이를 이어주는 가교의 역할을 한다. Native Method 를 통해 OS 자원과 연계되어있고 다른 한 편으로는 Java 프로그램과 맞닥뜨리고 있다. Interface 의 역할을 하고있는 셈.


- The Java Virtual Machine (JVM) 

JVM 은 하나의 스펙.







 
Posted by 개발자 용이~
2011/09/01 22:45

execution([접근자제어 패턴], 리턴타입패턴 [클래스명패턴]메서드명패턴(파라미터패턴))


접근자제어
  - 생략가능 (public, protected 등)

리턴타입
  - 리턴 타입

클래스명,메서드
  - 패키지명부터시작해서 메서드까지
 
파라미터패턴
  - 매칭될 파라미터에 대해서 명시.
      

- 각 패턴은 '*'를 이용하여 모든 값을 표현
- '..'을 이용하여 0개 이상이라는 의미를 표현

Posted by 개발자 용이~
2010/07/28 10:23

tomcat 6 에서 GET 방식으로 파라메터 값을 읽어올 때 사용하는 캐릭터 셋의 기본 값은 ISO-8859-1 이다. 톰캣 6 에서는 두 가지 방법을 이용해서 GET 방식으로 전달된 파라미터를 읽을 때 사용할 캐릭터 셋을 지정할 수 있다.


- server.xml 파일에서 <Connector> 의 URIEncoding 속성의 값으로 원하는 캐릭터셋을 지정하는 방법


- server.xml 파일에서 <Connector> 의 useBodyEncodingForURI 의 속성 값을 true 로 지정하는 방법. 이 때는 request.serCharacterEncoding() 메소드로 지정한 캐릭터셋이 적용됨.



이 두개를 같이 사용할 수 도 있다

Posted by 개발자 용이~