Java类加载器加载类顺序

简介:
数组就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号成为下标。组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。 ——这是百度对数组的定义
  首先,数组的定义:
  元素类型[] 数组名 = 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/
相关文章
|
1天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
22 3
|
6天前
|
Java 编译器
Java Character 类
4月更文挑战第13天
|
7天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
10天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
12 0
|
10天前
|
Java
Java 15 神秘登场:隐藏类解析未知领域
Java 15 神秘登场:隐藏类解析未知领域
15 0
|
12天前
|
安全 Java
append在Java中是哪个类下的方法
append在Java中是哪个类下的方法
21 9
|
13天前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
30 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
|
13天前
|
存储 安全 Java
java多线程之原子操作类
java多线程之原子操作类
|
15天前
|
Java
Java中的异常类总结
Java中的异常类总结
|
15天前
|
Java
Java中的多线程实现:使用Thread类与Runnable接口
【4月更文挑战第8天】本文将详细介绍Java中实现多线程的两种方法:使用Thread类和实现Runnable接口。我们将通过实例代码展示如何创建和管理线程,以及如何处理线程同步问题。最后,我们将比较这两种方法的优缺点,以帮助读者在实际开发中选择合适的多线程实现方式。
21 4

热门文章

最新文章