---
title: ææ¡Javaæ°ç»ï¼ä¸ä¸ªéå¸¸ç¹æ®ç对象
shortTitle: æ°ç»
category:
- Javaæ ¸å¿
tag:
- æ°ç»&å符串
description: æ¬æè¯¦ç»ä»ç»äºJavaæ°ç»ï¼å
æ¬æ°ç»çåºæ¬æ¦å¿µãåå»ºæ¹æ³ãåå§åæ¹æ³ä»¥åå¸¸ç¨æä½ãå¦ä¹ æ¬æå
å®¹ï¼æ¨å°ææ¡Javaæ°ç»çå®ä¹ãå¦ä½å建ååå§åæ°ç»ï¼ä»¥åå¦ä½è¿è¡æ°ç»å
ç´ çæ·»å ãå é¤ãæ¥è¯¢çæä½ï¼ä¸ºæ¨çJavaç¼ç¨ä¹æ
æä¸åå®åºç¡ã
head:
- - meta
- name: keywords
content: Java, æ°ç», å建æ°ç», åå§åæ°ç», æ°ç»æä½
---
âäºå¥ï¼æçä½ å
¬ä¼å·çä¸ç¯æç« éæå°ï¼[ArrayList](https://javabetter.cn/collection/arraylist.html) çå
鍿¯ç¨æ°ç»å®ç°çï¼æå°±å¯¹æ°ç»é常æå
´è¶£ï¼æ³æ·±å
¥å°äºè§£ä¸ä¸ï¼ä»å¤©ç»äºå°è¿ä¸ªç¯èäºï¼å¥½æå¾
åï¼âä¸å¦¹çè¯æ°éæ¾å¾å¾å
´å¥ã
âçç¡®æ¯çï¼ç ArrayList çæºç 就䏿¸
äºæ¥äºãâæä¸è¾¹è¯´ï¼ä¸è¾¹æå¼ Intellij IDEAï¼å¹¶æ¾å°äº ArrayList çæºç ã
```java
/**
* The array buffer into which the elements of the ArrayList are stored.
* The capacity of the ArrayList is the length of this array buffer. Any
* empty ArrayList with elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA
* will be expanded to DEFAULT_CAPACITY when the first element is added.
*/
transient Object[] elementData; // non-private to simplify nested class access
/**
* The size of the ArrayList (the number of elements it contains).
*
* @serial
*/
private int size;
```
âç§è§æ²¡ï¼`Object[] elementData` å°±æ¯æ°ç»ãâææçæ¾ç¤ºå±ä¸è¿ä¸²ä»£ç ç»§ç»è¯´ã
æ°ç»æ¯ä¸ä¸ªå¯¹è±¡ï¼å®å
å«äºä¸ç»åºå®æ°éçå
ç´ ï¼å¹¶ä¸è¿äºå
ç´ çç±»åæ¯ç¸åçãæ°ç»ä¼æç
§ç´¢å¼çæ¹å¼å°å
ç´ æ¾å¨æå®çä½ç½®ä¸ï¼æå³çæä»¬å¯ä»¥éè¿ç´¢å¼æ¥è®¿é®è¿äºå
ç´ ãå¨ Java ä¸ï¼ç´¢å¼æ¯ä» 0 å¼å§çã
âå¥ï¼è½è¯´ä¸ä¸ä¸ºä»ä¹ç´¢å¼ä» 0 å¼å§åï¼âä¸å¦¹çªç¶å¯¹è¿ä¸ªè¯é¢å¾æå
´è¶£ã
âå¦ï¼Java æ¯åºäº C/C++ è¯è¨å®ç°çï¼è C è¯è¨ç䏿 æ¯ä» 0 å¼å§çï¼æä»¥ Java 就继æ¿äºè¿ä¸ªè¯å¥½çä¼ ç»ä¹ æ¯ï¼*æçç¼ç*ï¼ãCè¯è¨æä¸ä¸ªå¾éè¦æ¦å¿µï¼å«åæéï¼å®å®é
䏿¯ä¸ä¸ªåç§»éï¼è·ç¦»å¼å§ä½ç½®çåç§»éï¼ç¬¬ä¸ä¸ªå
ç´ å°±å¨å¼å§çä½ç½®ï¼å®çåç§»é就为 0ï¼æä»¥ç´¢å¼å°±ä¸º 0ãâæ¤å»ï¼æå¾èªä¿¡ã
âæ¤å¤ï¼è¿æå¦å¤ä¸ç§è¯´æ³ãæ©æçè®¡ç®æºèµæºæ¯è¾å®ä¹ï¼0 ä½ä¸ºèµ·å§ä¸æ ç¸æ¯è¾äº 1 ä½ä¸ºèµ·å§ä¸æ ï¼ç¼è¯çæçæ´é«ãâ
âå¦ãâä¸å¦¹æå³æ·±é¿å°ç¹äºç¹å¤´ã
æä»¬å¯ä»¥å°æ°ç»ç解为ä¸ä¸ªä¸ªæ´é½æåçåå
æ ¼ï¼æ¯ä¸ªåå
æ ¼éé¢åæ¾çä¸ä¸ªå
ç´ ã
æ¯å¦è¯´ä¸å¾ä¸çæ°ç»ï¼å¼ä¸º[a,b,c,a,b,c,b,b]ï¼ä¸æ 便¬¡ä¸º 0ã1ã2ã3ã4ã5ã6ã7ã

æ°ç»å
ç´ çç±»åå¯ä»¥æ¯åºæ¬æ°æ®ç±»åï¼æ¯å¦è¯´ intãdoubleï¼ï¼ä¹å¯ä»¥æ¯å¼ç¨æ°æ®ç±»åï¼æ¯å¦è¯´ Stringï¼ï¼å
æ¬èªå®ä¹ç±»åã
### æ°ç»ç声æä¸åå§å
æ°ç»çå£°ææ¹å¼å两ç§ã
å
æ¥ç第ä¸ç§ï¼
```java
int[] anArray;
```
忥ç第äºç§ï¼
```java
int anOtherArray[];
```
ä¸åä¹å¤å°±å¨äºä¸æ¬å·çä½ç½®ï¼æ¯è·å¨ç±»åå
³é®åçåé¢ï¼è¿æ¯è·å¨åéçåç§°çåé¢ãåä¸ç§ç使ç¨é¢çæ´é«ä¸äºï¼å ArrayList çæºç ä¸å°±ç¨äºç¬¬ä¸ç§æ¹å¼ã
åæ ·çï¼æ°ç»çåå§åæ¹å¼ä¹æå¤ç§ï¼æå¸¸è§çæ¯ï¼
```java
int[] anArray = new int[10];
```
çå°æ²¡ï¼ä¸é¢è¿è¡ä»£ç ä¸ä½¿ç¨äº new å
³é®åï¼è¿å°±æå³çæ°ç»çç¡®æ¯ä¸ä¸ªå¯¹è±¡ï¼åªæå¯¹è±¡çå建æä¼ç¨å° new å
³é®åï¼[åºæ¬æ°æ®ç±»å](https://javabetter.cn/basic-grammar/basic-data-type.html)æ¯ä¸ç¨çï¼åºæ¬æ°æ®çå
è£
ç±»åæ¯å¯ä»¥ new çï¼å
è£
ç±»åå°±æ¯å¯¹è±¡ï¼ãç¶åï¼æä»¬éè¦å¨æ¹æ¬å·ä¸æå®æ°ç»çé¿åº¦ã
è¿æ¶åï¼æ°ç»ä¸çæ¯ä¸ªå
ç´ é½ä¼è¢«åå§å为é»è®¤å¼ï¼int ç±»åç就为 0ï¼Object ç±»åç就为 nullã ä¸åæ°æ®ç±»åçé»è®¤å¼ä¸åï¼å¯ä»¥åç
§[ä¹åçæç« ](https://javabetter.cn/basic-grammar/basic-data-type.html)ã
å¦å¤ï¼è¿å¯ä»¥ä½¿ç¨å¤§æ¬å·çæ¹å¼ï¼ç´æ¥åå§åæ°ç»ä¸çå
ç´ ï¼
```java
int anOtherArray[] = new int[] {1, 2, 3, 4, 5};
```
è¿æ¶åï¼æ°ç»çå
ç´ å嫿¯ 1ã2ã3ã4ã5ï¼ç´¢å¼ä¾æ¬¡æ¯ 0ã1ã2ã3ã4ï¼é¿åº¦æ¯ 5ã
### æ°ç»çå¸¸ç¨æä½
âå¥ï¼æä¹è®¿é®æ°ç»å¢ï¼âä¸å¦¹åæ¶å°æè¯å°ã
å颿å°è¿ï¼å¯ä»¥éè¿ç´¢å¼æ¥è®¿é®æ°ç»çå
ç´ ï¼å°±åä¸é¢è¿æ ·ï¼
```java
anArray[0] = 10;
```
åéåï¼å ä¸ä¸æ¬å·ï¼å ä¸å
ç´ çç´¢å¼ï¼å°±å¯ä»¥è®¿é®å°æ°ç»ï¼éè¿â=âæä½ç¬¦å¯ä»¥å¯¹å
ç´ è¿è¡èµå¼ã
å¦æç´¢å¼çå¼è¶
åºäºæ°ç»ççéï¼å°±ä¼æåº `ArrayIndexOutOfBoundException`ãç±äºæ°ç»çç´¢å¼æ¯ä» 0 å¼å§ï¼æä»¥æå¤§ç´¢å¼ä¸º `length - 1`ï¼ä¸è¦ä½¿ç¨è¶
åºè¿ä¸ªèå´å
çç´¢å¼è®¿é®æ°ç»ï¼å¦åå°±ä¼æåºæ°ç»è¶ççå¼å¸¸äºã
æ¯å¦è¯´ä½ 声æäºä¸ä¸ªå¤§å°ä¸º 10 çæ°ç»ï¼ä½ ç¨ç´¢å¼ 10 æ¥è®¿é®æ°ç»ï¼å°±ä¼æåºè¿ä¸ªå¼å¸¸ãå 为æ°ç»çç´¢å¼æ¯ä» 0 å¼å§çï¼æä»¥æ°ç»çæåä¸ä¸ªå
ç´ çç´¢å¼æ¯ `length - 1`ï¼ä¹å°±æ¯ 9ã
彿°ç»çå
ç´ é常å¤çæ¶åï¼éä¸ªè®¿é®æ°ç»å°±å¤ªè¾è¦äºï¼æä»¥éè¦éè¿éåçæ¹å¼ã
第ä¸ç§ï¼ä½¿ç¨ for 循ç¯ï¼
```java
int anOtherArray[] = new int[] {1, 2, 3, 4, 5};
for (int i = 0; i < anOtherArray.length; i++) {
System.out.println(anOtherArray[i]);
}
```
éè¿ length 屿§è·åå°æ°ç»çé¿åº¦ï¼ç¶åä» 0 å¼å§éåï¼å°±å¾å°äºæ°ç»çææå
ç´ ã
第äºç§ï¼ä½¿ç¨ for-each 循ç¯ï¼
```java
for (int element : anOtherArray) {
System.out.println(element);
}
```
妿ä¸éè¦å
³å¿ç´¢å¼çè¯ï¼æå³çä¸éè¦ä¿®æ¹æ°ç»çæä¸ªå
ç´ ï¼ï¼ä½¿ç¨ for-each éåæ´ç®æ´ä¸äºãå½ç¶ï¼ä¹å¯ä»¥ä½¿ç¨ while å do-while 循ç¯ã
### å¯å忰䏿°ç»
å¨ Java ä¸ï¼å¯ååæ°ç¨äºå°ä»»ææ°éçåæ°ä¼ éç»æ¹æ³ï¼æ¥ç `varargsMethod()` æ¹æ³ï¼
```java
void varargsMethod(String... varargs) {}
```
è¯¥æ¹æ³å¯ä»¥æ¥æ¶ä»»ææ°éçåç¬¦ä¸²åæ°ï¼å¯ä»¥æ¯ 0 个æè
N ä¸ªï¼æ¬è´¨ä¸ï¼å¯ååæ°å°±æ¯éè¿æ°ç»å®ç°çã为äºè¯æè¿ä¸ç¹ï¼æä»¬å¯ä»¥çä¸ä¸åç¼è¯ä¸åçåèç ï¼
```java
public class VarargsDemo
{
public VarargsDemo()
{
}
transient void varargsMethod(String as[])
{
}
}
```
æä»¥ï¼æä»¬å
¶å®å¯ä»¥ç´æ¥å°æ°ç»ä½ä¸ºåæ°ä¼ éç»è¯¥æ¹æ³ï¼
```java
VarargsDemo demo = new VarargsDemo();
String[] anArray = new String[] {"æ²é»çäº", "䏿æè¶£çç¨åºå"};
demo.varargsMethod(anArray);
```
ä¹å¯ä»¥ç´æ¥ä¼ éå¤ä¸ªå符串ï¼éè¿éå·éå¼çæ¹å¼ï¼
```java
demo.varargsMethod("æ²é»çäº", "䏿æè¶£çç¨åºå");
```
### æ°ç»ä¸ List
å¨ Java ä¸ï¼æ°ç»ä¸ List å
³ç³»é常å¯åãList å°è£
äºå¾å¤å¸¸ç¨çæ¹æ³ï¼æ¹ä¾¿æä»¬å¯¹éåè¿è¡ä¸äºæä½ï¼èå¦æç´æ¥æä½æ°ç»çè¯ï¼æå¾å¤ä¸ä¾¿ï¼å 为æ°ç»æ¬èº«æ²¡ææä¾è¿äºå°è£
好çæä½ï¼æä»¥ææ¶åæä»¬éè¦ææ°ç»è½¬æ Listã
>List ä¼å¨[éåæ¡æ¶](https://javabetter.cn/collection/arraylist.html)ä¸è详ç»ä»ç»ï¼è¿éå
æ¥ä¸ªå¼èèï¼æ¹ä¾¿å¤§å®¶åå¤´è¿æ¥å¤çã
âæä¹è½¬å¢ï¼âä¸å¦¹é®å°ã
æåå§çæ¹å¼ï¼å°±æ¯éè¿éåæ°ç»çæ¹å¼ï¼ä¸ä¸ªä¸ªå°æ°ç»æ·»å å° List ä¸ã
```java
int[] anArray = new int[] {1, 2, 3, 4, 5};
List