仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 674|回复: 18
打印 上一主题 下一主题

[学习教程] 发布一篇谈谈J2SE中的序列化之当序列化遭受承继

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:32:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。
当一个父类完成Serializable接口后,他的子类都将主动的完成序列化。
以下考证了这一点:
packageSerial;
importjava.io.Serializable;
publicclassSuperCimplementsSerializable{//父类完成了序列化
intsupervalue;
publicSuperC(intsupervalue){
this.supervalue=supervalue;
}
publicStringtoString(){
return"supervalue:"+supervalue;
}
}
publicclassSubCextendsSuperC{//子类
intsubvalue;
publicSubC(intsupervalue,intsubvalue){
super(supervalue);
this.subvalue=subvalue;
}
publicStringtoString(){
returnsuper.toString()+"sub:"+subvalue;
}
}
publicclassTest1{
publicstaticvoidmain(String[]args){
SubCsubc=newSubC(100,200);
FileInputStreamin=null;
FileOutputStreamout=null;
ObjectInputStreamoin=null;
ObjectOutputStreamoout=null;
try{
out=newFileOutputStream("Test1.txt");//子类序列化
oout=newObjectOutputStream(out);
oout.writeObject(subc);
oout.close();
oout=null;
in=newFileInputStream("Test1.txt");
oin=newObjectInputStream(in);
SubCsubc2=(SubC)oin.readObject();//子类反序列化
System.out.println(subc2);
}catch(Exceptionex){
ex.printStackTrace();
}finally{
…此处省略
}
}
}
运转了局以下:
supervalue:100sub:200
可见子类乐成的序列化/反序列化了。
怎管让子类完成序列化看起来是一件很复杂的事变,但有的时分,常常我们不克不及够让父类完成Serializable接口,缘故原由是偶然候父类是笼统的(这并没有干系),而且父类不克不及够强迫每一个子类都具有序列化的才能。换句话说父类计划的目标仅仅是为了被承继。
要为一个没有完成Serializable接口的父类,编写一个可以序列化的子类是一件很贫苦的事变。javadocs中提到:
“Toallowsubtypesofnon-serializableclassestobeserialized,thesubtypemayassumeresponsibilityforsavingandrestoringthestateofthesupertypespublic,protected,and(ifaccessible)packagefields.Thesubtypemayassumethisresponsibilityonlyiftheclassitextendshasanaccessibleno-argconstructortoinitializetheclasssstate.ItisanerrortodeclareaclassSerializableifthisisnotthecase.Theerrorwillbedetectedatruntime.”
<p>
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)
莫相离 该用户已被删除
沙发
发表于 2015-1-19 06:30:08 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
小妖女 该用户已被删除
板凳
发表于 2015-1-24 10:01:11 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
再现理想 该用户已被删除
地板
发表于 2015-1-29 09:13:33 来自手机 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
分手快乐 该用户已被删除
5#
发表于 2015-2-1 10:33:06 | 只看该作者
是一种使用者不需花费很多时间学习的语言
变相怪杰 该用户已被删除
6#
发表于 2015-2-3 23:35:12 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
简单生活 该用户已被删除
7#
发表于 2015-2-9 07:07:36 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
第二个灵魂 该用户已被删除
8#
 楼主| 发表于 2015-2-11 08:29:54 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
兰色精灵 该用户已被删除
9#
发表于 2015-2-12 07:11:15 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
若天明 该用户已被删除
10#
发表于 2015-3-2 23:54:50 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
海妖 该用户已被删除
11#
发表于 2015-3-8 17:12:05 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
爱飞 该用户已被删除
12#
发表于 2015-3-16 06:52:51 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
飘飘悠悠 该用户已被删除
13#
发表于 2015-3-17 00:10:21 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
因胸联盟 该用户已被删除
14#
发表于 2015-3-23 08:38:06 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
灵魂腐蚀 该用户已被删除
15#
发表于 2015-3-27 18:08:33 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
不帅 该用户已被删除
16#
发表于 2015-4-1 04:00:33 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
乐观 该用户已被删除
17#
发表于 2015-4-9 09:01:02 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
柔情似水 该用户已被删除
18#
发表于 2015-4-25 05:20:18 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
愤怒的大鸟 该用户已被删除
19#
发表于 2015-4-26 02:38:31 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 17:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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