Java的long和bigint长度对比详解

在本文中小编给大家分享了关于Java的long和bigint长度比较的知识点内容,有兴趣的朋友们学习参考下。

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() 方法进行比较,如

 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 =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;i8){                   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和bigint长度对比详解的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java