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

这两个java变量声明之间有什么区别?

谷梁嘉运
2023-03-14
问题内容

public class SomeClass {
private HashSet contents = new HashSet ();
private Set contents2 = new HashSet ();
}


有什么不同?最终它们都是HashSet不是吗?第二个对我来说似乎是错误的,但是我看到它经常被使用,接受和工作。


问题答案:

Set是一个接口,并且HashSet是实现该Set接口的类。

将变量声明为类型HashSet意味着不得使用的其他实现Set。如果您需要的特定功能,则可能需要这样做HashSet

如果不需要任何特定功能HashSet,最好将变量声明为type
Set。这使得确切的实现方式可以在以后进行更改。您可能会发现,对于正在使用的数据,不同的实现效果更好。通过使用界面,您可以在以后根据需要进行更改。

您可以在此处看到更多详细信息:什么时候应该在Java中使用接口?



 类似资料:
  • 问题内容: 在阅读有关Java的书时,我看到了一个这样编写的示例。我想知道我可以在main方法之外声明变量吗?在main方法外部和内部声明变量之间有什么区别?“静态”在这里的作用是什么?请有人给我解释一下吗?我是Java新手。 最好的祝福。 问题答案: 1)内部与外部: 如果 在 方法 内部 声明对象,则该对象仅在该方法中可见。基本上,如果在其周围放置方括号,则只能从这些方括号内看到/访问它。 如

  • 人们似乎在说malloc在使用数组时有多棒,当你不知道一个数组在编译时有多少元素时,你可以使用它(?)。没有malloc你就不能这么做吗?例如,如果我们知道一个字符串的最大长度为10,那么下面的结果是否足够接近同一事物?。。。除了能够释放内存之外。 和

  • 问题内容: 两者的含义使我难以理解。 问题答案: 甲声明引入的标识符和描述了它的类型,无论是类型,对象,或功能。声明是编译器需要接受对该标识符的引用的内容。这些是声明: 甲定义实际实例化/器具该标识符。这是什么样的连接器需要以链接引用这些实体。这些是与上述声明相对应的定义: 可以使用定义代替声明。 可以根据需要多次声明标识符。因此,以下内容在C和C ++中是合法的: 但是,必须定义一次。如果忘记定

  • 问题内容: 我无法理解以下文本…这是否意味着空的构造函数?为什么拥有两个不同的版本很重要? https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html 在Java虚拟机级别,每个构造函数(第2.12节)都作为具有特殊名称的实例初始化方法出现。该名称由编译器提供。因为该名称不是有效的标识符,所以不能直接用Java编程语言编写的程序中使

  • 问题内容: 请帮助我理解常量变量和Java变量之间的区别。我对此有些困惑。 问题答案: 常量 是概念,是变量的属性。 是用于声明常量变量的java关键字。 正如其他人所指出的那样,从语义/语言的观点来看, 常量变量 的表达是矛盾的,因此,我们可以争论其正确性。 引用规范,无论如何,我们可以阅读 原始类型的最终变量,并使用编译时常数表达式(第15.28节)进行了初始化,称为 常量变量 。 因此,我想

  • 在此处输入图像描述 声明可变对象和使用new关键字创建对象之间有什么区别?