a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 188|回复: 0

[基础知识] JAVA面向对象编程课堂笔记29

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
class ObjectOutputStream也是过滤流,使节点流直接获得输出对象。 # [8 y# ?8 W0 V6 V& U* B9 v" v0 E' e
最有用的方法:WriteObject(Object b) - R7 z  ^  W5 o. a7 ^- i/ m
用流传输对象称为对象的序列化,但并不使所有的对象都可以进行序列化的。只有在实现类时必须实现一个接口:IO包下的Serializable(可序列化的)。此接口没有任何的方法,这样的接口称为标记接口。 & E; C: P) B# c, Z# x& k: y
Class Student implements Serializable
/ a% X# q. l: }把对象通过流序列化到某一个持久性介质称为对象的可持久化。 " b3 x4 u2 s3 m; s' J: {% n
Hibernate就是研究对象的可持久化。 : U9 Z" {4 C% q3 Z% @$ o; e- W
ObuectInputStream  in  =new  ObjectInputStream; 4 f: ]4 l( v6 q5 D  o
Object o1=in.readObuect();
3 ?7 Y, }5 R$ U+ l( N: G1 `Student s1=(Student)o1;
. x2 b/ p0 U! d. W+ h. Q, y# C" F( j$ p注意:因为o1是一个对象,因为需要对其进行保存。
- {' s# H: u8 e) Y  
; W2 w$ a2 K4 [7 R( a; V7 uTransient用来修饰属性。
" l( s- Z- ^& \  k7 L Transient int num;
% z) y0 l1 j9 Y% P% S表示当我们对属性序列化时忽略这个属性(即忽略不使之持久化)。
, U# z& \% T. Y所有属性必须都是可序列化的,特别是当有些属性本身也是对象的时候,要尤其注意这一点。 ) y2 G( ^1 g5 V* Q( a
判断是否一个属性或对象可序列化:Serialver。 7 w- t6 M; {/ w
Serialver TestObject(TestObject必须为已经编译)   O: M' ~8 m+ o8 u  Z
执行结果:如果不可序列化;则出现不可序列化的提示。如果可以序列化,那么就会出现序列化的ID:UID。 , F; @+ v0 l: h. _" _
java.until.*有
4 ?. T1 A( J1 d8 J; sStringTokenizer(参数1,参数2)按某种符号隔开文件 % q8 A& p" Q- |/ T# e4 Z
StringTokenizer(s,”:”) 用“:”隔开字符,s为对象。
5 t3 t* t+ e9 b4 E/ l  0 ]8 X3 P. A+ }9 P: X  y
练习:将一个类序列化到文件,然后读出。下午: 8 c0 @) k% X' f  o0 e+ s
1、网络基础知识
) F; i1 |, ^4 ~2 f2 e2、JAVA网络编程 ' x/ ]7 f, E5 m6 v' @3 H5 E
  
+ _# X, n! {( Z8 t网络与分布式集群系统的区别:每个节点都是一台计算机,而不是各种计算机内部的功能设备。 6 f2 i) ~4 K# v: G6 N
Ip:具有全球唯一性,相对于internet,IP为逻辑地址。
9 A  V1 a" \+ e9 h) `端口(port):一台PC中可以有65536个端口,进程通过端口交换数据。连线的时候需要输入IP也需要输入端口信息。 7 ?- D* k/ f! c2 z
计算机通信实际上的主机之间的进程通信,进程的通信就需要在端口进行联系。
, _) ]; X3 o! V% ~' u: ~192.168.0.23:21 - f, K  F8 @! L+ ^8 }9 y0 h  A
协议:为了进行网络中的数据交换(通信)而建立的规则、标准或约定。
5 V- e- G' B* A1 q: q不同层的协议是不同的。 , @- Z/ @/ r1 l" ~6 U. [
  - p' E. u$ V$ S5 z! D) F" l
网络层:寻址、路由(指如何到达地址的过程) 5 G& e" p! b, R8 g
传输层:端口连接 - b" u! W9 {' T) }
TCP模型:应用层/传输层/网络层/网络接口
3 `% X  D4 @. |5 b/ o端口是一种抽象的软件结构,与协议相关:TCP23端口和UDT23端口为两个不同的概念。 $ I6 N+ C$ H9 w9 }; ]7 \
端口应该用1024以上的端口,以下的端口都已经设定功能。 3 A0 x: o" f: v+ v4 L
套接字(socket)的引入: . ~$ ?5 F  N4 Y8 k: `
Ip+Port=Socket(这是个对象的概念。) - M7 K% n6 K, M0 ?
Socket为传输层概念,而JSP是对应用层编程。例: ' Z- I1 F  i: s) P
java.net.*; " P% u" d* {) D# z, m( T* d
(Server端定义顺序) % h: J: I% l& `! C$ b9 ]
ServerSocket(intport)
) U* j) l" b2 |3 g- z, I8 _) SSocket.accept();//阻塞方法,当客户端发出请求是就恢复
8 n  G+ [' q0 `" P  G( Q1 g如果客户端收到请求:
2 B' ?' I5 R+ T5 h* t; Z则Socket SI=ss.accept(); & m( O- |  L7 p: {
注意客户端和服务器的Socket为两个不同的socket。 / M+ @, h8 M& x* F2 b
Socket的两个方法:
/ G; I: x9 X0 \, m. w8 AgetInputStream():客户端用 : X- y) a/ s; o( W, a) V& {% l/ c
  getOutputStream() 服务器端用 0 g8 z( P' i1 Z5 |; a" H+ z) G
使用完毕后切记Socket.close(),两个Socket都关,而且不用关内部的流。
( O) h# F+ I( y/ A! o5 c1 p在client端,Socket s=new Socket(“127.0.0.1”,8000); - o; w% g9 I3 @
127.0.0.1为一个默认本机的地址。
8 @* x6 b( P0 h! \4 ?, S练习:
4 ~1 S3 Z$ f- ]' a- |9 p6 y1、客户端向服务器发出一个字符串,服务器转换成大写传回客户端。
/ Q( J! p) L; a( d% [+ ^0 Z大写的函数:String.toUpperCase()   M0 J/ V+ q. o; O- v2 B7 _% d
2、服务器告诉客户端:“自开机以来你是第n 个用户”。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-8 05:41 , Processed in 0.209124 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表