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

本文目录
- Java数组初始化,这三种方式有什么区别
- java怎么new字符串数组初始化
- java中初始化数组时错误提示:尚未初始化变量
- 如果没有基础, 学Java难不难
- java类中构造函数中:数组怎样初始化
- JAVA怎么初始化泛型数组
- java 如何定义数组和初始化
- java中怎么数组初始化
Java数组初始化,这三种方式有什么区别
创建数组的三种方式:其实分为2类,一种是静态的创建,如方式一。一种是动态的创建,只不过根据写法的不同分为方式二和方式三:
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;
}
他们的区别,方式一:在声明的时候直接就已经分配空间,并赋值,方式一是不能写成如下这种形式的。
view plain copy
int arr1;
arr1 = {1,2,3};//错误写法 编译不同过
方式二和方式三,声明和内存分配是分开的,如上面的例子,
view plain copy
int arr3;
这一步是在栈空间分配一个引用,存放的是一个引用,null
view plain copy
arr2 = new int;《/span》
到这一步的时候jvm才开始在内存堆区域分配空间,并赋值,方式二直接赋值 1,2,3 方式三 默认初始化,基本类型是 0 布尔类型是 false 引用类型为null,
注:内存一旦分配不能改变,所有说数组长度固定
java怎么new字符串数组初始化
java字符串数组初始化有两种方式,一种是直接设置值的,一种是实例化后再设置值的
1、直接设置值的方法如下:
String name1 = "zhangsan";
String name2 = "lisi";
String names = { name1, name2 };
// 这时的字符串数组长度为2
2、实例化后再设置值的方式如下:
String;
names = "zhangsan";
names = "lisi";
希望能帮到你,有任何疑问欢迎向我提问
java中初始化数组时错误提示:尚未初始化变量
从逻辑上分析,if
如果出现这种情况,你对数组进行初始化,赋值;
if
如果不出现这种情况呢,他就不运行if里
的语句,那么return的时候
数组b
就尚未初始化;这里说的是局部变量;
局部变量在使用之前必须初始化,如果你定义成全局变量
就没问题了,运行环境会默认给它个null值
如果没有基础, 学Java难不难
这个 不大好说,我是做Java开发的,不过我是参加专业培训出来的。自学的话没有基础很难,需要付出很多,我当时就自学失败重启的。但是不意味着学不会。可能一开始学就是照着人家的例子敲啊敲,敲多了就明白怎么回事了,其实理解了之后发现真的挺简单的。基本编程能力有了,学习struts Spring框架神马的都无压力了。我是在重庆 华信 智原。你可以参考下
java类中构造函数中:数组怎样初始化
1、java构造函数--数组 在构造函数中初始化数组,如 public class array { private int ; } }
matrix=new matrix;
2、这里是new int; java中8个基本数据类型都是有默认值的,int默认值为0 ,
3、所以数组中默认都为0.
4、但是切记有默认值的变量必须是类的属性,方法中局部变量必须赋值才可以使用。
JAVA怎么初始化泛型数组
首先由于Java泛型的实现,不可以使用如下的代码:
public class GenSet《E》 {
private E a;
public GenSet() {
a = new E; // 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) Array.newInstance(c, s);
this.a = a;
}
E get(int i) {
return a;
}
}

Unchecked: weak typing。实际上没有对作为参数传递的任何对象进行类型检查。
在这种情况,我们需要这样写:
public class GenSet《E》 {
private Object a;
public GenSet(int s) {
a = new Object;
}
E get(int i) {
@SuppressWarnings("unchecked")
final E e = (E) a;
return e;
}
}
请注意,数组的组件类型应该是类型参数的擦除:
public class GenSet《E extends Foo》 { // E has an upper bound of Foo
private Foo
public GenSet(int s) {
a = new Foo;
}
...
}
所有的这些都源于Java中泛型一个的特性但也是一个weakness:它是使用擦除实现的,因此除非实施一些显式机制(type-checking),否则“泛型”类不知道它们在运行时创建的类型参数,故无法提供 type-safety。
java 如何定义数组和初始化
1.数组的定义:
数组可以分为一维数组,二维数组,多维数组。一维数组的定义有以下两种方式:
type arr_name;
type arr_name;
二维数组的定义方式如下:
type arr_name;
type arr_name;
多维数组可根据维数指定相应个数的
int arr1;
String arr2;
float arr3 ;
String arr4;
2.数组的初始化:
数组的初始化有以下两种方式
静态初始化
静态初始化是指在定义的同时指定数组元素内容,示例代码如下:
int arr1 = {1,2,3,4,5};
String arr2 = {"tom","rose","sunny"};
String arr3 = { {"tom","American"},{"jack","England"},{"张三","china"} };
动态初始化
动态初始化是指在定义时首先通过new 关键字开辟指定大小的存储空间,然后在为数组指定内容
int ;
arr1 = 10;
arr2 = 20;
arr3 = 30;
java中怎么数组初始化
成员变量,你不设值它也会初始化为null,但在方法中的局部变量就必须要初始化了
Boolean
array
=
{true,true};
或
Boolean
array
=
new
Boolean;
array
=
true;
array
=
true;

更多文章:
gridview排序功能属性(怎么把datagridview中的自动排序功能禁用)
2025年6月15日 08:45
易语言主程序和dll通讯(C+的dll如何用易语言正确调用)
2026年4月8日 14:30
怎么制作网站ping工具(ping是什么 如何ping一个站点)
2026年4月7日 09:15
前端样式网站(前端开发应该知道的几个CSS网页表单布局技巧)
2026年2月10日 21:15
flash模板照片幻灯片放映按钮代码解释?如何使用C#操作幻灯片
2025年7月24日 18:45
delphi bit定义(delphi中如何定义TBitmap类型的变量)
2025年11月14日 19:00
bankstatement中文(bank statement是什么意思)
2026年4月5日 01:45
linux如何编程(linux编程开发如何实现对智能手机的开发)
2025年12月23日 13:00
compareto方法实现(java中compareto实现学生成绩排列)
2026年4月28日 01:00
win8如何重装系统(怎么重新安装win8系统|win8如何重新安装系统)
2026年5月29日 06:45














