Java基础复习笔记系列之 数组
1、数组初步介绍?
Java中的数组是引用类型,不可以直接分配在栈上。不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型。)
Java中的数组在申明时,不能指定其长度。不同于C
数组的小标可以是整型常量或整型表达式。
.length方法是显示数组的长度;数组.length;String.length();一个是属性,一个是方法。注意区分。
2、数组的内存分析?
Array a[];
a = new Integer(15);
/*这个a在栈中,在堆内new了15个基本数据类型,a中存放的是地址。堆中存放的是15个初始化为null的值。
Array a[];
a = new Date[12];
/*同样的a在栈中,在堆中new了12个引用,其中每一个引用指向了一个Date,在没有指向之前,默认初始化为null。
3、数组的初始化:静态初始化和动态初始化?
动态初始化,先分配空间,后赋值。int[] a = new int[];是不对的,要:int[] a = new int[23];一定要分配空间。
静态初始化,在定义数组的时候,就为分配空间并赋值。
4、public static void main(String[] args)怎么理解?
String[] args,终归只是一个数组。我们可以将它打印出来。System.exit(-1);表示系统退出。-1表示非正常退出。0表示正常退出。
问题来了,输入的都是字符串类型。怎么把字符串类型转换为我们常用的一些基本数据类型呢?将基础类型的数据包装成一个对象。(想清楚,对象是放在Heap上的。而基本数据类型基本上都在栈上)。包装类有:Character,Byte,Boolean,Integer,Float,Double等。
系统错误,一般可以这样来用:System.out.print("System Error");System.exit(-1);
5、排序的算法居多无比,那么排序怎么排呢?
6、三目运算符?
return year > date.year ? 1
:year < date.year ? -1
:month > date.month ? 1
:month < date.month ? -1
:day > date.day ? 1
:day < date.day ? -1 : 0;
7、数组作为返回值的理解?
返回的也是一个数组的引用,这个引用在栈空间。栈空间的这个应用指向了堆中的数组。返回数组,其实质就是返回了一个引用。
8、编程小练习:环形手牵手,数3退出,最后剩下的是谁?数3退
留在代码分析中。
9、