导航:首页 > 编程语言 > java静态方法的加载

java静态方法的加载

发布时间:2023-02-14 21:33:05

java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中,还是当被调用的时候才进行加载呢

当类第一次被调用时加载(静态方法,静态属性的加载就是类加载) 。

1、类中的静态属性会被加入到类对象(也可以叫做类的模板,是类的描述) 的构造器中,静态方法也会被加入到类对象中。

2、当第一次使用类时,JVM会通过类加载器,加载类对象,从而初始化静态属性,并装入类的方法,包括静态方法和实例方法(方法不会被调用,只是加载,从这个意义上来说,静态方法和实例方法是类似的)。

3、当创建类的实例对象时,JVM会调用类的构造器,从而初始化类的属性。

(1)java静态方法的加载扩展阅读:

类(包括静态方法、属性)加载过程:

一、加载。

根据一个类的全限定名(如cn.e.h.test.HelloWorld.class)来读取此类的二进制字节流到JVM内部。

将字节流所代表的静态存储结构转换为方法区的运行时数据结构(hotspot选择将Class对象存储在方法区中,Java虚拟机规范并没有明确要求一定要存储在方法区或堆区中)转换为一个与目标类型对应的java.lang.Class对象。

二、连接。

1、验证。

验证阶段主要包括四个检验过程:文件格式验证、元数据验证、字节码验证和符号引用验证;

2、准备。

为类中的所有静态变量分配内存空间,并为其设置一个初始值(由于还没有产生对象,实例变量将不再此操作范围内);

3、解析。

将常量池中所有的符号引用转为直接引用(得到类或者字段、方法在内存中的指针或者偏移量,以便直接调用该方法)。这个阶段可以在初始化之后再执行。

Ⅱ JAVA中使用静态方法

编程时我们心里一定要清楚静态方法和类的非静态方法方法的区别:
最根本区别从编译角度来说吧:
1)静态(static)方法是编译时直接加载加载到内存中(离cpu最近的一块内存区域也称为堆栈),比如程序的public static main(args []){}方法,你能实例话吗?
静态方法不能被实例化,也不允许被实例化!
现在很多Java集成工具边写边编译的
因此 你可以通过“类名”+“.”+“静态方法的名()”来调用
2)非静态方法(类的非静态方法)通过关键字 “new” 字来实例化一个对象(object),这个对象放在 内存的另一块区域 堆(heap)中。
也就是说编译时,非静态方法必须先实例化类的一个对象,通过“对象名”+“非静态方法名()”来调用;
public class Student
{
private String name;
/************************************************************
*下面两个方法是类的非静态方法封装 属性name,看一下在 main()
*如何调用
************************************************************/
public set(string init_name)
{
this.name = init_name;
}
publc String get()
{
return this.name;
}
//构造函数
public Student(){}
public Student(String init_name)
{
this.name = init_name;
}

//下面是一个静态方法,看一下它在main()中如何调用
public static void PrintClassName()
{
System.out.print("该类的名字:Student");
}
}
//MainClass类
pubic class MainClass
{
public static void main(args[])
{
//先调用静态方法,不需要实例化对象
Student.PrintClassName();
//现在调用非静态方法,一定要实例化对象
Student stu1 = new Student();
stu1.set("Join");
String stu1_name = stu1.get();
}

}

Ⅲ java普通方法和静态方法的加载(注意是加载)时机相同吗存储方法耗费内存空间吗

静态方法放在Date数据区 可以直接调用 和STATIC 变量一样的 在内存开始加载的时候就有空间了 普通方法是 程序运行到的时候才开始调用直接用

Ⅳ 在Java中加载配置文件,使用静态加载和构造方法加载有什么区别

构造方法是只有你在new对象的时候才会执行
静态语句块和静态方法在类加载到内存的时候就已经执行了
静态加载配置文件,在你启动类似tomcat服务的时候就已经执行了

阅读全文

与java静态方法的加载相关的资料

热点内容
诗词入门PDF 浏览:355
毒app是什么单位 浏览:58
如何自己编译android系统 浏览:786
phpmysqlpdomysqli 浏览:802
php修改sql语句 浏览:714
android有道api 浏览:381
挠耳营水表用的什么app 浏览:49
战锤40kpdf 浏览:377
java判断字符串是汉字 浏览:464
2017初级教材pdf 浏览:453
松下空调压缩机品牌 浏览:819
python复选框 浏览:748
反诈中心app是什么时候出来的 浏览:588
魔兽世界需要什么服务器地址 浏览:191
啥是单片机休眠 浏览:106
什么音乐app最好 浏览:929
牙膏自制解压神器 浏览:329
卸载linuxwps 浏览:228
threadjavarunnable 浏览:360
一元线性回归计算法 浏览:950