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

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

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

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 bigint_Java的long和bigint长度对比详解相关推荐

  1. java中biglong_Java的long和bigint长度对比详解

    Java 中Long的值大小比较 java.util.Lang 对象吧,而不是基本类型 long  (注意大小写) Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较 ...

  2. racle B-Tree和Bitmap索引对比详解

    http://space.itpub.net/13062352/viewspace-614553 oracle B-Tree和Bitmap索引对比详解 B树索引是所有大型关系数据库毕用的技术,也是or ...

  3. php打印出函数的内容吗,PHP打印函数集合详解以及PHP打印函数对比详解(精)

    1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump(); 1 echo() 可以同时输出多个字符串,可以多 ...

  4. java加密算法入门(三)-非对称加密详解

    1.简单介绍 这几天一直在看非对称的加密,相比之前的两篇内容,这次看了两倍多的时间还云里雾里的,所以这篇文章相对之前的两篇,概念性的东西多了些,另外是代码的每一步我都做了介绍,方便自己以后翻阅,也方便 ...

  5. java的数组与Arrays类源码详解

    java的数组与Arrays类源码详解 java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 类的 ...

  6. JAVA算法:回文字符串相关问题详解(回文字符串总结)

    JAVA算法:回文字符串相关问题详解(回文字符串总结) Q1. 编写一个工具方法判断给定的字符串是否为回文字符串 例如:给定一个字符串"aabbaa",判断该字符串是否为回文字符串 ...

  7. 【职坐标】java面向对象三大特性(二)——继承详解

    [职坐标]java面向对象三大特性(二)--继承详解 a) 什么是继承? i. 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可 b) ...

  8. java中sleep()、wait()相同与不同详解

    java中sleep().wait()相同与不同详解 相同 java中Thread#sleep和Object#wait方法都是暂停当前线程,当前线程让出CPU占用.并不存在调用sleep后还占用CPU ...

  9. python3 copy_python3 深浅copy对比详解

    一.赋值对比 1.列表 l1 = [1,2,3] l2 = l1 l1.append('a') print(l1,l2) #[1, 2, 3, 'a'] [1, 2, 3, 'a'] print(id ...

最新文章

  1. 【性能测试】性能测试工具选择
  2. iOS多线程之GCD小记
  3. 软件测试行业发展前景怎么样?
  4. HDU 6090 Rikka with Graph 思维 公式
  5. mysql常用字符串操作函数大全,以及实例
  6. 小程序ios android差异,解决小程序textarea在安卓和ios上padding不一的问题
  7. 尔雅通识课题库【1】
  8. matlab简单函数画图例题,Matlab(十) 简单的函数画图
  9. Matlab图形的线型、标记、颜色
  10. 快速掌握Python的捷径-Python基础前传(1) 1
  11. u盘修复linux系统,电脑怎么修复u盘安装linux的器
  12. 解析:浏览器事件冒泡及事件捕获
  13. 推荐一个简单好用的HTML编辑器
  14. 木讷的程序员需要知道的事情 (六)
  15. 网页JS自动化脚本(一)安装油猴或暴力猴等脚本管理器并新建脚本
  16. Facebook想要成为下一个微信,难!
  17. 货车什么叫半挂?什么叫全挂?
  18. 技嘉电脑怎么开启vt模式?
  19. 英语及计算机水平自我鉴定,大学英语专业自我鉴定
  20. 《冰封王座》世界魔兽界十大叱咤风云人物

热门文章

  1. 巨巨的磁盘(线段树)
  2. 用PostgreSQL 做实时高效 搜索引擎 - 全文检索、模糊查询、正则查询、相似查询、ADHOC查询...
  3. 亚马逊精细化运营流程,跨境电商ERP独立部署
  4. 护牙篇丨get纳美宝贝牙膏,让宝宝和蛀牙说拜拜
  5. 机器人切削加工电主轴选型方案——德国制造Kasite
  6. 用VB操作Excel
  7. 前端学习之JavaScript DOM以及DOM操作的基础知识
  8. 使用adb命令给安卓手机安装apk包
  9. 水手猴子和椰子程序matlab,[转载]水手分椰子类型题通解公式及推导(中英对照修改版)...
  10. 【框架】Servlet API