關於Java Socket網絡傳輸的序列化機制
採用Java Socket網絡傳輸的`序列化機制,將對象“壓扁”成二進制字節,將二進制字節在網絡中傳輸;
自定義協議,將對象用字符串描述出來,將字符串用二進制表示,在網絡中傳輸,在另外一邊用相反的策略解析這個字符串,重新構造業務對象,這個方法能夠在異構平台中進行傳輸而不變形,但是需要額外的編寫“壓扁”和“充氣”的代碼;
我們這裏用第一種方法:
age ;
rt ArrayInputStream;
rt ArrayOutputStream;
rt ;
rt InputStream;
rt OutputStream;
rt ception;
rt tStream;
rt ctInputStream;
rt ctOutputStream;
rt utStream;
rt ;
ic class Persistence {
ic static void main(String[] args) {
[] bs = tes();
16.//在網絡中進行傳輸
ytes(bs);
18.}
ic static byte[] toBytes() {
on p = new Person();
ame("corey");
all(171);
irthday(new Date());
ddress(new Address("yiyang", "ziyang"));
ArrayOutputStream out = new
ByteArrayOutputStream();
{
ctOutputStream oout = new ObjectOutputStream(out);
eObject(p);
29.} catch (IOException e) {
30.// TODO Auto-generated catch block
tStackTrace();
32.}
rn teArray();
34.}
ic static void getBytes(byte[] bs) {
{
ArrayInputStream byteIn = new
ByteArrayInputStream(bs);
ctInputStream in = new ObjectInputStream(byteIn);
on p = (Person) Object();
tln(ame());
tln(all());
tln(irthday());
tln(ddress()ity());
t(ddress()treet());
45.} catch (Exception e) {
46.// TODO Auto-generated catch block
tStackTrace();
48.}
49.}
50.}
其中服務端代碼片段為:
= equestSocket()nputStream();
= equestSocket()utputStream();
[] bs = tes();
tln("發送數字長度:"+th);
e(bs);
equestSocket()e();
57.客户端代碼片段為:
tStream in = nputStream();
[] bin = new byte[200];
length = 0;
e ((length = (bin)) != -1) {
tln("length:" + length);
ytes(bin);
64.}
-
關於Java的內省與反射
很多同學在深入的接觸Java語言後就會發現這樣兩個詞:反射(Reflection)和內省(Introspector),經常搞不清楚這到底是怎麼回事,在什麼場合下應用以及如何使用?下面YJBYS小編為大家整理了關於Java的內省與反射的文章,希望對你有所幫助。內省內省是Java語言對Bean類屬性...
-
sun認證java程序員考試大綱
SUN認證對於企業而言,可以藉助這項認證作為招聘人才的評判標準,或是作為衡量員工技術水準的依據。以下是小編整理的關於sun認證java程序員考試大綱,希望大家認真閲讀!課程目標:通過學習該課程學員可以具有以下能力:1、理解面向對象編程思想。2、熟悉掌握運用Java進...
-
SUN認證考試知識點:Java反射機制的應用
目標:用一個代理類實現兩個相似類的調用1.兩個相似類Man類Women類:代理類:packageReflect;importod;publicclassPerson{//代理類privateObjecttarget;//目標對象privateStringmethodName;//目標方法privateObject[]params;//參數數組privateMethodmethod;publicOb...
-
Java怎麼編寫Oracle存儲過程
通常我們都使用Ps/SQL為Oracle編寫存儲過程,從Oracle8開始我們可以有另一種選擇:Java。8.0開始,Oracle自帶一個JVM,內置對Java的支持,任何Java能做的事情你都可以放到Oracle裏面來做,你甚至可以在裏面操作db2。這讓Oracle具備了極其巨大的擴展能力,只要你願意,完全可以...