关键词:
问题先放在这里,稍后我会做出解答
已知类有Test和Test2,问两次主程序的输出结果是多少(SerializeUtil只是序列化的工具类)
类Test
public class Test implements Serializable{ private static final long serialVersionUID = 1L; private int num; private transient String str; public Test(){ this.num = 0xFFFF; this.str = "string"; } public Test(int num, String str) { this.num = num; this.str = str; } @Override public String toString() { return num + ","+str; } }
类Test2
public class Test2 implements Externalizable,Serializable{ private static final long serialVersionUID = 1L; private int num; private transient String str; public Test2() { this.num = 0xFFFF; this.str = "hello"; } public Test2(int num, String str) { this.num = num; this.str = str; } @Override public void writeExternal(ObjectOutput out) throws IOException { out.write(num); } @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { this.num = in.read(); } @Override public String toString() { return num + ","+str; } }
两个主程序:
public static void main(String[] args) { Test test = new Test(); File file = new File("d:/test.bin"); SerializeUtil.writeObject(file,test); Test test2 = (Test) SerializeUtil.readObject(file); System.out.println(test); System.out.println(test2); }
public static void main(String[] args) { Test2 test2 = new Test2(); File file = new File("d:/test2.bin"); SerializeUtil.writeObject(file,test2); Test2 t = (Test2) SerializeUtil.readObject(file); System.out.println(test2); System.out.println(t); }
附SerializeUtil的代码,可无视——
1 public class SerializeUtil { 2 3 public static void writeObject(File file,Object object){ 4 FileOutputStream fileOutputStream = null; 5 try { 6 fileOutputStream = new FileOutputStream(file); 7 ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); 8 objectOutputStream.writeObject(object); 9 objectOutputStream.flush(); 10 }catch (IOException e){ 11 e.printStackTrace(); 12 }finally { 13 if(fileOutputStream!=null){ 14 try { 15 fileOutputStream.close(); 16 } catch (IOException e) {} 17 } 18 } 19 } 20 21 public static Object readObject(File file){ 22 FileInputStream fileInputStream = null; 23 try { 24 fileInputStream = new FileInputStream(file); 25 ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream); 26 return objectInputStream.readObject(); 27 }catch (ClassNotFoundException|IOException e){ 28 e.printStackTrace(); 29 }finally { 30 if(fileInputStream!=null){ 31 try { 32 fileInputStream.close(); 33 } catch (IOException e) {} 34 } 35 } 36 return null; 37 } 38 39 }
答案如下:
/* 第一个主程序: 65535,string 65535,null 第二个主程序: 65535,hello 255,hello */
这些芯片知识,你知多少
...牛了,所以分享给大家。点这里可以跳转到教程。”关于芯片,我想大家应该不陌生,因为这两年有关芯片的话题经常登上各大媒体的热搜榜。我们听到最多的就是芯片短缺ÿ 查看详情
这些芯片知识,你知多少
...牛了,所以分享给大家。点这里可以跳转到教程。”关于芯片,我想大家应该不陌生,因为这两年有关芯片的话题经常登上各大媒体的热搜榜。我们听到最多的就是芯片短缺ÿ 查看详情
这些芯片知识,你知多少
...牛了,所以分享给大家。点这里可以跳转到教程。”关于芯片,我想大家应该不陌生,因为这两年有关芯片的话题经常登上各大媒体的热搜榜。我们听到最多的就是芯片短缺ÿ 查看详情
css知多少——float下篇(转)
...们分上、下两篇来介绍,上篇已经写完,这是下篇。建议大家先把上篇看了,再来看下文,精彩内容不要掠过啊。1.清除float 《上篇》中我们提到,float具有“破坏性”,它会导致父元素“坍塌”,这将不是所要看到的。如何... 查看详情
从一道ctf看php反序列化漏洞的应用场景(代码片段)
目录0x00first0x01我打我自己之---序列化问题0x02[0CTF2016]piapiapia0x00first前几天joomla爆出个反序列化漏洞,原因是因为对序列化后的字符进行过滤,导致用户可控字符溢出,从而控制序列化内容,配合对象注入导致RCE。刚好今天刷CTF题... 查看详情
typescriptinterfacevstype知多少(代码片段)
...二者可以互换。在写TS的时候,想必大家都问过自己这个问题,我到底应该用哪个呢?希望看完本文会给你一个答案。知道什么时候应该用哪个,首先应该了解二者之间的相同点和不同点,再做出选择。接口vs类型别名相同点1.都... 查看详情
java继承知多少,本文详细告诉你
...是一种面向对象的编程语言,每当我们提到Java的特性,大家一定会在脑海里浮现出Java中的继承、多态以及封装。我们在日常的开发中经常会用到这三种特性,本文首先给大家介绍这三大特性之一——继承。1.1继承的实现... 查看详情
前端安全知多少
说到安全,大家脑海浮现的一定是这种场景。他们噼噼啪啪敲几行代码,就能控制对方电脑于千里之外,酷到没朋友。但这些似乎离前端还挺远的。常常听到什么SQL注入,缓冲区溢出,DDoS,CC攻击,好像和前端也没啥关系,渐渐... 查看详情
关于java序列化的问题你真的会吗?
引言在持久化数据对象的时候我们很少使用Java序列化,而是使用数据库等方式来实现。但是在我看来,Java序列化是一个很重要的内容,序列化不仅可以保存对象到磁盘进行持久化,还可以通过网络传输。在平时的面试当中,序... 查看详情
关于java序列化的问题你真的会吗?
引言在持久化数据对象的时候我们很少使用Java序列化,而是使用数据库等方式来实现。但是在我看来,Java序列化是一个很重要的内容,序列化不仅可以保存对象到磁盘进行持久化,还可以通过网络传输。在平时的面试当中,序... 查看详情
博弈论,你知多少
...发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。”在《从“名将之路... 查看详情
博弈论,你知多少
...发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。”在《从“名将之路... 查看详情
关于函数,你知多少?
我们都知道,JS中没有的类的概念。而函数则是JS中很重要,很重要,很重要的一点。理解函数也是非常有必要的。先来看看函数的定义。如下:1//函数声明2//函数声明不会立即调用,可以在你需要的时候调用它3functiondemo(){45}67//... 查看详情
关于java输出的一道题(代码片段)
今天在我的后宫群看到了一道有意思的java题,分享一下题目是这样的看到第一眼,反应:重载输出println也能重载?据说正常反应应该是在method中输出然后直接退出,果然是自己智商不够既然不确定,那就StackOverflow一下,找了找... 查看详情
这些芯片知识,你知多少
...牛了,所以分享给大家。点这里可以跳转到教程。”关于芯片,我想大家应该不陌生,因为这两年有关芯片的话题经常登上各大媒体的热搜榜。我们听到最多的就是芯片短缺,某某行业或某某公司又受了影响。与... 查看详情
http协议知多少-关于http1.xhttp2spdy的相关知识
作为网站开发的基础协议,我们知道浏览器上都有输出http这四个字母,这意味着什么呢?这就是最基础的HTTP协议。 逐浪君今天为各位大人准备了一些HTTP技术的知识,来和大家分享。 以下图为例: 这一个加载界面,... 查看详情
http协议知多少-关于http1.xhttp2spdy的相关知识
作为网站开发的基础协议,我们知道浏览器上都有输出http这四个字母,这意味着什么呢?这就是最基础的HTTP协议。 逐浪君今天为各位大人准备了一些HTTP技术的知识,来和大家分享。 以下图为例: 这一个加载界面,... 查看详情
5g应用发展情况,你知多少
...发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。”最近我在网上看到... 查看详情