http://www.youtube.com/watch?v=hcY8cYfAEwU




Effective java 의 저자로 유명한 Josh Bloch의 발표동영상이다.

발로 적은 내용을 공유한다. 

성공할 수 없었던 자바의 특징을 먼저 설명하였다. (장점은 아래 PPT 참조) 특별히, 다른 언어에서 사용하는 일부 기능 생략도 성공 중의 하나였다.(lexical macros, multiple implementation inheritance, operator overloading, 헤더 파일, 다큐먼트).  

이 분이 얘기한 자바의 단점 또는 추한 부분을 얘기했다.
1. int->float, long->double형으로 형을 변환(conversion)하면서 생기는 문제(widening)
2. compound 할당 연산자가 작은 타입으로 변환하는 casting 문제 (narrowing)
3. equals를 구현(override)하였지만, ==, != 연산자는 주소를 가지고 비교한다. 
4. constant 변수가 inline된다. 
5. 
불필요한 비안정성을 이끌었던 디폴트 생성자는 처음부터 없어야 한다
6. 생성자에서 override된 메소드를 호출하는 것이 가능(legal)하면 안된다. 미묘한 버그를 생산할 수 있다.
7. unsigned 타입의 부재
8. 단일화된 Exception 상속개념이 없다.
9. switch 문이 잘 구조화되지 않았다.
10. Arrays의 toString을 잘 구현해야 내용물이 출력한다. 자바를 처음 배우는 친구들이 매번 실수한다.
11. Exception이 막 발생한 (pending) exception을 제거하고 새로운 것으로 만들 수 있다.
12. Cloneable 인터페이스에 clone 이라는 함수가 없다. 




발표자료가 웹에 없어서 캡쳐해서 공유한다. 

























Posted by '김용환'
,