java 32bit是什么,让我们一起了解一下?
32Bit的意思是“32位操作系统”,我们的CPU从原来的8位,16位,到现在的32位和64位,cpu处理计算的时候“数据”和“指令”是不同对待的,32位的CPU就可以一次处理一个a=a+b这样的命令了。
那么java 32bit在使用中有哪些优缺点?
优点:简化了软件设计的复杂度。
缺点:硬件设计更加复杂,计算速度下降。
扩展一下,什么是32位操作系统?
其实cpu的位是指一次性可处理的数据量是多少,1字节=8位,32位处理器可以一次性处理4个字节的数据量,依次类推,32位操作系统针对的32位的CPU设计,64位操作系统针对的64位的CPU设计。
操作系统只是硬件和应用软件中间的一个平台,我们的CPU从原来的8位,16位,到32位和64位,在实际使用中32位操作系统是可以使用4GB以上的内存的。
标准版的 32位版本支持2.93GB RAM,64位版本最高可支持 32 GB RAM。
企业版的 32 位版本最高可支持32 GB RAM, 64 位版本支持 1 TB RAM。
数据中心版的 32 位版本支持 64 GB RAM,64 位版本支持 1 TB RAM。
WEB版最高可支持2G RAM。
实际操作:
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 < bLen; offset++){ String haxHex = Integer.toHexString(b[offset] & 0xFF); if(haxHex.length() < 2){ su.append("0"); } su.append(haxHex); } return su.toString(); }else{ return null; } } /** * MD5 32bit 大写. * @param readyEncryptStr ready encrypt string * @return String encrypt result string * @throws NoSuchAlgorithmException * */ public static final String MD5_32bit_upper(String readyEncryptStr) throws NoSuchAlgorithmException{ return MD5_32bit_lower(readyEncryptStr).toUpperCase(); } /** * MD5 64bit 大写. * @param readyEncryptStr ready encrypt string * @return String encrypt result string * @throws NoSuchAlgorithmException * @throws UnsupportedEncodingException * */ public static final String MD5_64bit(String readyEncryptStr) throws NoSuchAlgorithmException, UnsupportedEncodingException { MessageDigest md = MessageDigest.getInstance(ALGORITHM_MD5); BASE64Encoder base64Encoder = new BASE64Encoder(); return base64Encoder.encode(md.digest(readyEncryptStr.getBytes(UTF_8))); } /** * 获取文件MD5,使用apache的org.apache.commons.codec.digest.DigestUtils; * @param filePath 文件路径 * @return String */ public static String MD5_File(String filePath) throws Exception { try (FileInputStream fis= new FileInputStream(filePath)) { return DigestUtils.md5Hex(IOUtils.toByteArray(fis)); } } public static void main(String[] args) throws Exception { System.out.println("16位小写:" + MD5Utils.MD5_16bit_lower("king")); System.out.println("16位大写:" + MD5Utils.MD5_16bit_upper("king")); System.out.println("32位小写:" + MD5Utils.MD5_32bit_lower("king")); System.out.println("32位大写:" + MD5Utils.MD5_32bit_upper("king")); System.out.println("64位大写:" + MD5Utils.MD5_64bit("king")); System.out.println("FILEMD5:" + MD5Utils.MD5_File("/Users/kingboy/Desktop/1.txt")); } }
以上就是小编今天的分享了,希望可以帮助到大家。