赋值 - Java数组初始化,这三种方式有什么区别?
天蓬老师
天蓬老师 2017-04-18 09:49:39
0
4
966

形式1:

Object[] params = null;
params = {1, 2, 3, 4};

形式2:

Object[] params = {1, 2, 3, 4};

形式3:

Object[] params = new Object[]{1, 2, 3, 4};

1.为什么第一种形式就是错的(编译阶段就报错),而第二种就可以呢?(第三种很显然)
2.第二种和第三种,哪种初始化方式更优呢?(或者有更好的?)

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(4)
迷茫

우선 배열 초기화를 사용할 때 배열의 길이를 결정해야 합니다. 즉, 배열의 길이는 변경할 수 없습니다.
JAVA에서 배열을 생성하는 방법에는 두 가지가 있습니다.
(1) 정적 생성 예:

으아악

(2)1
과 같은

의 동적 생성 으아악

2

으아악

3

으아악

그리고 질문자가 언급한 방법은

으아악

오류 1: 빈 배열 매개변수를 직접 생성하고 있습니다. 즉, 비어 있고 배열의 길이를 변경할 수 없습니다. 이때 데이터를 추가하면 빈 배열은 당연히 아무것도 추가할 수 없습니다. 뭔가 잘못될 겁니다. 위에서 언급한 두 번째 방법과 동일한 작업을 수행하고 길이가 4인 배열을 다시 만들고 새 배열의 주소를 params에 제공해야 합니다. 즉, Object[] params = null; 4]; 이런 식으로 생성할 수 있습니다.
오류 2: 배열 초기화는 정의가 완료된 후에만 연속적으로 추가할 수 있습니다.

으아악

그 이후에 데이터를 추가하려면 배열 첨자에 따라 하나씩만 추가하면 됩니다.

으아악

그러나 직접 매개변수는 아님 = {1, 2, 3, 4};

迷茫

양식 1

으아아아

이 선언 방법은 실제로 Java 초기화 배열의 구문 설탕 입니다. 소위 구문 설탕은 실제 실행 시 Java가 이를 형식 3으로 변환합니다. ,

으아아아

Java는 형식 2와 유사한 구문 설탕을 제공하지 않으므로 이러한 방식으로 사용하는 것은 불법입니다.

迷茫

으아아아

A. 포스터는 크게 걱정할 필요가 없다고 규정하고 있습니다.
B. 배열 요소를 미리 알고 있으면 Object[] params = {1, 2, 3, 4};를 사용하여 배열 코드를 선언하는 것이 더 간결합니다. 더 좋은 표현은 없습니다.

巴扎黑

첫 번째 선언 방법이 올바르지 않습니다.
Object[] params = new Object[length]여야 합니다.

두 번째는 제가 주로 사용하는 것입니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