草庐IT

long-integer

全部标签

java - 为什么 Byte.compare() 和 Integer.compare() 的实现方式不同?

我正在研究OpenJDK的源码。Byte.compare()和Integer.compare()方法吸引了我的注意力:publicstaticintByte.compare(bytex,bytey){returnx-y;}publicstaticintInteger.compare(intx,inty){return(x为什么Byte.compare()和Integer.compare()方法有不同的实现方式? 最佳答案 Integer.compare的实现不使用减法,因为如果将接近Integer.MIN_VALUE的整数与另一个接

java - 为什么 SIZE 常量仅适用于 Integer 和 Long 的 @Native?

我了解@Native的使用注释。Indicatesthatafielddefiningaconstantvaluemaybereferencedfromnativecode.Theannotationmaybeusedasahintbytoolsthatgeneratenativeheaderfilestodeterminewhetheraheaderfileisrequired,andifso,whatdeclarationsitshouldcontain.但是,在阅读java源代码时,我注意到在类Integer和Long中,SIZE常量是@Native而不是Float、Byte、D

java - Android 上的 Integer.parseInt 和 NumberFormatException

我在我的Android应用中运行了以下代码Integer.parseInt("+91");在Android5.0(Lollipop),它没有抛出任何异常,因为+91是一个整数。但是在Android4.4.x(KitKat)和它抛出的更低版本:NumberFormatException:InvalidInt:"+91"Android版本是如何造成这种差异的? 最佳答案 在thiscommit中添加了对显式+的支持:Supportexplicit+inByte,Short,Integer,Long.Bug:5239391Change-I

java - 双倍乘以 100 然后转换为 long 给出了错误的值

我有以下代码:Doublei=17.31;longj=(long)(i*100);System.out.println(j);O/P:1730//预期:1731Doublei=17.33;longj=(long)(i*100);System.out.println(j);O/P:1732//预期:1733Doublei=17.32;longj=(long)(i*100);System.out.println(j);O/P:1732//预期:1732{如预期}Doublei=15.33;longj=(long)(i*100);System.out.println(j);O/P:1533/

java - Java中long,double,byte,char的目的是什么?

所以我正在学习java,我有一个问题。似乎int、boolean和string类型几乎适用于我在变量方面需要的所有东西,除了也许float可以在数字中需要十进制数字时使用。我的问题是,是否还有其他类型,例如long、double、byte、char等用于正常的日常编程?这些可以用于哪些实际的事情?他们存在是为了什么? 最佳答案 除了“短”可能是个异常(exception),这可以说有点浪费空间——有时从字面上看,它们都是类(class)的马:当您不需要小数并且没有理由使用其他任何东西时,请使用int;在大多数处理器/操作系统配置上,

java - JIT 未优化涉及 Integer.MAX_VALUE 的循环

在写anotherquestion的答案时,我注意到JIT优化的一个奇怪的边界情况。以下程序不是“微基准”并且不是旨在可靠地测量执行时间(如另一个问题的答案中所指出的)。它仅用作MCVE重现问题:classMissedLoopOptimization{publicstaticvoidmain(Stringargs[]){for(intj=0;j它基本上运行相同的循环,while(i++,其中限制n曾经设置为Integer.MAX_VALUE,一次到Integer.MAX_VALUE-1.当使用JDK1.7.0_21和在Win7/64上执行此操作时java-serverMissedLoo

java - PostgreSQL 中 Long 数据类型的等价物是什么?

我想知道PostgreSQL中Long数据类型的等价物是什么? 最佳答案 根据thedocs看起来bigint是您的friend,范围为-9223372036854775808到9223372036854775807。 关于java-PostgreSQL中Long数据类型的等价物是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3245220/

java - 使用 int 与 Integer

我遇到了一个类,它使用整数变量来捕获要在for循环中使用的大小。这是一种好的做法还是我们应该使用int原始数据类型?Integersize=something.getFields().size();for(Integerj=0;j 最佳答案 提供了Integer类,以便可以以纯OO方式对值进行装箱/拆箱。在适当的情况下使用int,除非您特别需要以OO方式使用它;在这种情况下,整数是合适的。JavaIntvsIntegerHowever,verydifferentthingsaregoingonunderthecovershere.A

java - 将 long 转换为字节数组并将其添加到另一个数组

我想更改字节数组中的值以将长时间戳值放入M​​SB。有人可以告诉我最好的方法是什么。我不想逐位插入值,我认为这是非常低效的。longtime=System.currentTimeMillis();LongtimeStamp=newLong(time);byte[]bArray=newbyte[128];我想要的是这样的:byte[0-63]=timeStamp.byteValue();这样的事情可能吗。在此字节数组中编辑/插入值的最佳方法是什么。因为byte是一个原语,我不认为有一些我可以使用的直接实现?编辑:System.currentTimeMillis()似乎比Calendar.

java - 将 List<String> 直接转换为 List<Integer>

解析我的文件“s”后包含AttributeGet:1,16,10106,10111所以我需要获取attributeIDGetList中冒号后的所有数字。我知道有几种方法可以做到这一点。但是有什么方法可以直接转换List至List.由于下面的代码提示类型不匹配,所以我尝试执行Integer.parseInt,但我想这不适用于List。这里s是字符串。privatestaticListattributeIDGet=newArrayList();if(s.contains("AttributeGet:")){attributeIDGet=Arrays.asList(s.split(":")[