boxing相关内容

在Java 8中,是否有ByteStream类?

Java 8为 double , int Stream 专精c $ c>和 long : DoubleStream , IntStream 和分别为 LongStream 。但是,我在 byte 的等价物/stream/BaseStream.html\">文档。 Java 8是否提供 ByteStream 类? 解决方案 不,它不存在。实际上,它没有明确地实现,以免混乱使用大 ..
发布时间:2018-11-27 12:21:08 Java开发

整数与int比较

我是 java 的新手。我现在正在学习 java 中的非原始Integer类型。 我知道以下比较无效并引发编译错误 - String str =“c”; Char chr ='c'; if(str == chr)返回true; 上面的代码片段给了我 - “Test.java:lineNumber:无与伦比的类型:java.lang .String和char“错误 ..
发布时间:2018-08-06 20:54:51 Java开发

扩展java Integer缓存

一般建议使用 Integer.valueOf(int)而不是 new Integer(int)因为缓存。 在JDK 5+中,您应该使用 valueOf 因为整数现在缓存整数 -128 和 127 并且可以每次都返回相同的 Integer(0)对象,而不是在全新的相同 Integer 对象。 如何扩展范围? 解决方案 你可以使用java.lang.Integer.IntegerC ..
发布时间:2018-08-06 20:36:50 Java开发

整数自动拆箱和自动装箱会产生性能问题吗?

我们目前正在使用 x ++; 进行一些迭代和其他操作,其中 x 是整数而不是 int 。 在我们系统的某些用户操作中可能会重复操作,但没有太多复杂或像数学应用程序那样繁多,每个用户事务最多可达10000次.. 这种拆箱和后来的装箱是否会影响我们的性能毫秒? 解决方案 http://download.oracle.com/ javase / 1.5.0 / docs / guid ..
发布时间:2018-08-06 20:35:36 Java开发

整数缓存有多大?

Class Integer 具有缓存,缓存 Integer 值。因此,如果我使用方法 valueOf 或收件箱,新值将不会被实例化,而是从缓存中获取。 我知道默认缓存大小是 127 ,但由于VM设置可以扩展。我的问题是:在这些设置中缓存大小的默认值有多大,我可以操纵这个值吗?这个值取决于我使用的是哪个VM(32或64位)? 我现在正在调优遗留代码,可能需要从int转换到整数。 澄 ..
发布时间:2018-08-06 20:19:10 Java开发

与泛型函数的拳击错误

如果我注释掉我的静态类,这个编译好。不过,我想有静态类工作,所以我可以使用主注释掉的第一行。我的错误是 错误CS0314:类型'T'不能用作通用类型或方法'DateTest中的类型参数'T' 。范围'。没有从'T'到'System.IComparable'的装箱转换或类型参数转换。 我的源代码是 using System; 使用System.Collections.Gener ..
发布时间:2018-04-23 14:42:18 C#/.NET

当通过带有接口约束的泛型参数传递时,是否将值类型装箱?

(作为研究回答这个问题的结果,我(认为我有!)确定答案是“不”。但是,我必须在几个不同的地方查找才能找出答案,所以我认为这个问题仍然有价值,但如果社群投票结束,我不会受到摧残。) 例如: void f (T val)其中T:IComparable { val.CompareTo(null) ; } void g() { f(4); 是 4 ..
发布时间:2018-04-21 20:35:16 C#/.NET

与泛型拳击和拆箱

(例如)创建集合的.NET 1.0方法是: ArrayList list = new ArrayList() ; list.Add(i); / *拳击* / int j =(int)list [0]; / *拆箱* / 使用这个的惩罚是由于拳击造成的类型安全和性能的缺失并且取消装箱。 .NET 2.0的方式是使用泛型: 列表与LT; INT&G ..
发布时间:2018-04-21 19:06:28 C#/.NET

根据原始值检查Null Wrappers

Integer i = null; 如果(i == 3) 为什么上面的第二行抛出一个 NullPointerException ,IMHO,这只有一个含义是Wrapper Object i 要取消装箱,这会产生例外: p> ArrayList list = new ArrayList(); list.add(null); ..
发布时间:2017-10-07 17:11:07 Java开发

铸造对象回到原始类型

我希望有两个答案之一,不可能或非常简单,我忽略了明显的Google查询。 根本的问题是我有通过 EventHandler 传入一个通用对象,该对象将对象进行模糊处理,并使真实类型模糊;只有在运行时我知道对象是什么。 诚然,动态关键字可以解决问题,但是我想不会失去智能感知和一切,如果我可以避免它。另外,它不解决不知道通用对象的每个属性没有大量的反射。 编辑:这个想法是能够确定在方法 ..
发布时间:2017-08-29 20:23:39 C#/.NET

为什么Enum的HasFlag方法需要拳击?

我正在阅读“C#通过CLR”和第380页,有一个说明说: 注意枚举类定义一个HasFlag方法定义如下 public Boolean HasFlag(枚举标志); 使用此方法,您可以重写对Console.WriteLine的调用,如下所示: Console.WriteLine(“Is {0}隐藏?{1}“,文件,属性.HasFlag(FileAttributes.Hidde ..
发布时间:2017-08-23 20:22:04 C#/.NET

为什么自动拳击标记为警告?

我明白,自动取消打包应该小心,因为未装箱的引用可以为空。为什么自动装箱也被标记为警告?我在这里遇到一些陷阱吗? 解决方案 如果您不期望性能问题(在微型优化方面)您可以安全地禁用此警告。这只是一个迹象,如果你不知道自动拳击在这里发生。在具有I / O开销(由于DB事务或光盘访问)的业务逻辑代码中,自动打包从来不是一个问题。 ..
发布时间:2017-07-29 01:15:26 Java开发

如何测试一个值是否包含在C#/ .NET中?

我正在寻找一种方法来编写代码来测试一个值是否是盒装的。 我的初步调查显示,.NET不再隐瞒事实,这意味着 GetType()和 IsValueType 不要显示盒装值和未装箱值之间的差异。例如,在以下LinqPad C#表达式中,我相信 o1 是盒装的,而 i1 不是盒装的,而是我想要一种在代码中测试的方法,或者最好的方法是在查看任何变量或值时知道 ,即使它的类型是“动态”或“对象”无论是盒 ..
发布时间:2017-07-22 10:18:05 C#/.NET

Java签名零和拳击

最近我用Java编写了一个项目,并注意到双重/双重实现的一个非常奇怪的功能。 Java中的double类型有两个0,即0.0和-0.0(有符号零)。奇怪的是: 0.0 == -0.0 评估为 true ,但: new Double(0.0).equals(new Double(-0.0)) 评估为 false 。有人知道这个原因吗? 解决方 ..
发布时间:2017-07-11 22:49:41 Java开发

隐藏拳击在BCL?

最近我意识到BCL中有一些部分仍然使用一些“遗留”代码,这些代码可能是在框架v2.0中引入泛型之前编写的。 显然,这些“遗产”代码的一部分可能导致CLR执行大量的拳击/拆箱操作。 由于过度使用拳击从来不是一件好事我想知道BCL中还有其他一些关键的地方你注意到拳击发生了吗? 谢谢 解决方案 请注意,对于上述具体示例: DateTime.Now调用一个具有相当高成本的系统函数, ..
发布时间:2017-04-15 13:18:41 C#/.NET