首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java加载方式、初始化、执行方式

3由用户指定加载器。如果需要在当前路径以外寻找,则只能采用第3种方式。即第3种方式加载与当前分属不同命名空间。...1是静态加载、2、3是动态加载 异常(exception) 静态加载时候如果在运行环境中找不到要初始化,抛出是NoClassDefFoundError,它在JAVA异常体系中是一个Error;...动态态加载时候如果在运行环境中找不到要初始化,抛出是ClassNotFoundException,它在JAVA异常体系中是一个checked异常。...从JVM角度看,我们使用关键字new创建一个时候,这个可以没有被加载。但是使用Class对象newInstance()方法时候,就必须保证:1.这个已经加载;2.这个已经连接了。...,父也会初始化 6 虚拟机启动时被标明是启动java Test),直接用java.exe运行某个; 程序执行结束几种方式: 1 system.exit(); 2 正常执行完毕; 3

1.2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java 机制(4)---- 字节码和方法执行

    局部变量表 操作数栈 动态链接 方法返回地址 字节码 前言 ​ 大家好,不知不觉已经到 9 月份了,本篇文章是 Java 机制最后一篇,我们来一起探讨一下关于 Java 字节码和方法调用。...在开始之前我们先回顾一下在之前讲过内容,在 Java 机制(3)---- 文件结构 中我们解析了已经编译好 .class 文件内容结构。...方法执行 从上面的内容中我们已经知道 Java 中方法中代码经过编译器编译后会作为字节码储存在 method_info 中额外属性 Code 表中,也就是说我们写 Java 代码在虚拟机执行时候是执行一行行字节码...好了,到这里我们就将 Java 机制介绍完了,这个系列从反射开始、到加载过程、再到文件结构、最后是虚拟机字节码和指令执行模型,希望这一系列对你理解虚拟机中机制会有所帮助。...好了,到这里我们就将 Java 机制介绍完了,这个系列从反射开始、到加载过程、再到文件结构、最后是虚拟机字节码和指令执行模型,希望这一系列对你理解虚拟机中机制会有所帮助。

    52920

    Java 虚拟机原理】Java 加载初始化细节 ( 只使用常量时加载不会执行到 ‘初始化‘ 阶段 )

    文章目录 一、加载初始化时机 二、常量加载示例 三、数组加载示例 一、加载初始化时机 ---- 加载时机 : Java 程序执行时 , 并不是一开始将所有的字节码文件都加载到内存中 , 而是用到时才进行加载...main 函数 , 会默认自动加载 ; 调用子类 , 如果之前没有加载过父 , 则 自动加载父 ; 访问 静态变量 有些加载操作 , 不需要执行 加载 -> 连接 ( 验证 , 准备..., 解析 ) -> 初始化 这个完整流程 ; 如 : 如果是 public final static 修饰常量值 , 在编译阶段 , 就会将该值放到常量池中 ; 在加载过程中 , 只要执行到...加载 -> 连接 ( 验证 , 准备 , 解析 ) 阶段 , 就可以完成常量池初始化 , 即使没有执行 初始化 这个步骤 , 也不影响使用常量值 ; 在 连接 准备 阶段 , 为 普通 ...: 上述 Student 静态代码块 没有被执行 , 说明 加载 流程中 , " 初始化 " 步骤 , 没有被执行 ; 找到 Student.class 字节码文件 , 然后使用 javap

    3.6K20

    javaapi_javaAPI

    ,它无法用long来表达时,就可以用BigInteger add() 加 subtract() 减 multiply() 乘 divide() 除 mod() 取余 包装 Ø JDK提供了对所有数据类型包装...()创建时间对象代表当前系统时间 需要使用DateFormat来进行格式化,才能显示想符合习惯格式 Calendar 使用该类对时间进行操作比较方便 通过常量来表示时间各种值,如一年中某一天,一个月某一天等...将对应常量作为形参来调用相应get、add、set方法来操作对象 计时器 Timer 可以用来在在指定时间或者在指定延迟之后执行一个任务 schedule(TimerTask task, Date...虚拟机 System.gc()垃圾回收,Java对象成为垃圾之后不会马上回收掉,如果想立即回收可以调用System.gc() System.getProperties()方法获得系统属性 Runtime...表示系统运行时状态 exec方法执行命令 算数 Math 该类提供了一些数学运算方法 PI 圆周率 abs() 绝对值 ceil() 向上取整 floor() 向下取整 round() 得到最接近整数

    1K20

    Java加载与执行

    操作系统执行原理都不同。 SUN团队他们想了一个办法,他们让java程序运行在一台虚拟计算机当中,这个虚拟计算机叫做Java虚拟机,简称JVM。Java虚拟机再和底层操作系统打交道。 ?...Java语言运行过程中产生垃圾是自动回收,不需要程序员关心。 6. 安全性 3. Java加载与执行 Java程序运行包括两个非常重要阶段 编译阶段 运行阶段 1....字节码文件/class文件是最终要执行文件,所以说class文件生成之后,java源文件删除并不会影响java程序执行。...java 名 例如: 硬盘上有一个A.class,那么就这样用:java A 硬盘上有一个B.class,那么就这样用: java B 硬盘上有一个C.class,那么就这样用:java C 千万要注意...会启动加载器classLoader ClassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM当中。

    54210

    JAVA 虚拟机加载机制和字节码执行引擎

    文件结构 无关性基石 java有一个口号叫做一次编写,到处运行。实现这个口号就是可以运行在不同平台上虚拟机和与平台无关字节码。...二 加载机制 虚拟机把描述数据从class文件加载到内存,并对数据进行校验,转换分析和初始化,最终形成可以被虚拟节直接使用JAVA类型,这就是虚拟机加载机制。...初始化 初始化是加载最后一个阶段,将执行构造器()方法,注意这里方法不是构造方法。该方法将会显式调用父构造器,接下来按照java语句顺序为变量和静态语句块赋值。...加载器 对于任意一个,都需要由加载它加载器和这个本身一同确立其在java虚拟机中唯一性。...C语言等编译型语言会由单独执行引擎做这些工作,而Java语言等解释型语言语法抽象树由jvm完成。jvm可以选择通过解释器来解释字节码执行还是通过优化器生成机器代码来执行

    90310

    java

    java中用来描述具有共同性质一组事物自定义复合数据类型—。 复合数据类型本质—【根据自己需求制作自己需要数据类型模式/规则/公式】 4.2.如何编写一个Java?...通过class关键字来创建一个 {}—-体 例如: public class Xue{ //public---访问限制修饰符【对访问权限】 //class---创建 关键字...{ } 4.3.Java中可以编写什么?...基本属性——变量 基本功能—–方法 变量–是用来在中描述事物基本属性 方法–是用来在中描述事物基本功能 4.4.Java中变量分类及其基本特征?...在同一个中成员变量与某一个方法中局部变量名称相同,这是我们在方法中使用这个成员变量时候,得到结果是局部变量值,此时就是方法中局部变量将中成员变量值隐藏了,这就是成员变量隐藏。

    1.2K30

    java calendar_Java Calendar

    Calendar概述 /*** java.util.Calendar:是一个日历 * Calendar是一个抽象,里边提供了很多操作日历字段方法 * 如:YEAR、 MONTH、 DAY OF...MONTH、HOUR * * Calendar无法直接创建对象使用,里边有一个静态方法叫 getInstance(), * getInstance()方法返回了 Calendar子类对象 * static...String[] args) { Calendar calendar=Calendar.getInstance(); System.out.println(calendar); } } Calender常用成员方法...public abstract void add(int field, intamount)//根据日历规则,为给定日历字段添加或减去指定时间量。...成员方法参数:intfield:日历字段,可以使用 Calendar静态成员变量获取public static fin 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    1.6K10

    Android Studio无法执行Javamain方法问题及解决方法

    Android Studio升级到哦最新版3.6.1后,新建了个项目,发现无法执行Javamain方法。...根据配置字面意思理解,这个设置意思是不委托gradle进行构建。现实效果也是加了这行配置之后就是jvm执行Javamain方法了,而不是gradle当做task来执行了。...知识点补充,参考方法 Android Studio 3.0 无法运行Java代码main() 方法解决方案 Android Studio 升级到3.0 以后发现 运行Java 代码中main()方法时候...grandle 就会报错问题 解决方法 : 打开工程目录下下图标注文件: ?...总结 到此这篇关于Android Studio无法执行Java main方法问题文章就介绍到这了,更多相关android studio无法执行java main方法内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

    3.3K10

    Java常见

    Java常见 ▐ Object (1)基本概念 java.lang.ObjectJava层次结构,所有都是该类直接或间接子类。...String toString() - 用于返回调用对象字符串形式。 - 该方法默认返回字符串:包名.名@哈希码十六进制形式。 - 为了返回更有意义数据,则需要重写该方法。...- 使用print或println打印引用时或字符串连接引用时都会自动调用toString 图例: ▐ 包装 (1)基本概念 java.lang.Integer内部采用int类型变量作为成员变量进行包装...- 其中参数是接口类型,因此实参需要传递实现对象,而String就实现了该接口 boolean endsWith(String suffix) - 判断当前字符串是否以参数指定内容为结尾...Tip String方法有很多这次没有说完,下次一次性帮大家更新完;希望能帮到大家!

    12610

    java加载

    加载机制 JVM加载机制分为五个部分: 加载,验证,准备,解析,初始化 加载 加载是加载过程中一个阶段,会在内存中生成一个代表这个java.lang.Class 对象,作为方法区这个各种数据入口...初始化 初始化阶段是加载最后一个阶段,前面的加载阶段之后,除了在加载阶段可以自定义加载器之外,其他操作都有JVM主导 到了初始化阶段,才开始真正执行中定义java程序代码 初始化阶段是 执行构造器...方法过程 方法是由编译器自动收集变量赋值操作,静态语句块中语句 合并而成 虚拟机会保证 子方法执行之前它方法已经执行完毕...如果一个中没有对静态变量赋值,也没有静态语句快,则不会生成方法 以下情况不会执行初始化: 通过子类引用父静态字段,只会触发父初始化,而不会触发子类初始化。...扩展加载器(Extension ClassLoader) 负责加载 JAVA_HOME\lib\ext 目录中,或通过 java.ext.dirs 系统变量指定路径中 库。

    85220

    java 加载

    6.通过java.exe调用方法时 加载器 根加载器 扩展加载器 系统加载 其他加载方式都是属于被动加载...System.out.print(x); x = 1000; } private static int x = 10; } 变量赋值顺序和静态代码块执行代码,编译器收集顺序...父静态变量总能优先与子类赋值 静态代码块保证了在同一时间只会被执行一次 public class Singleton{ // 1 private static int x = 0;...加载器之间严格遵守父委托机制 Bootsrap 根加载器 主要负责核心加载,例如java.lang 包加载 扩展加载器 扩展加载器是根加载器,主要用于加载java_home 下jre...\lib\ext里面的库,java实现,可以将自己实现打包放到下面加载.

    75910
    领券