How to Compare a long value is equal to Long value

long a = 1111; Long b = 1113; if(a == b) { System.out.println("Equals"); }else{ System.out.println("not equals"); } the above code prints a "equals" in console, which is wrong answer. my qestions is how to compare a long variable value is equals to Long variable value. please replay me as soon as possible. Thankh you First your code is not compiled. Line Long b = 1113;

如何比较long值等于Long值

long a = 1111; Long b = 1113; if(a == b) { System.out.println("Equals"); }else{ System.out.println("not equals"); } 上面的代码在控制台中输出“equals”,这是错误的答案。 我的问题是如何比较长变量值是否等于Long变量值。 请尽快重播我。 谢谢你 首先你的代码没有被编译。 Line Long b = 1113; 是错的。 你不得不说 Long b = 1113L; 其次,当我解决这个编译问题时,代码打印出“不等于”。 它按预

How to properly compare two Integers in Java?

I know that if you compare a boxed primitive Integer with a constant such as: Integer a = 4; if (a < 5) a will automatically be unboxed and the comparison will work. However, what happens when you are comparing two boxed Integers and want to compare either equality or less than/greater than? Integer a = 4; Integer b = 5; if (a == b) Will above code result in checking to see if they are

如何正确比较Java中的两个整数?

我知道如果你将一个盒装的原始Integer与一个常量比较,如: Integer a = 4; if (a < 5) a将自动取消装箱并进行比较。 然而,当你比较两个盒装Integers并且想比较等于还是小于/大于时会发生什么? Integer a = 4; Integer b = 5; if (a == b) 上面的代码是否会导致检查它们是否是同一个对象,或者它会在这种情况下自动解除框? 关于什么: Integer a = 4; Integer b = 5; if (a < b) ? 不,Integer,Long等

Efficient way to iterate over list of files

I am searching for an efficient way to iterate over thousands of files in one or more directories. The only way to iterate over files in a directory seems to be File.list*() functions. These functions effectively load the entire list of files in some sort of Collection and then let the user iterate over it. This seems to be impractical in terms of time/memory consumption. I tried looking at

循环遍历文件列表的有效方法

我正在寻找一种有效的方法来遍历一个或多个目录中的数千个文件。 迭代目录中的文件的唯一方法似乎是File.list*()函数。 这些函数有效地加载了某种集合中的整个文件列表,然后让用户遍历它。 就时间/内存消耗而言,这似乎是不切实际的。 我试着看看commons-io和其他类似的工具。 但它们最终都会在内部的某处调用File.list*() 。 JDK7的walkFileTree()接近了,但我无法控制何时选择下一个元素。 我在一个目录中有超过150,

Why does Java switch on contiguous ints appear to run faster with added cases?

I am working on some Java code which needs to be highly optimized as it will run in hot functions that are invoked at many points in my main program logic. Part of this code involves multiplying double variables by 10 raised to arbitrary non-negative int exponent s. One fast way (edit: but not the fastest possible, see Update 2 below) to get the multiplied value is to switch on the exponent :

为什么Java打开连续整数看起来运行速度更快,增加了一些情况?

