[ java ] in KIDS 글 쓴 이(By): wizest (나) 날 짜 (Date): 2004년 10월 17일 일요일 오전 01시 57분 21초 제 목(Title): Re: 자바5 http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html 이게 썬에서 정리한 (jdk 문서들중에 있습니다.) 간략 내용이구요.. http://java.sun.com/developer/technicalArticles/releases/j2se15/ 이 기사도 읽어 보세요. 1.4 에서 5 로 껑충 판올림 할 정도로 여기저기 손을 많이 대었는데 특히나 언어적으로 generics를 지원하게 됐고 덕분에 jvm 스펙이 업데이트 됐다는게 가장 크게 바뀐거라고 생각됩니다. 자바에 추가된 generics는 C++의 template과 많이 비스므리 하면서도 누누이 다르다고 강조하던 문서도 본 기억이 있는데... 음음.. 찾아 읽어보시고 -_- 대강 내용은 클래스를 여러개의 타입으로 사용하더라도 실 .class (바이트코드) 는 하나다.. 라는 정도가 가물거리네요 (C++에서는 전처리기처럼 처리되기에 여러 타입으로 쓰면 여러 코드로 복제되는 것과 달리...) 하여 제가 느낀 것은 generics 개념을 자바에 도입한 목적이 기존에 Object형을 최상위 클래스로 두고 각종 컨테이너들에 넣다 뺏다하며 공공연하게 행하던 캐스팅의 폐해를 없애고 런타임시에 발생가능한 캐스팅 오류를 원천적으로 없애고자 노력하고자 한 것 같아요. 자바.유틸 패키지에 있는 컬렉션 클래스들의 소스가 이런 이유로 모조리 다시 코딩되어 있습니다. (generics,enhanced loop,autoboxing,...) 흠흠 아 그리고 생각나는게 jvm 이 별도의 인스턴스로 뜨더라도 미리 지정한 클래스 뭉치들을 (아마 기본 자바 런타임 라이브러리에 한하여) 공유합니다. (내부적으로 bytecode -> native 로 바꾸는 짓을 매번 안한다는 뜻 같군요.) .. 뭐 이런식의 꽁수도 속도향상을 위해 환영합니다만 아싸리 모든 클래스들을 걍 native로 만들어서 캐싱하고 있다가 시작시 반응 속도도 좋은 vm도 만들어 줬음 좋겠네요.. |