① java數組初始化
第一題選B,第二題選A、B和D;
java初始化數組的幾種方法:
int a[]; //聲明未初始化
a = new int [10]; // 定義佔用空間大小(10個int)
int a[] = new int [10]; //聲明並定義大小(即分配了指定大小的空間)
int a[] = {1,2,3}; // 聲明並初始化,佔用空間大小是3個int。
② 在java中,什麼叫數組的初始化
數組和對象其實是一樣的,分別有引用和物理地址,引用你可以看成指針,當你new Object()表示開辟一個物理地址存儲對象的真實數據,Object obj相當於你在內存中開辟一個物理地址存儲引用(指針),引用本身沒有數據,但是通過Object obj = new Object()相當於把引用和對象數據做了關聯,調用引用就等於調用數據的物理地址。new Object()表示數據初始化,Object obj表示引用初始化。
慢慢理解,祝你好運。
③ JAVA怎麼初始化泛型數組
首先由於Java泛型的實現,不可以使用如下的代碼:
public class GenSet<E> {
private E a[];
public GenSet() {
a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation
}
}
那麼我們如何在保持類型安全的同時實現這一點?
我在Java論壇上看到了這樣的解決方案:
import java.lang.reflect.Array;
class Stack<T> {
public Stack(Class<T> clazz, int capacity) {
array = (T[])Array.newInstance(clazz, capacity);
}
private final T[] array;
}
在這里,我們需要討論"checked" and "unchecked"。
Checked:strong typing。GenSet明確知道它包含的對象類型(即它的構造函數是使用Class <E>參數顯式調用的,當方法傳遞非類型E的參數時,方法將拋出異常。請參閱Collections.checkedCollection。
在這種情況,我們需要這樣寫:
public class GenSet<E> {
private E[] a;
public GenSet(Class<E> c, int s) {
// Use Array native method to create array
// of a type only known at run time
@SuppressWarnings("unchecked")
final E[] a = (E[]) Array.newInstance(c, s);
this.a = a;
}
E get(int i) {
return a[i];
}
}
Unchecked: weak typing。實際上沒有對作為參數傳遞的任何對象進行類型檢查。
在這種情況,我們需要這樣寫:
public class GenSet<E> {
private Object[] a;
public GenSet(int s) {
a = new Object[s];
}
E get(int i) {
@SuppressWarnings("unchecked")
final E e = (E) a[i];
return e;
}
}
請注意,數組的組件類型應該是類型參數的擦除:
public class GenSet<E extends Foo> { // E has an upper bound of Foo
private Foo[] a; // E erases to Foo, so use Foo[]
public GenSet(int s) {
a = new Foo[s];
}
...
}
所有的這些都源於Java中泛型一個的特性但也是一個weakness:它是使用擦除實現的,因此除非實施一些顯式機制(type-checking),否則「泛型」類不知道它們在運行時創建的類型參數,故無法提供 type-safety。
④ JAVA中怎麼初始化對象數組
初始化數組有三種方式,以下都是去初始化一個String類型長度2的數組:
方式一:
String[]strs=newString[2];
strs[0]="0";
strs[1]="1";
方式二:
String[]strs=newString[]{"0","1"};
方式三:
String[]strs={"0","1"};
三種方式,都有自己的使用場景,在合適場景使用即可。
⑤ java數組類初始化如何賦值
Comparable[] s={new Comparable(3),new Comparable(20),new Comparable(13)};
估計也只能這樣子了.這么寫不能直接指定數組的長度.
數據特別多的話,最好是把你的數據用個int數組包裝起來,再寫個循環.
⑥ java數組的初始化
一維數組
1)
int[] a; //聲明,沒有初始化
2)
int[] a=new int[5]; //初始化為默認值,int型為0
3)
int[] a={1,2,3,4,5};
//初始化為給定值
4)
int[] a=new int[]{1,2,3,4,5}; //同(3)
int[] a=new int[5]{1,2,3,4,5};
//錯誤,如果提供了數組初始化操作,則不能定義維表達式
5)
int[] a;
a=new int[5]; //正確,同(2)一樣
int[] a;
a={1,2,3,4,5}; //錯誤數組常量只能在初始化操作中使用,如(3)
6) int a[];
a[0]=1;
//錯誤,因為數組沒有初始化,不能賦值a[1]=2; 二維數組
1)
int[][] a;
//聲明,沒有初始化
2) int[][] a=new int[2][3];
//初始化為默認值,int型為0
3)
int[][] a={{1,2},{2,3},{3,4}};
//初始化為給定值
int[][] a={{1,2},{2,3},{3,4,5}};
//沒有錯,數組空間不是連續分配的,所以不要求每一維的大小相同
4)
int[][] a=new int[2][];
a[0]=new int[3];
//a[0]其實就是一個數組a[1]=new int[4];
//每一維的大小可以不一樣
;
5)
int[][] a=new
int[][]{{1,2},{2,3},{3,4,5}};
//同(3)
⑦ Java數組創建和初始化
有什麼問題?
創建數組
String[]
a
=
new
String[3];
String[]
a
=
new
String[]{"a","b"};
就是象定義變數那個..只是在類形後面加個[]初始化
第一種.寫法.如果是數值形.默認值是0;如果是字元串.或者對象類型就是NULL;
第二種.寫法.創建時直接初始化.
要注意..第一種寫法的3就是數據長度那裡.如果你沒有給數組元素賦值的化必須有.如果象第二種.有賦值的話就可以把3省掉.