导航:首页 > 源码编译 > 类加载是在编译时还是运行时

类加载是在编译时还是运行时

发布时间:2023-05-17 12:11:26

java中类的加载是在什么时候做的

楼上的负责一点好么,类加载是在编译的时候?加载一个类需要用到加载器,
你程序都没运行,jvm都没启动,哪来的加载器,你拿什么去加载一个类?
类加载的时候是运行程序时 它就加载了,至于编译,你用IDE,是你一保存,它就给编译好了。

㈡ java 类加载先后顺序

1.父类静态代码块;
2.子类静态代码块;
3.父类非静态代码块;
4.父类构造函数;
5.子类非静态代码块;
6.子类构造函数;

举例:
public class ExA {
static {
System.out.println("父类静态代码块。");
}
public ExA() {
System.out.println("父类构造函数。");
}
{
System.out.println("父类非静态代码块。");
}

public static void main(String[] args) {
new ExB();
}
}
class ExB extends ExA {
static {
System.out.println("子类静态代码块。");
}
{
System.out.println("子类非静态代码块。");
}
public ExB() {
System.out.println("子类构造函数。");
}
}
执行结果:父类静态代码块。子类静态代码块。父类非静态代码块。父类构造函数。子类非静态代码块。子类构造函数。

㈢ Java中类加载出现在哪个阶段,编译期和运行期 类加载和类装载是一样的吗

使用的类,编译/运行时都会被加载。

加载/装载没有区别,翻译的词汇选择因人而异了

运行 javac /java 时 加上 -verbose 选项就可以看到了。

㈣ 简述JAVA程序的编辑编译和运行过程

第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。

如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。

第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。

特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法<clinit>都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。

(4)类加载是在编译时还是运行时扩展阅读:

Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。

Java代码编译:是由Java源码编译器来完成;

Java字节码的执行:是由JVM执行引擎来完成

Java程序从源文件创建到程序运行要经过两大步骤:

1、源文件由编译器编译成字节码(ByteCode)

2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。

㈤ 类加载是在编译期前还是编译期进行的

应该是在编译的时候加载进来的吧,当编译到import语句就开始加载外部类了

㈥ 什么是类的加载何时加载

当程序主动使用某个类时,如果该类还未被加载到拦槐内存中,系统会通过加载,连接,初始化三个步骤来对该类进行初始化,JVM将会连续完成这三个步骤,也把这三个步骤统称为类加载或类初始化。

类加载指的是将类Class文件读入内存,并为之创建一个java.lang.Class对象,也就是说程序使用任何类时,系统都会为之建立一个java.lang.Class对象。

类是某一类对象的抽象,类是概念层次的东西,但类也是一种对象,每个类是一批具有相同特征的对象的抽象,而系统中所有类,它们实际上也是对象,都是java.lang.Class的实例。

类的加载由类加载器完成,类加载器通常由JVM提供,这些类加载器也是所有程序运行的基础,JVM提供的这些类加载器通常被称为系统类加载器,开发者也可以通过继承ClassLoader基类来创建自己的类加载器。

通过使用不同的类加载器,可以从不同来源加载类的二进制数据,通常有如下几种来源:1.从本地文件系统来加手掘载Class文件,这是大部分实例程序的类加载方式。

2从jar包中加载class文件,如JDBC编程时用到的数据库驱动类就是放在jar文件中,JVM可以从jar文件中直接加载该Class文件。

3.通过网络加载class文件。

4.把一个java源文件动态编译,并执行加载。

阅读全文

与类加载是在编译时还是运行时相关的资料

热点内容
直播要怎么推广app 浏览:76
安卓10id如何计算 浏览:601
求3的倍数python 浏览:675
江苏好服务器优质推荐云空间 浏览:139
用php做一个留言板 浏览:226
app灰色页面怎么回事 浏览:57
最长连续递减子序列python 浏览:154
电脑编译系统有哪些 浏览:914
新建的文件夹另一部手机读不出来 浏览:989
怎么把安卓app传到新iphone 浏览:37
安卓服务器如何关闭 浏览:581
linux登陆不了 浏览:553
单片机供电时出现乱码 浏览:612
解压ae要多久 浏览:51
江苏省超级服务器云主机 浏览:160
星际译王linux安装 浏览:4
导微信账单不发解压码是什么情况 浏览:96
如何手动删除安卓app 浏览:11
帝国时代2征服者解压包怎么安装 浏览:949
python抓取url 浏览:921