Java 字符和字符是一回事吗?

Java 字符和字符是一回事吗?,java,char,character,Java,Char,Character,我有一张地图。 map1=newtreemap() 我正在使用此地图存储扫描文件时遇到的唯一字符。我得到一个String并使用String.tocharray()来存储在char数组中找到的字符 如果我尝试从char数组中放入一个元素,比如说map1.put(charay[I],1),那么映射会将其解释为包装器类吗?或者是字符和字符不同。我在做一些研究,当原始数据类型不起作用(如在map中)时,您似乎会使用包装器类,但我正在做的工作会起作用吗?是的。从链接中(注意示例) 自动装箱是Java编译器

我有一张地图。
map1=newtreemap()

我正在使用此地图存储扫描文件时遇到的唯一字符。我得到一个
String
并使用
String.tocharray()
来存储在
char
数组中找到的字符

如果我尝试从char数组中放入一个元素,比如说
map1.put(charay[I],1)
,那么映射会将其解释为包装器类吗?或者是
字符
字符
不同。我在做一些研究,当原始数据类型不起作用(如在map中)时,您似乎会使用包装器类,但我正在做的工作会起作用吗?

是的。从链接中(注意示例)

自动装箱是Java编译器在原语类型与其对应的对象包装器类之间进行的自动转换。例如,将
int
转换为
Integer
,将
double
转换为
double
,等等。如果转换方向相反,则称为取消装箱

以下是自动装箱的最简单示例:

Character ch = 'a';

Character和char不一样,前者是一个类,后者是一个基元类型,尽管正如您所说,在只允许对象而不允许基元的地方,可以认为该类提供了基元类型的对象实例“包装器”表示


在代码指示必须进行从一个到另一个的转换的任何地方,java编译器(javac)将为您插入自己的代码,而不是给您一个编译器错误,这些代码将为您执行转换。这种转换称为自动装箱和自动取消装箱,相当于执行Character.valueOf(char)和Character.charValue()。此外,编译器将缓存生成的字符对象,以限制内存消耗。自动装箱就是编译器插入这个转换和缓存代码,这样你的可见代码看起来更干净,但实际上就是这样,编译器只插入了一些额外的代码。

autoboxing
Character
是primitive
char
的包装类。它提供方法并允许在数据结构中使用,如地图、列表等。它们可以与自动装箱和取消装箱互换使用。这正是我希望听到的!