java 32bit是什么,讓我們一起了解一下?
32Bit的意思是“32位操作系統(tǒng)”,我們的CPU從原來的8位,16位,到現(xiàn)在的32位和64位,cpu處理計(jì)算的時候“數(shù)據(jù)”和“指令”是不同對待的,32位的CPU就可以一次處理一個a=a+b這樣的命令了。
那么java 32bit在使用中有哪些優(yōu)缺點(diǎn)?
優(yōu)點(diǎn):簡化了軟件設(shè)計(jì)的復(fù)雜度。
缺點(diǎn):硬件設(shè)計(jì)更加復(fù)雜,計(jì)算速度下降。
擴(kuò)展一下,什么是32位操作系統(tǒng)?
其實(shí)cpu的位是指一次性可處理的數(shù)據(jù)量是多少,1字節(jié)=8位,32位處理器可以一次性處理4個字節(jié)的數(shù)據(jù)量,依次類推,32位操作系統(tǒng)針對的32位的CPU設(shè)計(jì),64位操作系統(tǒng)針對的64位的CPU設(shè)計(jì)。
操作系統(tǒng)只是硬件和應(yīng)用軟件中間的一個平臺,我們的CPU從原來的8位,16位,到32位和64位,在實(shí)際使用中32位操作系統(tǒng)是可以使用4GB以上的內(nèi)存的。
標(biāo)準(zhǔn)版的 32位版本支持2.93GB RAM,64位版本最高可支持 32 GB RAM。
企業(yè)版的 32 位版本最高可支持32 GB RAM, 64 位版本支持 1 TB RAM。
數(shù)據(jù)中心版的 32 位版本支持 64 GB RAM,64 位版本支持 1 TB RAM。
WEB版最高可支持2G RAM。
實(shí)際操作:
Java獲取字符串(16bit,32bit)和文件MD5工具。
package?com.kingboy.common.utils.md5; import?org.apache.commons.codec.digest.DigestUtils; import?org.apache.poi.util.IOUtils; import?sun.misc.BASE64Encoder; import?java.io.*; import?java.security.MessageDigest; import?java.security.NoSuchAlgorithmException; /** ?*?MD5,String-File ?*?@Author?kingboy ?*?@Date?2017/7/22?下午1:00 ?*?@Description?MD5Utils?is?used?to ?*/ public?class?MD5Utils?{ ????private?static?final?String?ALGORITHM_MD5?=?"MD5"; ????private?static?final?String?UTF_8?=?"UTF-8"; ????/** ?????*?MD5?16bit?小寫. ?????*?@param?readyEncryptStr?ready?encrypt?string ?????*?@return?String?encrypt?result?string ?????*?@throws?NoSuchAlgorithmException ?????*?*/ ????public?static?final?String?MD5_16bit_lower(String?readyEncryptStr)?throws?NoSuchAlgorithmException?{ ????????if(readyEncryptStr?!=?null){ ????????????return?MD5Utils.MD5_32bit_lower(readyEncryptStr).substring(8,?24); ????????}else{ ????????????return?null; ????????} ????} ????/** ?????*?MD5?16bit?大寫. ?????*?@param?readyEncryptStr?ready?encrypt?string ?????*?@return?String?encrypt?result?string ?????*?@throws?NoSuchAlgorithmException ?????*?*/ ????public?static?final?String?MD5_16bit_upper(String?readyEncryptStr)?throws?NoSuchAlgorithmException?{ ????????return?MD5_16bit_lower(readyEncryptStr).toUpperCase(); ????} ????/** ?????*?MD5?32bit?小寫. ?????*?@param?readyEncryptStr?ready?encrypt?string ?????*?@return?String?encrypt?result?string ?????*?@throws?NoSuchAlgorithmException ?????*?*/ ????public?static?final?String?MD5_32bit_lower(String?readyEncryptStr)?throws?NoSuchAlgorithmException{ ????????if(readyEncryptStr?!=?null){ ????????????//Get?MD5?digest?algorithm's?MessageDigest's?instance. ????????????MessageDigest?md?=?MessageDigest.getInstance(ALGORITHM_MD5); ????????????//Use?specified?byte?update?digest. ????????????md.update(readyEncryptStr.getBytes()); ????????????//Get?cipher?text ????????????byte?[]?b?=?md.digest(); ????????????//The?cipher?text?converted?to?hexadecimal?string ????????????StringBuilder?su?=?new?StringBuilder(); ????????????//byte?array?switch?hexadecimal?number. ????????????for(int?offset?=?0,bLen?=?b.length;?offset?以上就是小編今天的分享了,希望可以幫助到大家。