数组就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号成为下标。组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。 ——这是
百度对数组的定义
首先,数组的定义:
元素类型[] 数组名 = new 元素类型[] {元素1,元素2,........} 例如int[] arr = new int[5]
public static void main(String[] args) { //定义一个可以存放3个数组的容器,注意,数组的脚标从0开始 int[] arr = new int[3]; //位数组赋值 arr[0] = 1; arr[1] = 2; arr[2] = 3; System.out.println(arr[0]); } 也可以这样写 public static void main(String[] args) { int arr[] = {1,2,3}; System.out.println(arr[0]); } |
后者直接体现了数组的值和个数。数据明确的情况下可以前面中,不明确时用后者。
public static void main(String[] args) {
int arr[] = {1,2,3};
arr = null;
System.out.println(arr[1]);
}
用数组的常见错误:
public static void main(String[] args) { int arr[] = {1,2,3}; System.out.println(arr[3]); } //ArrayIndexOutOfBoundsException:数组越界;访问数组时,访问到数组中不存在的脚标。 public static void main(String[] args) { int arr[] = {1,2,3}; arr = null; System.out.println(arr[1]); } //NullPointerException:空指针;当引用没有任何指向值为null的情况,该引用还在用于操作实体。 |
数组的操作
获取数组中德数据,通常会用到遍历
用for循环遍历数组
public static void main(String[] args) { int arr[] = { 1, 2, 3, 9, 5, 8, 6, 32, 52, 100 }; //arr.length方法获取数组的长度 for (int i = 0; i < arr.length; i++) { System.err.println(arr[i]); } } |
java是一门解释执行的语言,由开发人员编写好的java源文件先编译成字节码文件.class形式,然后由java虚拟机(JVM)解释执行,.class字节码文件本身是平台无关的,但是jvm却不是,为了实现所谓的一次编译,到处执行,sun提供了各个平台的JVM实现--也就是说jvm不是跨平台的,编译好的字节码文件被放在不同的
操作系统平台上的jvm所解释执行,这个章节主要解释一下JVM装载类的机制
1.ClassLoader是什么?
一个类如果要被JVM所调度执行,必须先把这个类加载到JVM内存里,java.lang下有个很重要的类ClassLoader,这个类主要就是用来把指定名称(指定路径下)的类加载到JVM中
2.ClassLoader的分类
主要分4类,见下图橙色部分
JVM类加载器:这个模式会加载JAVA_HOME/lib下的jar包
扩展类加载器:会加载JAVA_HOME/lib/ext下的jar包
系统类加载器:这个会去加载指定了classpath参数指定的jar文件
用户自定义类加载器:sun提供的ClassLoader是可以被继承的,允许用户自己实现类加载器
类加载器的加载顺序如图所示: