摘要:中構(gòu)造字節(jié)流的一種實(shí)現(xiàn)專門創(chuàng)建一個類來保存指定數(shù)提示數(shù)據(jù)超了設(shè)置一個值到第一位將列表中的數(shù)據(jù)合并成一個數(shù)據(jù)
java中構(gòu)造字節(jié)流的一種實(shí)現(xiàn)
import java.util.ArrayList; import java.util.List; /** * Created by kaven on 2018/4/2. */ public class TestBytes { /** * 專門創(chuàng)建一個類來保存指定byte數(shù) */ public class MyByte { byte[] data; MyByte(int n) { data = new byte[n]; } void setData(String s) { byte[] tmp = s.getBytes(); // 提示數(shù)據(jù)超了 if (tmp.length > data.length) { System.err.print("too many data"); } for (int i = 0; i < this.data.length && i < tmp.length; i++) { data[i] = tmp[i]; } } // 設(shè)置一個值到第一位 void setData(int i) { data[0] = (byte) i; } byte[] getByte() { return data; } int size() { return data.length; } } void login() { MyByte msgType = new MyByte(1); MyByte userId = new MyByte(16); MyByte msg = new MyByte(12); msgType.setData(1); userId.setData("1"); msg.setData("222"); Listlist = new ArrayList(); list.add(msgType); list.add(userId); list.add(msg); byte[] res = join(list); System.out.print(res.toString()); } /** * 將列表中的數(shù)據(jù)合并成一個數(shù)據(jù) * @param list * @return */ private byte[] join(List list) { int count = 0; for (int i = 0; i < list.size(); i++) { count += list.get(i).size(); } byte[] res = new byte[count]; int start = 0; for (int i = 0; i < list.size(); i++) { byte[] tmp = list.get(i).getByte(); for (int j = 0; j < tmp.length; j++) { res[start] = tmp[j]; start += 1; } } return res; } public static void main(String args[]) { TestBytes a = new TestBytes(); a.login(); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/68928.html
摘要:是一個系統(tǒng)支持的所有字符的集合,包括各國家文字標(biāo)點(diǎn)符號圖形符號數(shù)字等字符集簡體中文碼表。支持中國國內(nèi)少數(shù)民族的文字,同時支持繁體漢字以及日韓漢字等字符集為表達(dá)任意語言的任意字符而設(shè)計(jì),是業(yè)界的一種標(biāo)準(zhǔn),也稱為統(tǒng)一碼標(biāo)準(zhǔn)萬國碼。 1 File1.1 File類的概述和構(gòu)造方法File: 它是文件和目錄路徑名的抽象...
摘要:在加載階段,虛擬機(jī)要完成件事情通過一個類的全限定名來獲取定義此類的二進(jìn)制字節(jié)流。前面的階段中,除了加載的時候,可以由用戶指定自定義類加載器之外,別的都是由虛擬機(jī)主導(dǎo)控制。 java類加載機(jī)制 代碼編譯的結(jié)果從本地機(jī)器碼轉(zhuǎn)變?yōu)樽止?jié)碼,是存儲格式發(fā)展的一小步,確實(shí)編程語言發(fā)展的一大步 虛擬機(jī)把描述類的數(shù)據(jù)從class文件加載到內(nèi)存,并對數(shù)據(jù)進(jìn)行校驗(yàn)、轉(zhuǎn)換解析和初始化,最終形成可以被虛擬機(jī)直...
摘要:驗(yàn)證過程驗(yàn)證過程的目的是為了確保文件的字節(jié)流中包含的信息符合當(dāng)前虛擬機(jī)的要求,并且不會危害虛擬機(jī)自身的安全。二虛擬機(jī)字節(jié)碼執(zhí)行引擎虛擬機(jī)的執(zhí)行引擎自行實(shí)現(xiàn),可以自行制定指令集與執(zhí)行引擎的結(jié)構(gòu)體系。 本篇博客主要針對Java虛擬機(jī)的類加載機(jī)制,虛擬機(jī)字節(jié)碼執(zhí)行引擎,早期編譯優(yōu)化進(jìn)行總結(jié),其余部分總結(jié)請點(diǎn)擊Java虛擬總結(jié)上篇 。 一.虛擬機(jī)類加載機(jī)制 概述 虛擬機(jī)把描述類的數(shù)據(jù)從Clas...
摘要:分類一按操作方式類結(jié)構(gòu)字節(jié)流和字符流字節(jié)流以字節(jié)為單位,每次次讀入或讀出是位數(shù)據(jù)。該對象并不是流體系中的一員,其封裝了字節(jié)流,同時還封裝了一個緩沖區(qū)字符數(shù)組,通過內(nèi)部的指針來操作字符數(shù)組中的數(shù)據(jù)。 分類一:按操作方式(類結(jié)構(gòu)) 字節(jié)流和字符流: 字節(jié)流:以字節(jié)為單位,每次次讀入或讀出是8位數(shù)據(jù)。可以讀任何類型數(shù)據(jù)。 字符流:以字符為單位,每次次讀入或讀出是16位數(shù)據(jù)。其只能讀取字符類...
任何程序都需要加載到內(nèi)存才能與CPU進(jìn)行交流 同理, 字節(jié)碼.class文件同樣需要加載到內(nèi)存中,才可以實(shí)例化類 ClassLoader的使命就是提前加載.class 類文件到內(nèi)存中 在加載類時,使用的是Parents Delegation Model(溯源委派加載模型) Java的類加載器是一個運(yùn)行時核心基礎(chǔ)設(shè)施模塊,主要是在啟動之初進(jìn)行類的加載、鏈接、初始化 showImg(https://s...
閱讀 3160·2021-11-19 09:40
閱讀 3647·2021-11-16 11:52
閱讀 2980·2021-11-11 16:55
閱讀 3171·2019-08-30 15:55
閱讀 1176·2019-08-30 13:08
閱讀 1656·2019-08-29 17:03
閱讀 3012·2019-08-29 16:19
閱讀 2579·2019-08-29 13:43