itsource

C#과 Java의 주요 차이점은 무엇입니까?

mycopycode 2022. 8. 15. 21:34
반응형

C#과 Java의 주요 차이점은 무엇입니까?

한 가지만 분명히 하고 싶어요.이것은 어느 것이 더 나은가에 대한 질문이 아닙니다.그 부분은 다른 사람에게 의논을 맡깁니다.난 신경 안 써.면접에서 이런 질문을 받았는데 좀 더 알아보는 게 도움이 될 것 같아서요.

제가 생각해낼 수 있는 건 다음과 같습니다.

  • Java는 플랫폼에 의존하지 않습니다.음, 요즘은 모노프로젝트가 있어서 C#도 고려될 수 있지만 좀 과장된 것 같아요. 왜요?Java의 새로운 릴리스가 실행되면 Java가 지원하는 모든 플랫폼에서 동시에 사용할 수 있습니다.반면 Mono 구현에서 아직 C# 3.0의 기능이 몇 개나 부족합니까?아니면 CLRJRE를 비교해야 할까요?
  • Java는 이벤트 및 위임 기능을 지원하지 않습니다.제가 아는 한,
  • Java에서는 모든 메서드가 가상입니다.
  • 개발 도구:Visual Studio 같은 도구는 아직 없는 것 같아요.특히 Team Edition을 사용해 본 적이 있다면 무슨 뜻인지 알 수 있을 것입니다.

관련이 있다고 생각되는 다른 항목을 추가하십시오.

업데이트: 방금 생각났어요.Java에는 클래스나 메서드 등의 커스텀 속성 같은 것이 없습니다.아니면 그런가요?

Java 7과 C#3의 비교

만, (Java 7의 기능)usingJava 1-6보다 C#의 모든 버전의 스테이트먼트의 우위성은 제거되었습니다.

