java数组初始化方式(Java数组初始化,这三种方式有什么区别)

本文目录
- Java数组初始化,这三种方式有什么区别
- java中一维数组的定义及初始化的方法有哪几种
- JAVA中怎么初始化对象数组
- java数组初始化
- JAVA怎么初始化泛型数组
- java类中构造函数中:数组怎样初始化
- java数组怎么初始化private int[20] a=
Java数组初始化,这三种方式有什么区别
创建数组的三种方式:其实分为2类,一种是静态的创建,如方式一。一种是动态的创建,只不过根据写法的不同分为方式二和方式三:
[java] view plain copy
public static void main(String args) {
// 1.方式一 声明 分配空间并赋值
int arr1 = {1,2,3};
// 2.方式二 显示初始化
int arr2;
arr2 = new int{1,2,3};
// 3.方式三 显示初始化()
int arr3;
arr3 = new int;
}
他们的区别,方式一:在声明的时候直接就已经分配空间,并赋值,方式一是不能写成如下这种形式的。
[java] view plain copy
int arr1;
arr1 = {1,2,3};//错误写法 编译不同过
方式二和方式三,声明和内存分配是分开的,如上面的例子,
[java] view plain copy
int arr2; 和 int arr3;
这一步是在栈空间分配一个引用,存放的是一个引用,null
[java] view plain copy
arr2 = new int{1,2,3};《span style=“font-family: Arial, Helvetica, sans-serif;“》arr3 = new int;《/span》
到这一步的时候jvm才开始在内存堆区域分配空间,并赋值,方式二直接赋值 1,2,3 方式三 默认初始化,基本类型是 0 布尔类型是 false 引用类型为null,
注:内存一旦分配不能改变,所有说数组长度固定
java中一维数组的定义及初始化的方法有哪几种
两种:
1 int a=new int
for(int i=0;i《10’i++){
a[i]=i+1;
}
2 int b={1,2,3,4,5,6}
JAVA中怎么初始化对象数组
初始化数组有三种方式,以下都是去初始化一个String类型长度2的数组:
方式一:
String strs = new String;strs = “0“;
strs = “1“;
方式二:
方式三:
String strs = {“0“, “1“};三种方式,都有自己的使用场景,在合适场景使用即可。
java数组初始化
第一题选B,第二题选A、B和D;
java初始化数组的几种方法:
int a; //声明未初始化
a = new int ; // 定义占用空间大小(10个int)
int a = new int ; //声明并定义大小(即分配了指定大小的空间)
int a = {1,2,3}; // 声明并初始化,占用空间大小是3个int。
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类中构造函数中:数组怎样初始化
1、java构造函数--数组 在构造函数中初始化数组,如 public class array { private int matrix; public array(int r,int c) { matrix=new matrix[r][c]; } }
matrix=new matrix[r][c];
2、这里是new int; java中8个基本数据类型都是有默认值的,int默认值为0 ,
3、所以数组中默认都为0.
4、但是切记有默认值的变量必须是类的属性,方法中局部变量必须赋值才可以使用。
java数组怎么初始化private int[20] a=
private
int
a
=
new
int;
首先int
是数据类型
不能写长度如你写的:int,是不对的!!!
其次,数组初始化很多种,如我提供的这种
直接new出数组长度并初始化。
第二种
{}
大括号的,这种适合数据量小且知道初始数据的。第三种数据返回型,也就是方法返回初始化数组定义。
你编译就错在定义数据类型时不能写长度,要定义定长的数组
new
int
这样子写!!!!

更多文章:
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00






