菜鸟学习笔记:Java常用类(数组、字符串)
数组
概述
只要对多少接触过一点C语言同学来说数组肯定不陌生。Java中的数组和C语言差不多,所以这里不做太多引入直接上概念:
数组是相同类型数据的有序集合。
它有三个特点:
- 数组长度确定,一但创建它的大小不可改变。
- 其元素必须是相同类型。
- 数组中的元素可以是基本类型也可以是引用类型。
数组的定义
int[] a = new int[2];
//定义长度为2的数组,也可以写成int a[] = new int[2];
a[0] = 1;
a[1] = 2;
//数组静态初始化
int b[] = {
2,4,6,8};//直接创建长度为4的数组并初始化值
对上述代码来说,a是一个引用类型的变量,它存储的是堆中数组这块连续空间的首地址,而数组这块连续的结构中存储的就是实际的数据,和c、c++一样,数组表示一块连续的内存结构,根据数组类型不同每一块占用的内存大小不同,比如int类型占4个字节,那上例的数组就占8个字节,每个数组元素占4个字节。
引用类型数组:
public class Fish{
public Fish(String name){
this.name = name;
}
String name;
}
main函数中:
public static void main(String[] args) {
//注意,这里是新建一个数组对象,不是Fish对象
Fish[] aFish1 = new Fish[2];
aFish1[0] = new Fish("小丑鱼");//这里才是Fish对象
aFish1[1] = new Fish("大鲨鱼");
//也可以静态初始化
Fish[] aFish2 = {
new Fish("食人鱼"), new Fish("红烧鱼")}
}
内存结构:
另外数组可以通过length属性求得其长度,比如上例a.length就是2。这一点在数组遍历时比较常用。
二维数组
Java中二维数组的用法和c语言相差不多,总的来说那就是将数组中的基本类型变量替换为引用类型变量,让这个引用类型变量指向另一个数组,比如下面这个例子:
public static void main(String[] args) {
int[][] a = {
{
1, 2}, {
3, 4, 5}};
System.out.println(a[1][1]);//打印4
System.out.println(a[0][1