草庐IT

java - 如何查看 int 数组中的元素是否为空?

例子:我想看看array[5]是否包含一个值或为空。 最佳答案 原始数组中的元素不能为空。它们总是会被初始化为某些东西(对于int数组通常是0,但这取决于您声明数组的方式)。如果您像这样声明数组(例如):int[]myArray;myArray=newint[7];那么所有元素都将默认为0。另一种声明数组的语法是int[]myArray={12,7,32,15,113,0,7};其中数组(在本例中大小为7)的初始值在花括号{}中给出。 关于java-如何查看int数组中的元素是否为空?,

java - int 是 Java 中的对象吗?

更准确地说,int是Integer类的一部分(精简版本之类的)还是完全是其他东西?我知道int是值类型,Integer是引用类型,但int是否继承自Object?(我假设在这方面int、long、boolean等都是相似的。选择int只是为了方便) 最佳答案 Java中的基本类型不是对象,也不继承自Object。自从Java1.5引入允许在int和Integer(以及其他类型)之间自动装箱。因为int不是不能用作通用类型参数的对象,例如T在list 关于java-int是Java中的对象

java - 无法在原始类型 int 上调用 toString()

基本上,我想要做的是获取商品ID,并从ini设置价格,基本上类似于:itemid:price但是,我不能简单地执行item.getId().toString()。我正在尝试获取项目我该怎么做才能使它成为一个字符串?publicstaticvoidgetBuyPrice(Itemitem){try{StringitemId=item.getId().toString();BufferedReaderbr=newBufferedReader(newFileReader(newFile("./data/prices.ini")));Stringline;while((line=br.read

java - 为什么 Java 能够将 0xff000000 存储为 int?

Java中整数的最大值是2147483647,因为Java整数是有符号的,对吗?0xff000000的数值为4278190080。但我看到的Java代码是这样的:intALPHA_MASK=0xff000000;谁能赐教吗? 最佳答案 只是埃里克森回答的补充:正如他所说,在大多数计算机体系结构中,有符号整数存储为它们各自正值的二进制补码。也就是说,整个2^32个可能的值被分成两组:一组是从0位开始的正值,一组是从1开始的负值。现在,假设我们仅限于3位数字。让我们以一种很快就会有意义的有趣方式来排列它们:000111001110010

java - 通过AudioInputStream读取数据需要关心big endian和little endian吗?

我正在通过AudioInputStream将一个wav文件读入一个字节数组,AudioInputStreamaudiofile=AudioSystem.getAudioInputStream(f);byte[]audio=newbyte[numberofframes*framesize];intbytes=audiofile.read(audio);考虑到数据是按小端排列的,我是否需要排列样本的字节,还是AudioInputStream为我做这件事? 最佳答案 如果数据以超过一个字节的方式编码,例如,位深度为16或更多,无论chan

java - 如何在 Java 中通过其 (unicode) 名称获取字符?我需要 Character.getName(int codePoint) 的反转

如何使用Unicode名称在Java中查找字符或int代码点?例如,如果Character.getName('\u00e4')返回"LATINSMALLLETTERAWITHDIAERESIS",如何执行反向操作(即从"LATINSMALLLETTERAWITHDIAERESIS"到'\u00e4')使用“纯”Java?编辑:为了阻止我想要或不想要的评论的洪流,这是我在Python中会做的事情:"\N{LATINSMALLLETTERAWITHDIAERESIS}"#thisgivesmewhatIwantasaliteralunicodedata.lookup("LATINSMALL

java - Random.nextInt(int) [稍微] 有偏差

即,它永远不会使用某些特定的upperBound参数连续生成超过16个偶数:Randomrandom=newRandom();intc=0;intmax=17;intupperBound=18;while(c在此示例中,代码将永远循环,而当upperBound为16时,它会快速终止。这种行为的原因可能是什么?该方法的javadoc中有一些注释,但我未能理解它们。UPD1:代码似乎以奇数上限终止,但可能卡在偶数上限UPD2:我修改了代码以按照评论中的建议捕获c的统计信息:Randomrandom=newRandom();intc=0;longtrials=10){while(c0){in

java - 为什么在 java src 中 Integer 类的 toString 方法中使用负 int 进行 mod 操作

我在看java1.7.0_09版本的源码时,发现Integer类的toString方法的实现是用负int来计算模运算,有什么意义吗?代码如下:publicstaticStringtoString(inti,intradix){if(radixCharacter.MAX_RADIX)radix=10;/*Usethefasterversion*/if(radix==10){returntoString(i);}charbuf[]=newchar[33];booleannegative=(i 最佳答案 根据该算法,您需要一个小的()非负

java - int 基本类型的 volatile 声明

我在AtomicAccess上引用了Oracle的Java文档Readsandwritesareatomicforreferencevariablesandformostprimitivevariables(alltypesexceptlonganddouble).Readsandwritesareatomicforallvariablesdeclaredvolatile(includinglonganddoublevariables).我了解volatile的工作原理。但是提到需要为long和double变量显式声明volatile以在第二个语句中获得原子访问,这使得volatile

java - 将 byte 或 int 转换为 bitset

我有以下内容:intnum=Integer.parseInt(lineArray[0]);bytenumBit=num&0xFF;有什么非常简单的方法可以将numBit转换为位数组吗?或者更好的是,有没有办法绕过int的字节转换并直接从num到位数组?谢谢 最佳答案 如果你想要一个BitSet,尝试:finalbyteb=...;finalBitSetset=BitSet.valueOf(newbyte[]{b});如果你想要一个boolean[],staticboolean[]bits(byteb){intn=8;finalboo