Java类加载器加载类顺序

  1. 云栖社区>
  2. seven的测试人生>
  3. 博客>
  4. 正文

Java类加载器加载类顺序

青衫无名 2017-07-03 13:50:00 浏览909
展开阅读全文
数组就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号成为下标。组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。 ——这是百度对数组的定义
  首先,数组的定义:
  元素类型[] 数组名 = 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 ClassLoader的学习
  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是可以被继承的,允许用户自己实现类加载器
  类加载器的加载顺序如图所示:



最新内容请见作者的GitHub页:http://qaseven.github.io/

网友评论

登录后评论
0/500
评论
青衫无名
+ 关注
所属团队号: seven的测试人生