iteye_5102 2010-11-29 17:26
浏览 221
已采纳

一个关于static方法的问题

比如
[code="java"]public class Test {
public static void testStatic() {}
}[/code]
某类中出现这个语句

Test.testStatic()

请问这个方法什么时候加载到内存中的.Test类有实例化吗?
如果testStatic()方法没有加static修饰.这个语句为什么错误

再就是给我讲讲他的加载及回收的流程和时机
谢谢

  • 写回答

2条回答 默认 最新

  • beneo 2010-11-29 17:55
    关注

    [quote]请问这个方法什么时候加载到内存中的.Test类有实例化吗?[/quote]
    这个方法在这个类被家在到classloader里面去的时候,Test你没有实例化,就没有实例化了

    [code="java"]如果testStatic()方法没有加static修饰.这个语句为什么错误[/code]
    我还真没看出来这个语法有什么错误,如果你是说
    [quote]
    Test.testStatic()
    [/quote]
    调用错误,那是因为,Test需要实例化

    [quote]再就是给我讲讲他的加载及回收的流程和时机[/quote]
    我能力有限,以下是我的理解
    class可以分为,load - link - init三个步骤,load就是装载这个class,当需要这个类的时候,就通过classloader装载了,然后是link,进行一些语法差错,校验等,最后是类的初始化。static method应该是在load - link - init后才能是用的。

    回收机制的话,你这个类被classloader加载以后,一般是不会回收的,除非你得classloder被回收。如果这个类被回收了,那么static method也会被回收。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?