java 类的方法是不是和静态变量一样只被加载一次放在栈中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 类的方法是不是和静态变量一样只被加载一次放在栈中相关的知识,希望对你有一定的参考价值。
参考技术A 方法和静态变量当没有被调用的时候都是分配在内存中的数据区,当被调用的时候就会被加载到堆内存中。 参考技术B 静态变量已经在静态内存中有空间了,非静态方法只要不实例化在内存中是没空间的,得new本回答被提问者采纳Java代码执行顺序
代码执行顺序
当父类与子类都有静态代码块,构造方法和构造代码块的时候,程序的执行顺序如下
父类静态代码块->子类静态代码块->父类构造方法->父类构造代码块码块->子类构造方法->子类构造代码块
(先有父亲,后有孩子)
如果是多层的继承关系,就优先执行高层的父类,再递减下来
因为静态代码块在jvm虚拟机加载类的时候就加载,而且静态代码块只被执行一次
class fu{
{
System.out.println("这是父类构造代码块");
}
static {
System.out.println("这是父类静态代码块");
}
public fu() {
System.out.println("这是父类构造方法");
}
}
class zi extends fu{
{
System.out.println("这是子类构造代码块");
}
static {
System.out.println("这是子类静态代码块");
}
public zi() {
System.out.println("这是子类构造方法");
}
}
public class Static {
public static void main(String[] args){
zi z =new zi();
}
}
执行结果
这是父类静态代码块
这是子类静态代码块
这是父类构造代码块
这是父类构造方法
这是子类构造代码块
这是子类构造方法
以上是关于java 类的方法是不是和静态变量一样只被加载一次放在栈中的主要内容,如果未能解决你的问题,请参考以下文章