2009-02-08 3 views
3

자바로 작업 한 지 2 년이 지났습니다. 자바에서 어떤 문제를 더 우아하게 해결할 수 있는지 말해 줄 수 있습니까?자바가 C ​​#보다 더 우아합니다.

내가 자바의 다음과 같은 이점을 알고있다 :

  • 자바 '어디에서나 실행',
  • 자바가 자바 units and measures
  • (아마도) 더 나은 대기 시간을 지원
  • J2EE (I
  • generics에 대한 다른 접근법 ("Enum>"과 같은 홀수 순환 정의가있는 경우 Ken Arnold 참조)

제네릭은 무엇입니까? C#으로 표현할 수없는 우아한 Java 예제가 있습니까? 또는 다른 API 또는 라이브러리?

감사합니다,

에 Jiří

P.S. 몇 가지 일반적인 링크 :

+0

"Java와 C#의 제네릭 간의 차이점은 무엇입니까?"라는 질문에는 신경 쓰지 않지만 질적 인 차이를 전제로하는 질문은 인수를 요구하는 것 같습니다. 나의 선호는 덜 도발적인 방식으로이 질문을 다시 쓰는 것이다. – tvanfosson

+0

나는 자바의 익명 클래스를 좋아한다. 예를 들어 방문객에게 좋다. –

+0

Java 클로닝은 내가 생각할 수있는 유일한 플러스 인 .NET을 파괴합니다. –

답변

7

자바 제네릭은 C#을 제네릭에 매우 다르다. 그리고 예, 그것이 더 우아 할 수 있음을 의미하는 장소가 있습니다 - 일반적으로 와일드 카드 및 분산의 관점에서. 반면에 와일드 카드는 일반적으로 잘 이해되지 않습니다. (그리고 나는 분명히 그 캠프에 자신을 포함시킵니다.) 타입 삭제의 전체적인 비즈니스는 일반적으로 I 까지은 .NET 제네릭을 선호합니다.

Java가 IMO를 "이기는"다소 다른 장소는 enum 지원입니다. C# 열거 형은 기본적으로 이름이 지정됩니다. Java는 훨씬 더 객체 지향적입니다. 비슷한 효과는 인데 중첩 된 클래스를 사용하여 대부분을 얻을 수 있지만 더 많은 프레임 워크 지원 (EnumSet에 해당)과 스위치 지원을 환영합니다.

나는 자바의 패키지 (네임 스페이스)에 대한 가시성을 제한 할 수있는 기능을 좋아한다.하지만 이것이 C#에서 선호하는 자바 액세스 규칙의 유일한면이다.

Java와 C#을 수년간 광범위하게 사용 해본 결과, 언어 수준에서 C#은 자바보다 훨씬 앞서 있다는 생각이 들었습니다. 실제로, 좋은 크로스 플랫폼 지원과 커다란 기존 코드베이스가 유일한 두 가지입니다 중요 이점 자바는이 시점에서 C#과 .NET보다 뛰어납니다.

+0

enums ... 물론 그들은 특정 문제를 해결할 수있는 많은 버전을 제공하지 않았습니까? :) – U62

-1

이 컨텍스트에서 "더 나은 대기 시간"이란 무엇을 의미합니까?

그 외에도 Jon Skeet에 동의합니다. 전반적으로 C#은 Java보다 앞서 있습니다. Java에는 몇 가지 트릭이 있습니다 (예 : enum). 그러나 예외는 아닙니다. 규칙이 아닙니다.

+0

답장을 보내 주셔서 감사합니다 - 난 그냥 EnumSets 검색 중이 야 ... "대기 시간"미만, 들어오는 요청 (예 : LAN을 통해 HTTP 요청)에 회신의 속도를 의미 - 지리 –

+0

그 아무 상관이 언어. 네트워킹에서 대기 시간은 밀리 초 단위로 측정됩니다. 코드에서는 나노초 단위 또는 마이크로 초 단위로 측정됩니다. 언급할만한 모든 언어는 네트워크 카드가 패킷을 수신하는 것보다 짧은 시간에 HTTP 요청을 처리 할 수 ​​있습니다. – jalf

관련 문제