課程
/后端開發(fā)
/Java
/二進(jìn)制基礎(chǔ)
老師前面的主程序都沒有拋出異常,怎么最后又變成拋出異常了?
2016-03-02
源自:二進(jìn)制基礎(chǔ) 5-1
正在回答
因為下一節(jié)在傳入?yún)?shù)的時候,系統(tǒng)會認(rèn)為你這里傳入的編碼方式參數(shù)會有編碼方式轉(zhuǎn)化的異常,所以會報錯。實際上傳入的參數(shù)識別是運行其的事情,但是這里的編譯規(guī)則則會要求你處理可能出現(xiàn)的異常。
public static void main(String[] args) throws Exception{//這個地方拋不拋出異常都不會報錯
byte[]arr=Covert.intToBytes(8143);
for(byte b:arr){
System.out.print(b+" ");
}
System.out.println();
System.out.println(Covert.bytesToInt(arr));
下一節(jié)里的如果主程序沒有加拋出異常的話,就會報錯
public class EncodeDemon {
public static void main(String[] args) throws Exception {//為什么這個地方要拋出異常
// TODO Auto-generated method stub
? ? ? ? ?String s="慕課ABC";
? ? ? ? ?byte[]byte1=s.getBytes();//轉(zhuǎn)換成字節(jié)序列用的是項目編碼默認(rèn)的編碼GBK ? ??
? ? ? ? ?for(byte b:byte1){
? ? ? ? //把字節(jié)(轉(zhuǎn)換為int型)以十六進(jìn)制方式顯示
? ? ? ? System.out.print(Integer.toHexString(b&0xff)+" ");//b&0xff取低八位,前面的0都不要
? ? ? ? ?}
? ? ? ? ?System.out.println();
? ? ? ? ?byte[]byte2=s.getBytes("gbk");
? ? ? ? ?for(byte b:byte2){
? ? ? ? //gbk編碼中文占兩個字節(jié),英文占一個字節(jié)
? ? ? ? System.out.print(Integer.toHexString(b&0xff)+" ");
? ? ? ? ?byte[]byte3=s.getBytes("utf-8");
? ? ? ? ?for(byte b:byte3){
? ? ? ? //utf-8編碼中文占三個字節(jié),英文占一個字節(jié)
? ? ? ? ?//java是雙字節(jié)編碼 utf-16be
? ? ? ? ?byte[]byte4=s.getBytes("utf-16be");
? ? ? ? ?for(byte b:byte4){
? ? ? ? //utf-16be中文占用兩個字節(jié),英文占用兩個字節(jié)
能讓me看一下代碼嗎
舉報
二進(jìn)制是計算機(jī)唯一能識別的語言,是學(xué)習(xí)計算機(jī)技術(shù)必備的知識
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-05-02
因為下一節(jié)在傳入?yún)?shù)的時候,系統(tǒng)會認(rèn)為你這里傳入的編碼方式參數(shù)會有編碼方式轉(zhuǎn)化的異常,所以會報錯。實際上傳入的參數(shù)識別是運行其的事情,但是這里的編譯規(guī)則則會要求你處理可能出現(xiàn)的異常。
2016-03-03
public static void main(String[] args) throws Exception{//這個地方拋不拋出異常都不會報錯
byte[]arr=Covert.intToBytes(8143);
for(byte b:arr){
System.out.print(b+" ");
}
System.out.println();
System.out.println(Covert.bytesToInt(arr));
下一節(jié)里的如果主程序沒有加拋出異常的話,就會報錯
public class EncodeDemon {
public static void main(String[] args) throws Exception {//為什么這個地方要拋出異常
// TODO Auto-generated method stub
? ? ? ? ?String s="慕課ABC";
? ? ? ? ?byte[]byte1=s.getBytes();//轉(zhuǎn)換成字節(jié)序列用的是項目編碼默認(rèn)的編碼GBK ? ??
? ? ? ? ?for(byte b:byte1){
? ? ? ? //把字節(jié)(轉(zhuǎn)換為int型)以十六進(jìn)制方式顯示
? ? ? ? System.out.print(Integer.toHexString(b&0xff)+" ");//b&0xff取低八位,前面的0都不要
? ? ? ? ?}
? ? ? ? ?System.out.println();
? ? ? ? ?byte[]byte2=s.getBytes("gbk");
? ? ? ? ?for(byte b:byte2){
? ? ? ? //gbk編碼中文占兩個字節(jié),英文占一個字節(jié)
? ? ? ? System.out.print(Integer.toHexString(b&0xff)+" ");
? ? ? ? ?}
? ? ? ? ?System.out.println();
? ? ? ? ?byte[]byte3=s.getBytes("utf-8");
? ? ? ? ?for(byte b:byte3){
? ? ? ? //utf-8編碼中文占三個字節(jié),英文占一個字節(jié)
? ? ? ? System.out.print(Integer.toHexString(b&0xff)+" ");
? ? ? ? ?}
? ? ? ? ?System.out.println();
? ? ? ? ?//java是雙字節(jié)編碼 utf-16be
? ? ? ? ?byte[]byte4=s.getBytes("utf-16be");
? ? ? ? ?for(byte b:byte4){
? ? ? ? //utf-16be中文占用兩個字節(jié),英文占用兩個字節(jié)
? ? ? ? System.out.print(Integer.toHexString(b&0xff)+" ");
? ? ? ? ?}
? ? ? ? ?System.out.println();
2016-03-02
能讓me看一下代碼嗎