当前位置: 首页 > 面试题库 >

在Java中,为什么是数组对象?有什么具体原因吗?

郎恺
2023-03-14
问题内容

有什么理由使Java中的数组成为对象?


问题答案:

因为Java语言规范这么说
:)

在Java编程语言中,数组是对象(第4.3.1节),是动态创建的,并且可以分配给对象类型(第4.3.2节)的变量。Object类的所有方法都可以在数组上调用。

因此,与C ++不同,Java提供了真正的数组作为一流的对象:

  • 有一个length成员。
  • 有一个clone()方法可以覆盖class中同名的方法Object
  • 再加上班上的所有成员Object
  • 如果尝试超出范围访问数组,则会引发异常。
  • 在动态内存中实例化数组。


 类似资料:
  • 问题内容: 是具有所有已实现方法的抽象类。为什么是抽象的? 我得到的最常见答案是,限制的实例化。但是还有其他方法可以执行此操作,例如私有构造函数将限制实例化。 我了解他们遵循模板方法设计模式。如果某些方法是抽象的,那么即使他的业务逻辑不需要它们,用户也将最终实现所有这些方法。 但是,如果不是抽象的,用户仍然可以扩展它并覆盖require方法。 至少从“抽象”一词的字典含义来看,使用所有已实现方法的

  • 问题内容: 什么是决定不具有的接口完全通用的get方法背后的原因。 为了澄清这个问题,方法的签名是 代替 我想知道为什么(与相同)。 问题答案: 正如其他人所提到的,之类的原因不是通用的,因为你要检索的条目的键不必与你传递给的对象的类型相同;方法的规范仅要求它们相等。这从方法如何将对象作为参数(而不仅仅是与对象相同的类型)中得出。 尽管通常已经定义了许多类,以便其对象只能等于其自己的类的对象,这确

  • 问题内容: 当我尝试运行程序时,出现以下错误 请帮忙 问题答案: 从Javadoc: 如果Java虚拟机找不到声明为native的方法的适当本机语言定义,则抛出该异常。 这是与JNI相关的错误。loadJacobLibrary试图加载名为jacob-1.14.3-x86的本机库,但在java.library.path定义的路径上找不到该库。启动JVM时,应将此路径定义为系统属性。例如 在Windo

  • 在这里抛出RejectedExecutionException是否有其他原因? java.util.concurrent.RejectedExecutionException:任务java.util.concurrent.FutureTask@4194a5f0被java.util.concurrent.ThreadPoolExecutor@41a36e90拒绝[终止,池大小=0,活动线程=0,排队

  • 问题内容: Java 构造函数的文档说明: 注意:很少适合使用此构造函数。除非需要新实例,否则静态工厂通常是更好的选择。它可能会产生明显更好的时空性能。 如果是这样,为什么这个构造函数是公开的而不被弃用?是否有充分的理由使用此构造函数代替? 问题答案: Java 1.4中仅添加了它,因此似乎存在构造函数是为了向后兼容。 此票证解释了不弃用构造函数的原因: 由于该中断,API可能不推荐使用,因此,当

  • 我正在搜索文档中的contacts数组中包含特定_ID的文档。下面是结构: 它执行与$elemmatch查询相同的操作。 我可能错过了一些非常基本的东西,但如果你们能提供一些建议,我将非常感谢。