//java中使用数组
public class Array {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};//java也支持c语言的这种写法:int arr[5];
for(int x:arr){//java遍历数组的方法远比c语言方便
System.out.print(x + "\t");
}
System.out.println(arr);//这样打印的就是数组的地址
//动态初始化,只给定数组长度,由系统给出默认初始化值
int[] nums;//声明一个数组,在栈中存放一个地址
nums = new int[3];//创建一个数组,在堆里开辟空间,栈的地址指向堆
nums[0]=1;
nums[1]=2;
nums[2]=3;
for(int i = 0; i < nums.length; i ++){//数组属于Arrays类,里面有许多方法
System.out.println(nums[i]);
}
//多维数组
int[][] matrix = {{1,3,4},{2,3,4},{3,4,5},{3,3,4}};
//打印二维数组
System.out.println("==================");
for(int i = 0; i < matrix.length; i ++){
for(int j = 0; j < matrix[0].length; j ++){
System.out.print(matrix[i][j] + "\t");
}
System.out.println();
}
//也可以使用foreach语句打印
System.out.println("==================");
for(int[] ints:matrix){
for(int num:ints) {
System.out.print(num+"\t");
}
System.out.println();
}
}
}
运行结果如下:
数组除了用于保存基本数据类型的变量,还可以保存引用数据类型的变量,称为对象数组。
public class Person {
String name;
public Person(String name) {
this.age = age;
}
}
public class ClassArray {
public static void main(String[] args) {
Person[] persons = new Person[]{new Person("Jack"),new Person("Mary"),new Person("Tom")};//静态初始化
//动态初始化:Person[] persons = new Person[3];persons[0]= new Person("Jack");
}
}
Java中的内存分配
区域名称 | 作用 |
---|---|
寄存器 | 给CPU使用,和我们开发无关。 |
本地方法栈 | JVM在使用操作系统功能的时候使用,和我们开发无关。 |
方法区 | 存储可以运行的class文件。 |
堆内存 | 存储对象或者数组,new来创建的,都存储在堆内存。 |
方法栈 | 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。 |