“参数类型”两侧的尖括号中=&引用;java中的运算符

“参数类型”两侧的尖括号中=&引用;java中的运算符,java,variables,syntax,declaration,instantiation,Java,Variables,Syntax,Declaration,Instantiation,我最近开始学习java。我偶然发现了一种变量创建语法。 假设我必须创建一个HashMap实例,其键值对为character到integer HashMap<Character,Integer> map=new HashMap<Character,Integer>(); HashMap<Character,Integer> map=new HashMap<>(); HashMap map=newhashmap(); HashMap=newHashM

我最近开始学习java。我偶然发现了一种变量创建语法。 假设我必须创建一个HashMap实例,其键值对为character到integer

HashMap<Character,Integer> map=new HashMap<Character,Integer>();
HashMap<Character,Integer> map=new HashMap<>();
HashMap map=newhashmap();
HashMap=newHashMap();

这两者之间的区别是什么?

它们在功能上是相同的。右侧的空
基本上意味着它与左侧的相同(
HashMap
)。这是一种速记,所以你不必在两面写同样的字


这称为a,是在Java 7中引入的。

在功能上,它们是相同的。在旧版本的Java中,您必须重复右边部分的类型,但不再重复了。这是否回答了您的问题?第二个变体是编译器提供的语法糖。结果字节码是相同的。