1.引用
什么是引用
?
引用相当于一个
"
别名
",
也可以理解成一个指针
.
创建一个引用只是相当于创建了一个很小的变量
,
这个变量保存了一个整数
,
这个整数表示内存中的一个地址
.
当一个引用被赋值为null的时候,代表这个引用不指向任何对象;
![](https://i-blog.csdnimg.cn/blog_migrate/36c8a63d88ce2caab1bc58f105999b51.jpeg)
2.一维数组初始化
数组初始化三种方式;
int[] array = {1, 2,3,4,5,6,7,8,9};
int[] array1=new int[]{1,2,3,4,5};
int[] array2=new int[10];
3.类Arrays里的方法;
打印数组;
System.out.println(Arrays.toString(array));
Arrays是操控数组的一个类,toString是里面的方法,它的源码如下,是将数组里的数字转化为字符串;
public static String toString(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
对数组排序;
int[] array = {9,8,7,6,5,4,3,2,1};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
4.数组作为函数参数传递
public class Main {
public static void main(String[] args) {
int[] array = {9, 8, 7, 6, 5, 4, 3, 2, 1};
int []ret=grow(array);
System.out.println(Arrays.toString(array));
System.out.println(Arrays.toString(ret));
}
public static int[] grow(int[] array) {
for (int i = 0; i < array.length; i++) {
array[i] = array[i] * 2;
}
return array;
}
}
5.二维数组;
二维数组是特殊的一维数组;
java中二维数组行不能省略,单列可以省略,和C语言不同。神奇的是可以单独指定列,变成不规则的二维数组,如下图;
int[][] array =new int[2][];
array[0]=new int[2];
array[1]=new int[4];
打印二维数组;
public static void main(String[] args) {
int[][] array =new int[2][];
array[0]=new int[]{1,2,3,4};
array[1]=new int[]{1,2};
System.out.println(Arrays.deepToString(array));
}
6.内存
重点理解java虚拟机栈和堆;