1, C# 및 JAVA 언어의 컴파일 결과는 컴퓨터 및 프로그래밍 언어와 독립적이며 실행 파일을 관리 하에 실행할 수 있습니다.
환경 내 구현
2.C# 과 자바 모두 자동 가비지 수집 메커니즘을 사용합니다.
3.C# 및 JAVA 언어에서 포인터 작업이 취소되었습니다.
C # 이나 자바 언어에는 헤더 파일이 없습니다.
5.C# 및 JAVA 언어 모두 단일 상속만 지원합니다. 다중 상속과 같은 기능을 구현하려면 인터페이스를 통해 구현해야 합니다.
6. 클래스는 모두 Object 클래스에서 파생되며, 클래스의 객체는 키워드 new 에 의해 생성됩니다.
7.C# 및 JAVA 언어 모두 스레드를 지원합니다.
8.C# 및 JAVA 언어에는 글로벌 변수와 글로벌 함수가 없으며 모든 변수와 함수는 클래스에 속합니다.
9.C# 및 JAVA 언어는 모두 경계 오버플로우 없이 배열 및 문자열 경계를 엄격하게 검사할 수 있도록 지원합니다.
10, C# 및 JAVA 는 모두 "->" 및 "::"연산자 대신 "."연산자를 사용합니다.
1 1, C# 및 JAVA 모두 null 과 bool 을 키워드로 사용합니다.
12, C# 및 JAVA 언어의 모든 값을 사용하려면 초기화해야 합니다.
13, C# 및 JAVA 언어의 If 문은 정수를 판단 조건으로 사용할 수 없습니다.
14, C# 및 JAVA 언어의 Try 문 블록 뒤에는 finally 문 블록이 올 수 있습니다.
C# 와 JAVA 의 차이점:
C# 과 자바 사이에는 많은 유사점이 있지만 두 회사가 개발한 고급 프로그래밍 언어이기 때문에 서로 독립적입니다.
자체 포함 시스템, 고유, C# 와 JAVA 의 차이점은 다음과 같습니다.
1, 속성
Delphi 또는 Visual Basic 과 같은 빠른 개발 도구를 자주 사용하는 개발자에게 속성은 매우 익숙한 개념입니다.
일반적으로 속성 값은 getXXX 를 통해 읽을 수 있으며 속성 값은 setXXX 를 통해 설정할 수 있습니다.
JAVA 에서 일반적으로 사용되는 속성 조작 문: foo.setsize (foo.getsize ()+1); Label.getFont () 를 사용합니다. SetBold (참);
C# 의 일반적인 속성 조작 문: foo.size++; Label.font.bold = true;
위의 속성 설정 방법은 JAVA 보다 간결하고 가독성이 뛰어납니다. 이것은 C# 의 간단한 특징을 완전히 반영합니다.
속성의 JAVA 정의: public intgetsize () {return size; } public void setsize (intvalue) {size = value; }
C# 은 속성 정의를 단순화합니다: public intsize {get {return size} set {size = value}}
2, 색인
C# 는 객체를 유사한 배열로 처리할 수 있도록 객체에 인덱스를 추가하는 index 기능을 제공하지만 JAVA 언어는 index 를 지원하지 않습니다.
C# 에서 색인을 정의하는 일반적인 방법은 다음과 같습니다.
공공 이야기 this[int index]
{
{return stories [index]; }
설정 {
다음 경우 (값! =null){
이야기 [색인] = 가치
}
}
3. 위임: 유형 보안 및 객체 지향 함수 포인터로 간주될 수 있습니다.
C# 은 delegate 가 하나의 이름으로 다른 함수에 액세스할 수 있도록 하여 JAVA 의 interface 와 유사한 기능을 구현하지만 interface 보다 더 유용합니다.
4, 이벤트
C# 는 위임 및 이벤트 키워드를 통해 이벤트를 처리하는 이벤트에 대한 직접 지원을 제공합니다. Event 키워드는 모든 위임 메서드를 숨기고 연산자 "+=" 및 "-+"를 사용하여 프로그래머가 시간 처리기를 자유롭게 추가하거나 제거할 수 있도록 합니다.
5.enum: 열거는 일련의 객체를 지정하는 데 사용됩니다.
C# 다음 명령문을 통해 열거 형을 정의하고 사용합니다.
정의: 공통 열거 방향 {북쪽, 동쪽, 서쪽, 남쪽};
용도: 방향 벽 = 방향. 북부;
JAVA 는 열거를 직접 지원하지 않습니다. C# 과 같은 기능을 구현하려면 먼저 클래스를 정의해야 합니다.
공개 강좌 방향 {
Public final static intnorth =1;
Public final static inteast = 2;
Public final static intwest = 3;
Public final 정적 intsouth = 4; }
Direction 클래스를 정의하면 JAVA 는 클래스의 값을 참조하여 열거형을 사용할 수 있습니다.
Int wall= 방향. 노트르
6.foreach 문
C# 는 표준 for 루프를 제공하고 VB 에서 가져온 foreach 문을 제공하여 컬렉션의 요소를 순환합니다.
JAVA 가 컬렉션의 모든 요소를 트래버스하는 일반적인 방법은 다음과 같습니다.
그리고 (! Collection.isEmpty ())
{
Object o = collection.get ();
Connection.next ();
…
}
C# 는 콜렉션의 모든 요소 foreach (콜렉션의 객체 o) {...} 를 통과합니다
7. 통합 데이터 유형:
대부분의 고급 프로그래밍 언어에는 정수 및 부동 소수점 유형과 같은 기본 데이터 유형이 있습니다. 또한 실제 요구 사항을 보다 잘 충족하기 위해 데이터 유형에 따라 처리 방법이 다릅니다. 분명히 간단한 데이터 유형 처리와 복잡한 데이터 유형 처리를 결합하여 일관된 방식으로 처리할 수 있다면 애플리케이션 설계의 효율성과 프로그래밍 유연성을 크게 향상시킬 수 있습니다.
JAVA 언어도 기본 데이터 유형을 별도로 처리하는 정책을 채택하고 있지만, 기본 데이터 유형을 기반으로 이러한 기본 데이터 유형을 캡슐화하는 일련의 클래스를 제공합니다 (예: Integer 는 클래스 Integer 로 캡슐화되고, 배정밀도 부동은 클래스 double 로 캡슐화됨).
C# 는 JAVA 와는 다른 방식으로 데이터 유형을 통합할 수 있는 방법을 제공합니다. 실제로 C# 에서는 int 와 같은 간단한 데이터 유형도 c# 내부의 구조인 Int32 를 통해 구현됩니다. C# 에서 int 는 구조적 Int32 의 별칭이라고 생각할 수 있습니다. C# 의 구조도 클래스 객체에서 상속되고 각 구조에도 Object 클래스에 정의된 메서드가 있으므로 C# 에서 정수를 조작할 수 있습니다. int I = 5;; 시스템. Console.writeline (i.tostring ());
8. 연산자 오버로드
연산자 오버로드는 다양한 데이터 유형을 보다 자연스러운 방식으로 조작할 수 있으므로 프로그램의 가독성과 유연성이 크게 향상됩니다. C# 의 "= =" 연산자는 Object 클래스에 정의되고 Object 에 정의된 = = 연산자는 두 값에 대한 참조를 비교하여 최종 결과를 얻습니다. 컬렉션과 관련된 클래스가 있는 경우 ICompar 인터페이스는 이러한 클래스에서 구현되어야 합니다. 이 인터페이스에는 두 객체의 비교 결과를 반환하는 CompareTo 메서드가 정의되어 있습니다. 이를 바탕으로 비교를 구현하는 연산자를 추가로 정의할 수 있습니다. 예를 들면 다음과 같습니다
>, =, < = 등. 사실 숫자 유형 (int, long 등) 입니다. ) 는 이러한 비교 연산자를 직접 사용할 수 있으며 모두 내부적으로 ICompare 인터페이스를 구현합니다.
9. 다형성
가상 방법은 다형성 기술을 제공합니다. 다형성이란 파생 클래스가 기본 클래스와 이름이 같은 메서드를 정의할 수 있음을 의미합니다. JAVA 와 C# 모두 다형성을 지원하지만 구체적인 구현 방법은 다르다.
JAVA 언어에서 기본 클래스의 객체는 기본적으로 파생 클래스의 가상 메서드를 직접 호출할 수 있습니다. C# 언어에서 기본 클래스는 virtual 키워드를 통해 파생 클래스에서 가상 메서드를 호출해야 합니다. 또한 C# 언어에서 메서드가 기본 클래스에서 같은 이름의 메서드를 다시 로드하는 경우 키워드 override 를 통해 구현해야 합니다. C# 에서 다형성을 구현하는 일반적인 절차는 다음과 같습니다.
클래스 b {공용 가상 void foo{}}
클래스 d: b {public override d void foo () {}}
위의 내용은 C# 과 JAVA 의 유사점과 차이점을 간략하게 비교합니다. 사실 양자의 대비는 그 이상이다. 이 두 언어를 잘 배우려면 많은 실제 일을 해야 실천에서 구별할 수 있다.