C#과 Java에서 배열 선언 및 사용에 차이점이 몇 가지 있습니다. 주요 차이점을 아래에 정리해 보았습니다.

1. 배열 선언 방식

  • C#: Type[] arrayName = new Type[size];
  • Java: Type[] arrayName = new Type[size];

배열 선언 방식은 C#과 Java 모두 유사하지만, 배열 초기화 방법에 따라 차이가 있을 수 있습니다.

2. 배열 크기 지정

  • C#: 배열을 선언할 때 크기를 지정하지 않고 초기화할 수 있습니다.
    csharp
    int[] numbers = { 1, 2, 3 };
  • Java: 배열 선언 시 크기나 값을 바로 할당할 수 있습니다.
    java
    int[] numbers = { 1, 2, 3 };

3. 배열 초기화 값

  • C#: 배열이 선언되면 자동으로 기본값으로 초기화됩니다. 예를 들어, int 배열의 경우 모든 값이 0으로 초기화됩니다.
  • Java: Java에서도 배열은 선언되면 자동으로 기본값으로 초기화됩니다. int 배열은 0, boolean 배열은 false로 초기화됩니다.

4. 배열 속성

  • C#: 배열의 길이를 확인할 때 Length 속성을 사용합니다.
    csharp
    int[] numbers = new int[3]; int length = numbers.Length;
  • Java: Java에서는 length 필드를 사용합니다.
    java
    int[] numbers = new int[3]; int length = numbers.length;

5. 다차원 배열

  • C#: 다차원 배열을 쉽게 선언할 수 있으며, 직사각형 배열과 가변 배열(혹은 계단식 배열)을 지원합니다.
    csharp
    // 직사각형 배열 int[,] matrix = new int[3, 3]; // 가변 배열 (계단식 배열) int[][] jaggedArray = new int[3][]; jaggedArray[0] = new int[2]; jaggedArray[1] = new int[3]; jaggedArray[2] = new int[1];
  • Java: Java에서는 다차원 배열을 가변 배열(계단식 배열)로만 선언할 수 있습니다.
    java
    int[][] matrix = new int[3][]; matrix[0] = new int[2]; matrix[1] = new int[3]; matrix[2] = new int[1];

6. Array 클래스 지원

  • C#: 배열은 System.Array 클래스를 상속받아 여러 가지 메서드를 제공합니다. 예를 들어 Array.Sort(), Array.Reverse() 등을 사용할 수 있습니다.
  • Java: Java 배열은 java.util.Arrays 클래스를 통해 다양한 유틸리티 메서드 (Arrays.sort(), Arrays.toString())를 사용할 수 있습니다.

7. 형식 안전성

  • C#: C#에서는 배열에 형식 안전성이 강화되어 있어 선언된 형식과 일치하지 않는 데이터를 추가할 수 없습니다.
  • Java: Java에서도 마찬가지로 배열 선언 시 지정된 형식 외의 데이터는 허용되지 않습니다.

이처럼 C#과 Java는 배열 선언 및 처리 방식에서 유사한 점이 많지만, 세부적인 기능과 문법에서는 차이가 있습니다.

+ Recent posts