Tag: 原语

使用int作为java.util.Dictionary的types参数

当我试图宣布一个字典是这样的: private Dictionary<String, int> map; 编译器给我以下错误: 标记“int”上的语法错误,此标记之后的预期尺寸 但它与Integer工作正常。 我隐约知道,Java对待int / Integer不同(我来自.NET的背景),但我希望有人可以给我一个完整的解释,为什么我不能在Dictionary <>中使用原语

检查原始字段的types

我试图确定一个对象的字段的types。 当它传递给我的时候,我不知道这个对象的types,但是我需要find很long的字段。 很容易区分盒装Long但原始long似乎更困难。 我可以确定传给我的物品只有Longs ,而不是原始物品,但我宁愿不要。 所以我拥有的是: for (Field f : o.getClass().getDeclaredFields()) { Class<?> clazz = f.getType(); if (clazz.equals(Long.class)) { // found one — I don't get here for primitive longs } } 这似乎工作的一个怪异的方式是这样的: for (Field f : o.getClass().getDeclaredFields()) { Class<?> clazz = f.getType(); if (clazz.equals(Long.class) || clazz.getName().equals("long")) { // found one } } 如果有的话,我真的想要一个更清洁的方法来做到这一点。 如果没有更好的方法,那么我认为要求我收到的对象只使用Long […]

Objective C布尔数组

我需要在objective-c中使用一组布尔值。 我已经设置了它,但是编译器在下面的语句中引发一个警告: [updated_users replaceObjectAtIndex:index withObject:YES]; 这是,我敢肯定,因为是不是一个对象; 这是一个原始的。 无论如何,我需要做到这一点,并非常感谢如何实现它的build议。 谢谢。

最快的方法来检查一个字节数组是否全为零

我有一个byte[4096] ,想知道最快的方法是检查所有值是否为零? 有没有办法比做更快: byte[] b = new byte[4096]; b[4095] = 1; for(int i=0;i<b.length;i++) if(b[i] != 0) return false; // Not Empty

单字节布尔。 为什么?

在C ++中,为什么布尔需要一个字节来存储true或false,只有一个位就足够了,如0表示false,1表示true。 (为什么Java也需要一个字节?) 其次,使用以下几点更安全? struct Bool { bool trueOrFalse : 1; }; 第三,即使安全,上面的技术真的会有帮助吗? 既然我听说我们在那里节省空间,但编译器生成的代码访问它们的速度比生成访问基元的代码更大更慢。

未初始化的原始实例variables是否使用内存?

在Java中,是否花费内存来声明一个类级别的实例variables而不进行初始化? 例如: int i; 如果我不用i = 5;初始化它,请使用任何内存i = 5; ? 细节: 我有一个巨大的超类,许多不同的(不足以拥有自己的超类)子类扩展。 一些子类不使用超级类声明的每一个单一基元。 我是否可以简单地保留未初始化的这样的原语,并且只在必要的子类中初始化它们以节省内存?

使用int与整数

我碰到一个使用Integervariables的类来捕获在for循环中使用的大小。 这是好的做法还是应该使用int原始数据types? Integer size = something.getFields().size(); for (Integer j = 0; j < size – 1; ++j)

在Java中将字符转换为整数

有人可以向我解释这里发生了什么事情: char c = '+'; int i = (int)c; System.out.println("i: " + i + " ch: " + Character.getNumericValue(c)); 这打印i: 43 ch:-1 。 这是否意味着我必须依靠原始转换将char转换为int ? 那么如何将Character转换为Integer ? 编辑:是的,我知道Character.getNumericValue返回-1如果它不是一个数值,这对我来说是有道理的。 问题是:为什么做原始转换返回43 ? 编辑2:43是ASCII的+ ,但我希望转换不成功,就像getNumericValue没有成功。 否则,这意味着有两种语义等价的方式来执行相同的操作,但结果不同?

Java相当于unsigned long long?

在C ++中,我喜欢通过unsigned long long int或通过uint64_t访问64位无符号整数。 现在,在Java中,长度是64位,我知道。 但是,他们签署了。 是否有一个无符号的long(long)作为Java原始文件? 我如何使用它?

数组是一个原始types还是一个对象(或者其他的东西)?

这个问题基本上是不言自明的。 我一直无法find一个数组的API(除了这个数组 ,但这只是定义了一堆用于处理实际数组的静态帮助函数)。 如果没有它的类,这似乎表明一个数组不能是一个Object 。 然而,事实上,一个数组具有类似于.equals()和.clone()这样的可调用length和方法的公共字段似乎表明(完全相反)。 原始数组的奇怪表示和行为的解释是什么? 作为一个说明,我试图在数组的.clone()方法上使用“Open Implementation”Eclipsefunction,希望能够查看在何处以及如何定义此方法(因为它表示int [ ]从Object取代它),但它实际上导致我的整个Eclipse冻结和崩溃…