① 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省掉.