在Java中,将变量直接分配给包装类是一种好的做法吗?
在我慢慢阅读java教程的过程中,我遇到了java助手类。代码是在Java中,将变量直接分配给包装类是一种好的做法吗?,java,class,helper,Java,Class,Helper,在我慢慢阅读java教程的过程中,我遇到了java助手类。代码是 public static void main(String args[]) { char myLittleChar = 'b'; char myBigChar = Character.toUpperCase(myLittleChar); System.out.println(myBigChar); 但是,即使直接指定给帮助器类,它的工作原理也是一样的 Character c = 'a'; System.out.println(
public static void main(String args[]) {
char myLittleChar = 'b';
char myBigChar = Character.toUpperCase(myLittleChar);
System.out.println(myBigChar);
但是,即使直接指定给帮助器类,它的工作原理也是一样的
Character c = 'a';
System.out.println(c.toUpperCase(c));
同样的道理也适用于short或float
然而,我在任何教程或任何示例代码中都没有遇到过这么多,并且被声明为int
,short
等。这被认为是一种不好的做法吗?若然,原因为何
谢谢。字符将基本的两字节字符包装在对象中。这是多余的。 你可以写
char myBigChar = Character.toUpperCase('b');
因此,这是一个效率问题
顺便说一句,字符串已经是一个对象了,并且没有这种冗长性。如果我理解您的要求,那么您需要了解包装器
对象的实用程序类与它们的原始对应项
包装类有许多优点:
- 它们可以用作泛型类型
- 它们可以为空
- 它们在包装的原语值和其他静态方法上提供实用方法
- 等等
在你问题的另一面,有一个叫做装箱/拆箱的概念
当你:字符c='a'代码>,您正在将原语值'a'
自动装箱到其包装器字符
类中
如果您在该赋值后面加上如下内容:chara=c代码>,则自动将包装器的值解装箱到其原始对应项中 当您谈到Helper类时,我假设您指的是原语的包装类。使用它们本身并不坏,但您应该知道,您通过创建对象(即使您不调用显式构造函数)。因为这通常会对性能造成很大的影响,所以要尽量避免。c.toUpperCase(c)是一种不好的做法,因为它是对静态方法的调用,必须在类而不是实例上完成@Turing85我跟随的视频教程说的是Helper类
,而不是wrapper类
,因此我不知道也不确定哪个术语是正确的。表演部分是有意义的。谢谢你的善意解释。@rlm谢谢你的善意解释。我在寻找原因来理解为什么这是一种不好的做法。我想,正如图灵85所说,这是对性能的冲击。我们谈论的不是同一件事:图灵谈论的是使用“char”而不是“Character”,我谈论的是使用实例调用静态方法。。。请看下面的帖子来演示我所说的: