【问题标题】:Java - how does it load and find the right methodJava - 它如何加载并找到正确的方法
【发布时间】:2013-04-25 22:11:20
【问题描述】:

我试图了解 Java 如何选择正确的方法以及它在内部是如何工作的。

假设我有两个功能:

public void print(int i) { System.out.println("int: " + i); }

public void print(String s) { System.out.println("String: " + s); }

Java实际上是怎样的

  1. 存储所有可访问的类和方法?
  2. 确定哪种重载方法适合使用?

我知道,当我调用方法时,它会将它们放在 JVM 堆栈中,但我试图了解在那之前发生了什么。它是如何在内部存储和加载的?

谢谢!

【问题讨论】:

  • 实际上是编译器决定在这里调用哪个方法,因为重载是一个编译时特性。我不知道 Java 类的元数据的确切格式,但我相信如果你用 Bing 编辑它,你可以挖掘一些文档。
  • @dlev bing编辑它???嗯,dlev -> location -> Redmond, WA。解释一切。
  • @SotiriosDelimanolis 或者你可以从他的个人资料中读到他在微软工作。
  • 过于宽泛,无法在此回答。

标签: java jvm stack


【解决方案1】:

此类问题的答案最好在JLS(Method Invocation Expressions) 段落中搜索。在这里重写它的内容是没有用的。我还找到了对最难理解的部分的更非正式的描述 - choosing the most specific method.

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2018-07-22
    • 2013-04-05
    相关资源
    最近更新 更多