C와 Java의 "일반" 유형 비교
Java와 C는 모두 일반 유형을 처리하기 위한 메커니즘을 통합합니다. 이러한 기능은 유사점을 공유하지만 뚜렷한 차이점이 있습니다.
주요 차이점: 유형 사양
C에서 일반 유형에는 클래스나 인터페이스를 지정할 필요가 없습니다. 이러한 유연성 덕분에 좀 더 느슨한 형식으로 진정한 일반 함수와 클래스를 생성할 수 있습니다. 예를 들어, 다음 C 함수는 " " 연산자를 사용하여 모든 유형의 객체를 추가할 수 있습니다.
<code class="cpp">template <typename T> T sum(T a, T b) { return a + b; }</code>
반면에 Java에서는 일반 유형을 사용하여 전달된 객체에 대해 메서드를 호출하는 유형을 지정해야 합니다. 이러한 제한은 유형 안전성을 보장하지만 유연성을 제한합니다.
<code class="java"><T extends Something> T sum(T a, T b) { return a.add ( b ); }</code>
코드 생성 및 최적화
C에서 일반 함수와 클래스는 컴파일러처럼 헤더에 정의됩니다. 다양한 유형에 대해 다양한 기능을 생성합니다. 이 프로세스는 컴파일 중에 성능 오버헤드를 발생시킵니다.
Java에서는 런타임 시 "삭제"라는 기술을 사용하므로 컴파일이 제네릭의 영향을 덜 받습니다. 이는 제네릭 유형이 효과적으로 제거되어 다음 호출이 발생함을 의미합니다.
<code class="java">Something sum(Something a, Something b) { return a.add ( b ); }</code>
의미
C와 Java 제네릭 사이의 선택은 특정 요구 사항에 따라 다릅니다.
위 내용은 C와 Java Generics의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!