Java 中Long的值大小比较
java.util.Lang 对象吧,而不是基本类型 long (注意大小写)
Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较两个对象是否是同一个对象
如果比较两个Long对象值是否相等,则不可以使用双等号进行比较,可以采用如下方式:
1. 使用 equals 方法
Long a = new Long(3); Long b = new Long(3); System.out.println(a.equals(b));
2. 使用 Long 类型中的 longValue() html" target="_blank">方法进行比较,如
Long a = new Long(3); Long b = new Long(3); System.out.println(a.longValue()==b.longValue());
因为Long为long的封装对象类型,因此比较大小的时候不能用'=='
用java数组实现BigInt超大整数设计
package com.test; import org.apache.commons.lang.StringUtils; /** * @author jsczxy2 * */ public class BigInt { public static void main(String[] args) { BigInt a = new BigInt("367892732043217489143432876442367892732043217489143432876442367892732043217489143432876442367892732043217489143432876442"); BigInt b = new BigInt("3678927329999999999999994328736789273299999999999999943287367892732043217489143432876442367892732043217489143432876442"); System.out.println(a.toString()); System.out.println(b.toString()); System.out.println(a.add(b)); } private int[] arrayint = new int[100]; public BigInt(String num) { //分解数字到int数组中 splitNumToArray(num); } public void splitNumToArray(String num) { int j = 0; StringBuffer sb = new StringBuffer(); //数字全部翻转后分组截取后再翻转回来加入int数组,这里控制数组中每一个int元素恒定为8位不超过int最大长度 num = new StringBuffer(num).reverse().toString(); for (int i = 0; i <num.length(); i++) { if (i % 8 == 0) { if (sb != null && !sb.toString().equals("")){ arrayint[j] = Integer.valueOf(sb.reverse().toString()); j++; sb = new StringBuffer(); } } sb.append(num.charAt(i)); } if (sb != null) { arrayint[j] = Integer.valueOf(sb.reverse().toString()); } } //数组从后开始打印数字,不满8位补齐8位数字用0进行左填充 public String printArray(int[] array) { StringBuffer sb = new StringBuffer(); boolean isNotFirstInt = false; for (int i = array.length-1; i >=0 ; i--) { if (array[i] != 0) { System.out.println(i+":"+array[i]); if(isNotFirstInt && String.valueOf(array[i]).length()<8){ sb.append(StringUtils.leftPad(String.valueOf(array[i]), 8,"0")); }else{ sb.append(array[i]); if(!isNotFirstInt) isNotFirstInt = true; } } } return sb.toString(); } //BigInt数字进行加法运算 public String add(BigInt bigInt) { int[] a = this.arrayint; int[] b = bigInt.arrayint; int[] result = new int[100]; //根据各种情况进行结果赋值 for(int i=0;i<a.length;i++){ if(a[i]==0&&b[i]!=0){ result[i]=b[i]; }else if(a[i]!=0&&b[i]==0){ result[i]=a[i]; }else if(a[i]!=0&&b[i]!=0){ result[i]=a[i]+b[i]; }else{ result[i]=0; } } //处理结果数组中超过8位的int元素的进位,该int元素截掉1位后再把其后一个元素值加一 for(int i=0;i<result.length;i++){ if(String.valueOf(result[i]).length()>8){ result[i] = Integer.valueOf(String.valueOf(result[i]).substring(1)); result[i+1] = result[i+1] + 1; } } return printArray(result); } //打印BigInt数字 @Override public String toString() { return printArray(arrayint); } }
bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
int
从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
smallint
从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。
tinyint
从 0 到 255 的整型数据。存储大小为 1 字节。
说明:
int(M) 在 integer 数据类型中,M 表示最大显示宽度,只用于在显示,并不影响存储。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。
本文向大家介绍Java中long类型与Long类型的区别和大小比较详解,包括了Java中long类型与Long类型的区别和大小比较详解的使用技巧和注意事项,需要的朋友参考一下 前言 最近在学习java,接触到了long类型,发现网上这方面的资料较乱,所以决定总结一下,在Java中我们经常要做一些判断,而对于判断的话,用的最多的便是“>”、“==”、“<”的比较,这里我们进行一个Long类型数据和l
问题内容: 我在MySQL中有一个ID字段类型为BIGINT的表 在hibernate对象中,我为此字段使用Java Long类型 但是当运行程序时,它会抛出异常: 如何在hibernate状态下映射MySQL BINGINT数据类型? 问题答案: 但是在运行程序时,它将引发异常:预期:类java.lang.Long,得到类java.lang.Integer 为BIGINT 使用a 是正确的,上述
这是一个至少为64 bit的整数类型(译注:实际宽度依赖于具体的实现平台),例如: long long x = 9223372036854775807LL; 不过,不要想当然地认为存在long long long或者将long拼写为short long long。 (译注:如同J. Stephen Adamczyk在参考文献中所言,”long long”是一个晦涩的拼写64-bit整数类型的方式
问题内容: 我正在使用某些框架处理一堆图像,而我得到的只是一堆对象。不幸的是,这些图像真的很暗,我想加亮它们并稍微调整对比度。 就像是: 有任何想法吗? 问题答案: 实际上,那很容易。 1.2和15的A 似乎使停下来的图像更亮。 好极了! 在的文档中了解更多信息。
本文向大家介绍详解jquery和vue对比,包括了详解jquery和vue对比的使用技巧和注意事项,需要的朋友参考一下 前言:很多人说jquey和vue没有什么可比的,应该和Angular,React来比吧,我到觉得他们倒没有多大的可比性,都是基于mvvm思想设计的框架,无非就是实现的方式不一样,在不同场景下性能上会有一些差异。然而从jquery到vue或者说是到mvvm的转变则是一个思想想的转变
本文向大家介绍Java的NIO与IO的详解及对比,包括了Java的NIO与IO的详解及对比的使用技巧和注意事项,需要的朋友参考一下 Java的NIO与IO的区别 NIO是JDK1.4引入的异步IO,NIO核心部分就是三点: Channel Buffer Selector NIO与IO对比 NIO与IO的区别,总体上来说体现在三个方面: IO 基于流(Stream oriented), 而 NIO