相关疑难解决方法(0)

Java是"通过引用传递"还是"传递价值"?

我一直认为Java是传递引用的.

但是,我看过一些博客文章(例如,这个博客)声称它不是.

我不认为我理解他们所做的区别.

解释是什么?

java methods parameter-passing pass-by-reference pass-by-value

6270
推荐指数
80
解决办法
189万
查看次数

Java强制转换操作符如何工作?

我试图在Java中调试涉及ClassCastException的问题.为了解决这个问题,我需要知道当我从Object转换为特定类型时会发生什么.任何人都可以向我解释Java转换运算符如何在Java级别和JVM级别上运行?

java jvm casting

11
推荐指数
2
解决办法
2万
查看次数

由javac完成的任何类型的转换?

根据我的理解,如果在编译期间可以进行类型检查,则类型转换将在编译期间完成,并且不会产生任何运行时开销.

例如

public Child getChild() {
  Parent o = new Child();
  return (Child) o;
}
Run Code Online (Sandbox Code Playgroud)

类型转换是在编译期间还是在运行时完成的?

是否有任何一般规则来决定是否由javac编译器或VM完成类型转换?

java casting javac

9
推荐指数
1
解决办法
473
查看次数

Java 铸造实现

我知道如何在 Java 中使用强制转换,但有一个更具体的问题;你能向我解释一下铸造是如何工作的吗(在内存中)?

  • 在向上和向下转换时变量类型如何改变?

  • JVM 如何知道将此方法发送到此对象是安全的?

先感谢您。

java jvm casting

5
推荐指数
1
解决办法
3758
查看次数

这些参考文献是否真的相同?

假设我们有以下代码片段:

Cat cat = new Cat(); // The Cat class extends Animal

ArrayList<Animal> animalList = new ArrayList<>();
animalList.add(cat);
Run Code Online (Sandbox Code Playgroud)
  1. catCat指向类型对象的类型的引用Cat

  2. animalList.get(0)是类型的引用Animal,指向与cat引用相同的对象.

  3. cat == animalList.get(0)将评估,true因为他们都指向同一个对象.

但是,一个引用是类型Cat而另一个是类型Animal(列表中的位置0),所以我错误地说引用不完全相等,即使它们指向相同的内存位置?我是否过多地研究术语?

java

3
推荐指数
1
解决办法
83
查看次数