java中的write(int n) 要小心
今天為了寫一個socket 中專服務,
其中接受請求的CRC32 值 為4位 讀取後,轉發給另一個socket時 直接用write(int n) 這個方法直接輸出時,發現返回異常,
後來覺得是輸出CRC32 有問題,查詢api 看到write(int n) 是要寫入的位元組是引數 b
的八個低位。b
的 24 個高位將被忽略。
解決方法
所以還是自己 int 轉換成 byte[] 陣列
byte[] result = new byte[4];
result[0] = (byte)((hexCrc32value >> 24) & 0xFF);//
result[1] = (byte)((hexCrc32value >> 16) & 0xFF);//
result[2] = (byte)((hexCrc32value>> 8) & 0xFF); //
result[3] = (byte)(hexCrc32value& 0xFF);//
相關推薦
java中的write(int n) 要小心
今天為了寫一個socket 中專服務, 其中接受請求的CRC32 值 為4位 讀取後,轉發給另一個socket時 直接用write(int n) 這個方法直接輸出時,發現返回異常, 後來覺得是輸出CRC32 有問題,查詢api 看到write(int n) 是要寫入的位元
Java 中的 int 型轉為 long 型
sta color java pan pri 技術分享 sys static info 先將 int 型轉為 String 型,然後再將 String 轉為 long 型,如下圖: public class TestIntToLong { public s
java中POJO類為什麼要實現序列化
序列化就是一種用來處理物件流的機制,所謂物件流也就是將物件的內容進行流化。可以對流化後的物件進行讀寫操作,也可將流化後的物件傳輸於網路之間。序列化是為了解決在對物件流進行讀寫操作時所引發的問題。序列化的實現:將需要被序列化的類實現Serializable介面,該介面沒有需要實現的方法,impleme
java中替換\r\n遇到的坑
本人在專案中需要將資料庫中的\r\n轉換成html頁面可識別的<br />,於是使用了text.replaceAll("(\\r\\n|\\r|\\n|\\n\\r)", "<br />");來進行替換,發現竟然替換不了!!!列印輸出的內容中毫無變化。 然後嘗試換其他的方法
java中的\r \n \t轉義符
java中的\r \n \t 看下面的程式碼和截圖,有知道\r \n \t具體含義或者是知道他們的具體原理的,可以在下面給我留言,我總感覺網上查到的一些解釋和說明,比較籠統,而且有時候\r和\n看不出什麼效果 網上的一些解釋和說明: \t表示tab鍵按一下,\n表示回車換行
java中String,int,Integer,char 型別轉換
如何將整數 int 轉換成Integer ? Integer integer=new Integer(i); 如何將Integer 轉換成 int ? int num=Integer.intValue(); 如何將字串 String 轉換成整數 int? int i =
在Java中String類為什麼要設計成final?String真的不可變嗎?其他基本型別的包裝類也是不可變的嗎?
最近突然被問到String為什麼被設計為不可變,當時有點懵,這個問題一直像bug一樣存在,竟然沒有發現,沒有思考到,在此總結一下。 1.String的不可變 String類被final修飾,是不可繼承和修改的。當一個String變數被第二次賦值時,不是在原有記憶體地址上修改資料,而是在記憶體中重
Java中,int轉byte陣列
private static final int COMMAND_NO_READ_RESOURCE = 0x0224; HexUtil.intToBytes(COMMAND_NO_READ_RESOURCE, 2) /** * Transform integer ar
Java Collections.nCopies(int n, T o) 的作用 -- 建立一個包含n個重複元素o的集合
Collections.nCopies(int n, T o) 建立一個包含n個重複元素o的集合 可以隨意使用這個 set(int index, E element) 隨意設定index是n的value,而不會出現 IndexOutOfBoundsException 異常 當然在陣列
java中宣告常量為什麼要用static修飾
今天定義一個類常量,想著也只有這個類可以用到,就沒用static關鍵字修飾。結果sonar程式碼檢查提示:Rename this field "PERSON_TYPE_USER" to match the regular expression '^[a-z][a-zA-Z0-
java中的Int範圍
二進位制值(1位元組) 十進位制值 1000 0000 -128 1000 0001 -127 1000 0010 -126 1000 0011 -125 ... ... 1111 1110 -2 1111 1111 -1 首先我們看到,從-1到-128,其二進位制的最高位
java中string轉陣列要用到轉義字元
String str = "aaa|bbb|ccc"; String[] strArr = new String[] {}; 之前在網上查資料看到都是strArr=str.split("|"),但這樣出來的陣列是a,a,a,|,b,b,b,|,c,c,c,後來發現需要用轉義
中文亂碼在java中URLEncoder.encode方法要呼叫兩次解決 (原理)
一、場景: 1、我在客戶端要通過get方式呼叫伺服器端的url,將中文引數做utf-8編碼,需要在js中兩次的進行編碼,伺服器端才能用decode方法一次獲取。 例如: var xing=encodeURIComponent(encodeURIComponent(xing)); 2、如果我
Java 中一個int型陣列的求最大值最小值
小友今日看單元測試,發現的一個測試用例的程式碼。而測試的是某個類的最大值,最小值方法。 在此把測試類發上來。保留此地,如有人對此有興趣,看以看下。閒話少說: public class MaxMinTool { public static int getMax(int[
Java 中的類為什麼要實現序列化呢 / JAVA中序列化和反序列化中的靜態成員問題
很多人覺得自己寫得 Java 程式碼中,新建的 pojo 物件要實現序列化是為了要儲存到硬碟上,其實呢,實現序列化和儲存到硬碟上沒有必然的關係。 以下圖舉例: 假設左邊的是你的電腦,也就是客戶端,右邊的是伺服器。之前你的客戶端和伺服器可能都在同一個電腦上,都是 Windows 下,那麼右邊的伺服器也可以放
java中Sting, int, char 如何相互轉換
如何將字串 String 轉換成整數 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何將字串 String 轉換成Integer ? Integer integer=Integer.va
java中根據int值來對應Enum
public enum XXXEnum{ Customer(1,"customer"); XXXEnum(int code,String value){ this.code = code; this.value = valu
中文亂碼在java中URLEncoder.encode方法要呼叫兩次解決
System.out.println(java.net.URLDecoder.decode(name, "UTF-8")); 則結果是列印“測試”。 這就印證了 之前為什麼我在servlet中呼叫java.net.URLDecoder.decode(request.getParameter("name
java中為什麽要重寫hashCode和equals?
ntb 原來 info 源碼 元素 其中 嚴格 hashcode 列表 Java集合中有兩個類:List,Set List是有序可以重復,Set是無序不可以重復 這樣添加元素時就要判斷元素是否重復 此時就要用到object.equals()方法 但如果集合中元素太多
java中的int與byte的轉化
為什麽 基礎上 問題 操作 數組 相同 static turn 都是 java中的int與byte的轉化 1、基礎準備 1.1、原碼 就是二進制碼,最高位為符號位,0表示正數,1表示負數,剩余部分表示真值 1.2、反碼 在原碼的基礎上,正數反碼就是他本身,負數除符號位之外全