Java数组学习,java数组
分享于 点击 48767 次 点评:38
Java数组学习,java数组
大学一直学习Java,想毕业以后也搞Java,结果大四的时候找来一个.NET的工作,几年不碰Java了,好多都不记得了,拿着C#的东东去猜Java。没有办法,最近有捡起以前的宝典来学习Java。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1、数组的初始化
Java数组是静态的一旦初始化(分配内存、数据初始化),数组的长度就确定了,不可改变。以后只能改变其内容了
数据类型 | 初始值 |
整数类型byte、short、int、long等 | 0 |
浮点型float、double等 | 0.0 |
字符型char | \u0000 |
布尔型boolean | false |
引用类型类、接口、数组 | null |
public static void main(String[] args) {
//初始化数组(根据内容自动加上长度)
String[] sArray1 = new String[]{
"测试1", "测试2", "测试3"
};
//初始化数组简化形式(根据内容自动加上长度)
String[] sArray2 = {
"Hello1", "Hello2", "Hello3", "Hello4"
};
//初始化数组(指定长度,内容自动初始化)
String[] sArray3 = new String[5];
System.out.println("sArray1长度:" + sArray1.length + ";第一个元素:" + sArray1[0]);
System.out.println("sArray2长度:" + sArray2.length + ";第一个元素:" + sArray2[0]);
System.out.println("sArray3长度:" + sArray3.length + ";第一个元素:" + sArray3[0]);
}
结果为:
sArray1长度:3;第一个元素:测试1
sArray2长度:4;第一个元素:Hello1
sArray3长度:5;第一个元素:null
由于字符串类型String是一个类,属于引用类型而非基本类型,所以初始值为null
局部变量都放在栈内存中,不管是基本类型还是引用类型
引用变量所引用的对象放在堆内存中
像变量sArray1、sArray2、sArray3就是放在栈内存,而其对应的内容放在堆内存。
在Java中一般堆中的对象不能直接访问,只能通过引用变量来访问,如sArray1[0]、sArray1.length、class1.name
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
由于数组属于引用类型,数组变量并非数组本身,而是指向堆内存中的数组对象。因此在数组与数组之间赋值的时候并不是数组内容本身的赋值,而是改变其引用,相当于指针的指向。
public static void main(String[] args) {
//初始化数组(根据内容自动加上长度)
String[] sArray1 = new String[]{
"测试1", "测试2", "测试3"
};
//初始化数组简化形式(根据内容自动加上长度)
String[] sArray2 = {
"Hello1", "Hello2", "Hello3", "Hello4"
};
//初始化数组(指定长度,内容自动初始化)
String[] sArray3 = new String[5];
//数组间的赋值
sArray2 = sArray1;
sArray3 = sArray1;
sArray2[0] = "已经改变";
System.out.println("sArray1长度:" + sArray1.length + ";第一个元素:" + sArray1[0]);
System.out.println("sArray2长度:" + sArray2.length + ";第一个元素:" + sArray2[0]);
System.out.println("sArray3长度:" + sArray3.length + ";第一个元素:" + sArray3[0]);
}
结果为:
sArray1长度:3;第一个元素:已经改变
sArray2长度:3;第一个元素:已经改变
sArray3长度:3;第一个元素:已经改变
将sArray1赋给sArray2、sArray3,其实是将其引用给了它,相当于是sArray1数组内容的地址给了他们,对他们的操作就相当于对是sArray1的内容进行操作。那么sArray2与sArray3的内容就会成为垃圾被回收相关文章
- 暂无相关文章
用户点评