autoboxing相关内容

在Java中应该避免自动装箱吗?

在某些情况下,方法需要原始类型为 double 的类型,并且您将 Double 对象作为参数传递. 由于编译器将打开的对象拆箱,这会增加内存使用率还是降低性能? 解决方案 这是Java Notes在自动装箱: 首选原始类型 在不需要两个对象的地方使用原始类型原因. 原始类型可能比相应的包装器快很多类型,并且永远不会变慢. 包装器的不变性(创建后不能更改)类型可能使 ..
发布时间:2021-05-18 20:48:20 Java开发

这与自动装箱相比真的扩大了吗?

我在有关另一个问题的答案中看到了这一点,其中提到了Java规范的缺点: 还有更多缺点,这是一个微妙的话题.检查此: > 公共类methodOverloading {public static void hello(Integer x){System.out.println("Integer");}公共静态void hello(long x){System.out.println("lon ..
发布时间:2021-05-18 20:47:18 Java开发

Object.intValue()的奇怪行为

我正在为一个问题而苦苦挣扎,我不明白为什么它不起作用.如何通过 double obj 传递变量并将其转换为 int ? 为什么它不能在顶部代码段中起作用,而在行下方的底部代码段中起作用? 唯一的区别似乎是添加了一个额外的变量,该变量也被键入为 double ? //使用助手将double转换为int//这不起作用-收到错误消息//无法在原始类型double上调用intValue()dou ..
发布时间:2021-05-18 20:45:56 Java开发

Java允许将字节分配给java.lang.Short,但不允许分配给java.lang.Integer

最终字节b = 12;短s = b;整数i = b; 对于Short,程序可以很好地进行编译,但对于Integer,则编译失败,并显示“不兼容类型"消息. 我很难理解这种行为.对于这种特定情况,我找不到任何东西. 解决方案 我试图用更广泛的分配上下文来复制它: 最终字节b = 12;字节b2 = b;字符c = b;//仅当b不是最终值时才出错字符c2 = b;//仅当b不是最 ..
发布时间:2021-05-18 19:14:21 Java开发

Java中的字符串串联和自动装箱

当您将字符串与基本类型(例如int)连接时,会先自动装箱该值. 例如. 字符串字符串=“四" + 4; 如何在 Java 中将值转换为字符串? 解决方案 要查看Java编译器生成的内容,使用 javap -c 显示生成的实际字节码总是很有用的: 例如以下Java代码: 字符串s1 =“四" + 4;int i = 4;字符串s2 =“四" + i; 将产生以下字节码 ..
发布时间:2021-04-23 20:31:16 Java开发

自动装箱/拆箱在Java中如何工作?

自JDK 5.0起,在Java中引入了自动装箱/拆箱.这个技巧很简单而且很有帮助,但是当我开始测试包装器类和原始类型之间的不同转换时,我真的很困惑自动装箱的概念在Java中是如何工作的.例如: 拳击 int intValue = 0; Integer intObject = intValue; byte byteValue = 0; intObject = byteValue; // ..
发布时间:2021-02-09 21:13:31 Java开发

扩展和装箱Java原语

对Java原语进行野生和装箱. 我知道不可能将包装器类从一个扩展到另一个,因为它们不是来自同一继承树.为什么无法将原语扩展为另一种原语类型并自动装箱已扩展的原语? 鉴于可以将byte参数传递给需要int的方法,为什么不能将以下示例中的字节扩展为int然后装箱为Integer? class ScjpTest{ static void goInteger(Integer x) ..
发布时间:2020-06-26 23:18:53 Java开发

如何使用axis2-wsdl2code-maven-plugin设置-Euwc参数?

我们正在使用axis2来生成Web服务客户端,(我对此表示遗憾!).使用axis2命令行工具,您可以传递-Euwc开关以将int包装为Integer,将布尔包装为Boolean,等等在生成的源中.这是一种告诉axis2对于某些int或boolean值在模式中可为 OK 的方法. 我的问题是,如何使用Maven通过POM或其他方式设置此参数,以使生成的源实现相同的行为?我的stackoverf ..
发布时间:2020-05-07 20:57:27 其他开发

Kotlin盒装Int不一样

请帮助我理解kotlin文档中的这段代码:- val a: Int = 10000 print(a === a) // Prints 'true' val boxedA: Int? = a val anotherBoxedA: Int? = a print(boxedA === anotherBoxedA) // !!!Prints 'false'!!! 现在,我了解到首先是int a ..
发布时间:2020-04-26 11:54:36 其他开发

原始流与对象流和发生的实际装箱

所以我知道你可以有对象流,即 Stream 和专家原始流,例如 IntStream , DoubleStream 等。后者的一个好处是避免自动装箱。 另外,如果我们以 IntStream 为例,它有专门的操作,例如过滤器接受 IntPredicate 。 我想知道我是否有 IntStream vs a Stream 此时您正在保存拳击,例如 ints ..
发布时间:2019-06-14 18:51:25 Java开发

在IntelliJ IDEA中禁用Java的自动装箱

有没有办法在IntelliJ IDEA中禁用Java 5和6的自动装箱,以免开发人员在IDE中使用此功能? 解决方案 我认为你不能在保持目标编译版本时完全禁用自动装箱 - 这是特定Java版本的一个特性。 您在可以在IntelliJ中执行的操作是将自动装箱的检查级别更改为“错误”。为此: 转到设置>检查,然后在搜索栏中输入“拳击”。 点击“自动装箱”。 将严重性设置为“错误 ..
发布时间:2019-01-02 22:16:32 Java开发

为什么我不能使用Comparator对基元进行排序?

由于Java 5具有自动装箱功能,为什么我不能使用Comparator对原语进行排序? int 不会被包装到整数? 解决方案 Arrays.sort(..)具有用于排序原始数组的专用重载。 如果您需要除标准排序规则之外的任何特殊排序规则,我担心您必须使用自动装箱。除此之外,您必须将数组转换为 Integer [] ,因为 int [] 不是autoboxed。 如果你不是在谈论 ..
发布时间:2018-12-29 21:19:15 Java开发

arraylist与数组中原始类型的包装

在“Core java 1”中,我已阅读 注意:ArrayList的效率远低于 [] array 因为每个值都是单独的 包装在一个对象中。当 方便比 效率更重要时,你会 只想将这个结构用于 小集合。 但是在我的软件中,由于一些要求,我已经使用了Arraylist而不是普通的数组,尽管“该软件应该具有高性能,并且在我阅读了引用的文本之后我开始使用恐慌!”我可以更改的一件事是 ..
发布时间:2018-12-29 20:07:13 Java开发