cc06208 2015-10-15 01:07 采纳率: 0%
浏览 9473

Java中静态方法在内存的位置?

最近在复习JAVA的内存知识。静态变量是加载在方法区的,内存分配即在方法区,当创建类的时候堆里有静态变量的指向地址,然后栈内的对象可以通过堆内地址找到该静态变量,为大家共用。
那静态方法呢?也是在方法区中分配内存吗?是随着类的加载而初始化的吗?但是我测试的如下运行代码,却并没有运行此静态方法。
package com.learn.java.cc;

class Static1{

static void sys1(){
    System.out.println("hello!");
}

}

public class StaticDemo {
public static void main(String[] args){
Static1 s = new Static1();
}

}
求解?
原因:感谢各位的回答,在类中还有一个叫做静态代码块和构造代码块(即没有静态修饰的只被{}的代码),创建对象的时候会默认先加载静态代码块和构造代码块,这里的print会被打印出来,然后加载构造方法,而本类中的静态方法只是在调用的时候才被使用。
package com.learn.java.cc;

class Static1{
{
System.out.println("hello2!");
}
static{
System.out.println("hello1!");
}

static void sys1(){
    System.out.println("hello3!");
}

}

public class StaticDemo {
public static void main(String[] args){
Static1 s = new Static1();
}

}

结果:
hello1!
hello2!

  • 写回答

6条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?