모든 요약이 올바른 것은 아닙니다.

  • Java 메서드는 기본적으로 가상이지만 최종적으로 만들 수 있습니다(C#에서는 기본적으로 밀봉되지만 가상으로 만들 수 있습니다).
  • Java용 IDE는 무료(Eclipse, Netbeans 등)와 상용(IntelliJ IDEA 등) 모두 풍부합니다.

그 밖에도 (개요에 이미 기재되어 있는 내용도 있습니다)

  • 네릅릅 릅키 릅릅키 릅릅키 릅키Java 제네릭은 컴파일 타임의 「꼼수」에 지나지 않습니다.C# 및 c c c c c c c c c 。NET 되며, 값 참조 NET 등)을 합니다.List<byte>byte[]」를 참조해 주세요.
  • C#에 체크된 예외가 없습니다.
  • Java에서는 사용자 정의 값 유형을 생성할 수 없습니다.
  • Java에는 연산자 및 변환 오버로드가 없습니다.
  • Java에는 반복자를 단순하게 구현하기 위한 반복자 블록이 없습니다.
  • Java에는 LINQ와 같은 기능이 없습니다.
  • 부분적으로 대리인이 없기 때문에 Java에는 익명 메서드나 람다 표현과 같은 것이 없습니다.보통 익명의 내부 계층이 이러한 역할을 채우고 있지만, 투박합니다.
  • Java에 식 트리가 없습니다.
  • C#에는 익명의 내부 클래스가 없습니다.
  • C#에는 Java의 내부 클래스가 전혀 없습니다.C#의 모든 중첩 클래스는 Java의 정적 중첩 클래스와 같습니다.
  • Java에는 정적 클래스(인스턴스 생성자가 없으며 변수, 매개 변수 등에 사용할 수 없음)가 없습니다.
  • Java에는 C# 3.0 어나니머스 타입과 동등한 것이 없습니다.
  • Java에 암묵적으로 입력된 로컬 변수가 없습니다.
  • Java에는 확장 메서드가 없습니다.
  • Java에 개체 및 컬렉션 이니셜라이저 식이 없습니다.
  • 액세스 수식어는 다소 다릅니다.Java에서는 현재 어셈블리와 직접 동등한 것이 없기 때문에 "내부" 가시성에 대한 개념이 없습니다.C#에서는 네임스페이스(및 상속)를 고려한 Java의 "기본" 가시성과 동등한 것이 없습니다.
  • Java와 C#의 초기화 순서는 미묘하게 다릅니다(C#은 기본 유형의 컨스트럭터에 대한 연쇄 호출 전에 변수 이니셜라이저를 실행합니다).
  • Java에는 언어의 일부로 속성이 없습니다. get/set/is 메서드의 규칙입니다.
  • Java에는 "안전하지 않은" 코드가 없습니다.
  • C#(및 )에서는 Interop이 용이합니다.Java의 JNI보다 일반적인 NET)
  • Java와 C#은 Enum에 대해 다소 다른 생각을 가지고 있습니다.Java는 훨씬 더 객체 지향적입니다.
  • Java에는 프리프로세서 디렉티브(C#의 #define, #if 등)가 없습니다.
  • 는 C#의 C#와 한 것이 .ref ★★★★★★★★★★★★★★★★★」out by
  • Java에는 부분 유형이 없습니다.
  • C# 인터페이스는 필드를 선언할 수 없습니다.
  • Java에는 부호 없는 정수 형식이 없습니다.
  • Java는 10진수 유형에 대한 언어를 지원하지 않습니다.(102.math).Big Decimal은 System과 같은 것을 제공합니다.소수점 - 차이는 있지만 언어 지원은 없습니다.)
  • Java에는 null 가능한 값 유형이 없습니다.
  • Java의 상자에는 미리 정의된(단, "일반") 참조 유형이 사용되며 특정 작업이 포함됩니다.C# 및 C#에서의 복싱NET은 모든 값 유형에 대해 CLR에 의해 복싱용으로 참조 유형이 작성되므로 보다 투과적인 작업입니다.

이것은 모든 것을 망라하는 것은 아니지만, 즉석에서 생각할 수 있는 모든 것을 망라하고 있습니다.

다음은 Dare Obasanjo가 C#과 Java의 차이에 대해 자세히 언급한 것입니다.저는 항상 이 기사를 참조하고 있습니다.

http://www.25hoursaday.com/CsharpVsJava.html

C#에는 자동 속성이 있어 매우 편리하며, 적어도 getter와 setter에 커스텀 로직이 없는 경우 코드를 깨끗하게 유지할 수 있습니다.

Java에 없는 C#의 기능 • C#에는 보다 원시적인 유형과 산술 예외를 포착하는 기능이 포함되어 있습니다.

• Java에 대한 많은 알림 편의 기능 포함. 연산자 오버로드나 사용자 정의 캐스트 등 많은 기능은 C++ 프로그래머의 대규모 커뮤니티에 이미 익숙합니다.

• 이벤트 처리는 "일류 시민"이며, 언어 자체의 일부입니다.

• 클래스와 유사하지만 스택에 할당될 수 있는 "구조"를 정의할 수 있습니다(C# 및 Java의 클래스 인스턴스와는 다릅니다).

• C#은 언어 구문의 일부로 속성을 구현합니다.

• C#에서는 switch 문을 문자열로 동작시킬 수 있습니다.

• C#은 폐쇄 기능을 제공하는 익명 메서드를 허용합니다.

• C#을 사용하면 함수 스타일의 yield 키워드를 사용하여 코루틴을 사용하는 반복기를 사용할 수 있습니다.

• C#은 출력 파라미터를 지원하며 C++와 SQL이 공유하는 기능인 여러 값을 반환할 수 있습니다.

• C#에는 네임스페이스에 에일리어스를 붙일 수 있는 기능이 있습니다.

• C#에는 클래스 자체의 클래스 메서드와는 별도로 인터페이스의 메서드를 구현할 수 있는 "Explicit Member Implementation"이 있습니다.이것에 의해, 같은 이름의 메서드를 가지는 2개의 다른 인터페이스를 실장할 수도 있습니다.인터페이스의 메서드는 퍼블릭할 필요는 없습니다.그 인터페이스를 통해서만 액세스 할 수 있습니다.

• C#은 COM과의 통합을 제공합니다.

• C 및 C++의 예에 따라 C#은 원시 및 참조 유형에 대한 참조 호출을 허용합니다.

C#에 존재하지 않는 Java의 기능

• Java의 strictfp 키워드는 부동소수점 연산 결과를 플랫폼 전체에서 동일하게 유지합니다.

• Java는 체크된 예외를 지원하여 오류 트래핑 및 처리를 보다 효과적으로 수행합니다.

또 다른 좋은 리소스는 http://www.javacamp.org/javavscsharp/입니다.이 사이트에는 이들 두 프로그래밍 언어의 거의 모든 차이를 보여주는 많은 예가 열거되어 있습니다.

속성에 대해 Java에는 거의 동일한 방식으로 작동하는 주석이 있습니다.

범용:

Java 제네릭스를 사용하면 에서 얻을 수 있는 실행 효율이 실제로 향상되지는 않습니다.NET Java에서 범용 클래스를 컴파일하면 컴파일러가 type 파라미터를 삭제하고 오브젝트를 대체하기 때문입니다.예를 들어 다음과 같은 경우Foo<T>class 자바 컴파일러가 바이트 코드를 생성하는 것처럼Foo<Object>즉, 캐스팅과 복싱/언박스는 "배경"에서 수행해야 합니다.

저는 Java/C#을 사용한 지 얼마 되지 않았습니다만, 언어 레벨의 큰 차이는, 지적하신 대로, 대리점이라고 생각합니다.

아래 링크에 접속해 주세요.msdn.microsoft.com/en-us/library/ms836794.aspx 에는 C#과 Java의 유사성과 차이점이 기재되어 있습니다.

언급URL : https://stackoverflow.com/questions/295224/what-are-major-differences-between-c-sharp-and-java

반응형