我正在研究一些需要高度优化的Java代码,因为它可以在主要程序逻辑中的许多地方调用的热门函数中运行。 这部分代码涉及将double变量乘以10并将其引入任意的非负int exponent s。 一个快速的方法(编辑:但不是最快的方法,请参阅下面的更新2)来获得乘积值是switch exponent : double multiplyByPowerOfTen(final double d, final int exponent) { switch (exponent) { case 0: return d; case 1:

java using float comparison will return wrong results

class A { public final static float _EPS = 1E-7f; public final static double _EPS2 = 1E-7; public static boolean compare(float a, float b) { return a < b + _EPS; } public static boolean compare2(float a, float b) { return a < b + _EPS2; } public static void main(String [] main) { float a = 54.124844f; float b = 54.1248

java使用float比较会返回错误的结果

class A { public final static float _EPS = 1E-7f; public final static double _EPS2 = 1E-7; public static boolean compare(float a, float b) { return a < b + _EPS; } public static boolean compare2(float a, float b) { return a < b + _EPS2; } public static void main(String [] main) { float a = 54.124844f; float b = 54.1248

Why does Double.NaN==Double.NaN return false?

I was just studying OCPJP questions and I found this strange code: public static void main(String a[]) { System.out.println(Double.NaN==Double.NaN); System.out.println(Double.NaN!=Double.NaN); } When I ran the code, I got: false true How is the output false when we're comparing two things that look the same as each other? What does NaN mean? NaN means "Not a Number".

为什么Double.NaN == Double.NaN返回false?

我只是在研究OCPJP问题,并且发现了这个奇怪的代码: public static void main(String a[]) { System.out.println(Double.NaN==Double.NaN); System.out.println(Double.NaN!=Double.NaN); } 当我运行代码时,我得到了: false true 当我们比较两个看起来相同的东西时,输出如何是false ? NaN是什么意思? NaN的意思是“不是数字”。 Java语言规范(JLS)第三版说: 溢出的操作会产生带符号的无穷大,下溢的操

What are the other NaN values?

The documentation for java.lang.Double.NaN says that it is A constant holding a Not-a-Number (NaN) value of type double . It is equivalent to the value returned by Double.longBitsToDouble(0x7ff8000000000000L) . This seems to imply there are others. If so, how do I get hold of them, and can this be done portably? To be clear, I would like to find the double values x such that Double.doubl

其他NaN值是什么?

java.lang.Double.NaN的文档说它是 一个常量,它包含double类型的非数字(NaN)值。 它等同于Double.longBitsToDouble(0x7ff8000000000000L)返回的Double.longBitsToDouble(0x7ff8000000000000L) 。 这似乎意味着有其他人。 如果是这样,我该如何抓住他们,这可以轻松地完成吗? 要清楚,我想找到这样的double值x Double.doubleToRawLongBits(x) != Double.doubleToRawLongBits(Double.NaN) 和 Double.isNaN(x) 都是

JNI + Type Conversion (Signed Short to Unsigned Short, for example)

I'm in JNI hell with typeconversions out the wazoo: Here's the general flow of things: read a file and it returns me with a 1D array of floats. convert these floats[] to shorts[] (*4095, I want a 12 bit number) pass these shorts[] to C, which duplicates them in an unsigned short array flip bits around to make big-endian java bits little-endian for image processing convert thes

例如,JNI +类型转换(例如,签名为无符号短符号)

我在JNI地狱与typeconversions出wazoo: 以下是事物的一般流程: 读取一个文件,它返回一个浮点数的一维数组。 将这些浮动[]转换为短裤[](* 4095,我想要一个12位数字) 将这些short []传递给C,并将它们复制到一个无符号短数组中 翻转位来使大端的Java位对于图像处理来说是小端的 将这些新号码转换为双[](/ 4095) 将double []传递给图像处理函数 将处理过的double []转换回为short [](* 4095) 简而言之

Mathematical approach to derive Modulo expression

Below are two expressions to find modulo(n,d) in java, using euclidean division (d + (n % d)) if (n < 0) (n%d) if n > 0 My question is, Am not clear, How to think mathematically before writing above expression, if n<0? Please help me with mathematical approach, Because i do not want to remember logic!!! If you want to remember what n % d does, it returns a value in the range (

推导模态表达式的数学方法

下面是两个表达式,使用欧几里得除法在java中找到模(n,d) (d + (n % d)) if (n < 0) (n%d) if n > 0 我的问题是, 我不清楚,如果在写上面的表达式之前如何数学思考,如果n <0? 请用数学方法帮助我,因为我不想记住逻辑! 如果你想记住n % d所做的事情,它会返回一个范围(-d, d)的值,并将其与n的符号相匹配。 如果你想知道如何得到一个积极的结果(或严格来说,结果匹配d的符号而不是n),那么比if更

classloader in java is a class itself then who will load the classloader class?

ClassLoader in Java is a class which is used to load class files in Java. The java.lang.ClassLoader is an abstract class here my question is does this java.lang.ClassLoader class is any way related to JVM's classloaders(1. Bootstrap class loader 2. Extensions class loader 3. System class loader)? or this java.lang.ClassLoader is a separate class which can be used to create a custom clas

java中的类加载器本身就是一个类,那么谁将加载类加载器类?

Java中的ClassLoader是一个用于加载Java中的类文件的类。 java.lang.ClassLoader是一个抽象类 这里我的问题是这个java.lang.ClassLoader类是否与JVM的类加载器有关(1. Bootstrap类加载器2.扩展类加载器3.系统类加载器)? 或者这个java.lang.ClassLoader是一个独立的类,可以用来创建一个自定义类加载器? 类加载器是将Java类动态加载到Java虚拟机中的Java运行时环境的一部分。 它负责定位库,读取内容并加载库中包含