Java 中Long的值大小比較
成都創(chuàng)新互聯(lián)長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為阿魯科爾沁企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、做網(wǎng)站,阿魯科爾沁網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
java.util.Lang 對象吧,而不是基本類型 long (注意大小寫)
Java中如果使用 == 雙等于比較對象,等于比較的是兩個對象的內(nèi)存地址,也就是比較兩個對象是否是同一個對象
如果比較兩個Long對象值是否相等,則不可以使用雙等號進(jìn)行比較,可以采用如下方式:
1. 使用 equals 方法
Long a = new Long(3); Long b = new Long(3); System.out.println(a.equals(b));
2. 使用 Long 類型中的 longValue() 方法進(jìn)行比較,如
Long a = new Long(3); Long b = new Long(3); System.out.println(a.longValue()==b.longValue());
因為Long為long的封裝對象類型,因此比較大小的時候不能用'=='
用java數(shù)組實現(xiàn)BigInt超大整數(shù)設(shè)計
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) { //分解數(shù)字到int數(shù)組中 splitNumToArray(num); } public void splitNumToArray(String num) { int j = 0; StringBuffer sb = new StringBuffer(); //數(shù)字全部翻轉(zhuǎn)后分組截取后再翻轉(zhuǎn)回來加入int數(shù)組,這里控制數(shù)組中每一個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()); } } //數(shù)組從后開始打印數(shù)字,不滿8位補齊8位數(shù)字用0進(jìn)行左填充 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數(shù)字進(jìn)行加法運算 public String add(BigInt bigInt) { int[] a = this.arrayint; int[] b = bigInt.arrayint; int[] result = new int[100]; //根據(jù)各種情況進(jìn)行結(jié)果賦值 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; } } //處理結(jié)果數(shù)組中超過8位的int元素的進(jìn)位,該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數(shù)字 @Override public String toString() { return printArray(arrayint); } }
bigint
從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數(shù)據(jù)(所有數(shù)字)。存儲大小為 8 個字節(jié)。
int
從 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型數(shù)據(jù)(所有數(shù)字)。存儲大小為 4 個字節(jié)。int 的 SQL-92 同義字為 integer。
smallint
從 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型數(shù)據(jù)。存儲大小為 2 個字節(jié)。
tinyint
從 0 到 255 的整型數(shù)據(jù)。存儲大小為 1 字節(jié)。
說明:
int(M) 在 integer 數(shù)據(jù)類型中,M 表示最大顯示寬度,只用于在顯示,并不影響存儲。在 int(M) 中,M 的值跟 int(M) 所占多少存儲空間并無任何關(guān)系。和數(shù)字位數(shù)也無關(guān)系 int(3)、int(4)、int(8) 在磁盤上都是占用 4 btyes 的存儲空間。
本文題目:Java的long和bigint長度對比詳解
網(wǎng)頁URL:http://jinyejixie.com/article24/jojjje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、Google、、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)