- 对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象
- 这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象的类型、对象的数据和对象中存 储的属性等信息
- 字节序列写到文件之后,相当于文件中持久保存了一个对象的信息
- 反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化
将Java对象的原始数据类型和图形写入OutputStream。 可以使用ObjectInputStream读取(重构)对 象。 可以通过使用流的文件来实现对象的持久存储。
如果流是网络套接字流,则可以在另一个主机上或 另一个进程中重构对象
学生类:
public class Student implements Serializable {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
测试类:
/*
NotSerializableException:抛出一个实例需要一个Serializable接口。 序列化运行时或实例的类可能会抛出此异常
类的序列化由实现java.io.Serializable接口的类启用。 不实现此接口的类将不会使任何状态序列化或反序列化
*/
public class ObjectOutputStreamDemo {
public static void main(String[] args) throws IOException {
//ObjectOutputStream(OutputStream out):创建一个写入指定的OutputStream的ObjectOutputStream
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("myOtherStream\\oos.txt"));
//创建对象
Student s = new Student("林青霞",30);
//void writeObject(Object obj):将指定的对象写入ObjectOutputStream
oos.writeObject(s);
//释放资源
oos.close();
}
}
ObjectInputStream反序列化先前使用ObjectOutputStream编写的原始数据和对象
public class ObjectInputStreamDemo {
public static void main(String[] args) throws IOException, ClassNotFoundException {
//ObjectInputStream(InputStream in):创建从指定的InputStream读取的ObjectInputStream
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("myOtherStream\\oos.txt"));
//Object readObject():从ObjectInputStream读取一个对象
Object obj = ois.readObject();
Student s = (Student) obj;
System.out.println(s.getName() + "," + s.getAge());
ois.close();
}
}
文章浏览阅读2.3k次。如果taskkill /f /pid 123 出现拒绝访问时,可使用以下方式删除进程:wmic process where name=‘qq.exe’ delete11如果这样还杀不死,恐怕就要进[安全模式]删除了。杀了进程,想删除文件,可以这样删除cmd下运行:DEL /F /A /Q 文件名抄自-吉吉教主...
文章浏览阅读201次。转自:http://www.itnose.net/detail/6132793.html使用Visual Studio开发Web网页的时候有这样的情况:想要在调试模式下让局域网的其他设备进行访问,以便进行测试。虽然可以部署到服务器中,但是却无法进行调试,就算是注入进程进行调试也是无法达到自己的需求;所以只能在Visual Studio-IIS Express 中进行调试。而于此将..._visual studio iis express debug localhost
文章浏览阅读1.5k次。首先创建一张用于测试的表,表明为 TREE,表中有3个字段,分别是,ID,NANE,UP_ID。UP_ID 是 ID 的上层,主要实现树形结构的存储。1.1 初始化测试数据1.1.1 写入数据1.1.2 树形结构如下图root(8)一(1)二(2)三(3)五(5)root(6)四(4)2. 树形结构遍历查询2.1 从父节点遍历查询结果如下:2.2 从子节点开始遍历查询结果是:2.3 start with 条件 connect by prior_oracle遍历查询结果集
文章浏览阅读5.1k次。安装gcc的软件依赖(已安装请跳过)yum install -y gcc gcc-c++ make automake安装wget(已安装请跳过)yum install -y wget下载cmake源代码包,可以去官网查看最新版的下载地址:https://cmake.org/download/wget “https://cmake.org/files/v3.10/cmake-3.10...._centos安装cmake
文章浏览阅读80次。有兴趣跟踪开源云中正在发生的事情吗? Opensource.com是您在开源云基础设施项目OpenStack中获取新闻的来源。 Web上的OpenStack 关于OpenStack,有很多有趣的东西。 这是一个样本: OpenStack Mitaka 版本 :Nova和Kuryr的下一步是什么? 不断发展的IT体系结构 :可能很难。 云原生如何需要文化变革 :转换IT运营..._kuryr nova
文章浏览阅读126次。去空格或者其他字符串trim() :去除首尾空白字符空白字符包括:\t,\n,"",\0,\xoBtrim($str,[$type]);rtrim():去除尾部空白字符chop() :rtrim别名ltrim():去除头部空白字符dirname():传入一个文件路径,返回去除该文件名的文件路径dirname($path);字符串生成与转化str_pad():填充字符串str_pad($str,$l..._3. 编写 个php函数,接受 个字符串参数,返回该字符串中最 的连续 串,
文章浏览阅读1.5k次。一、char*(char)转string(直接赋值)#include<iostream>#include<string>#include <typeinfo>using namespace std;int main(){ string str; const char* p = "ch"; //char p[] = "ch"; str = p; cout << str << endl; _c_str() 长度
文章浏览阅读1.9w次。linux查看cpu状态相关命令_linux查看cpu命令
文章浏览阅读3k次,点赞3次,收藏21次。在网络安全中,除了采用上述技术措施之外,加强网络的安全管理,制定有关规章制度,对于确保网络的安全、可靠地运行,将起到十分有效的作用。安全体系建设中,安全管理是一个非常重要的部分。任何的安全技术保障措施,最终要落实到具体的管理规章制度以及具体的管理人员职责上,并通过管理人员的工作得到实现。..._信息安全框架 安全制定、安全建设、运营、应急
文章浏览阅读1w次。当使用真机调试android程序时,有时需要在adb shell 里查询SQLite数据库。而有的手机例如华为p6,既没有root又没有自带SQLite3工具,那么如何解决这个问题呢? 1、root手机。在网上下载一键root工具,如百度一键root,并允许,使得手机获得root权限; 2、adb root。下载 Superuser Permissions 软件并运行。在cmd_android 使用sqlite3查询数据库
文章浏览阅读1.1w次,点赞3次,收藏3次。最近在学习vscode配置命令行编译,在网上参考了很多教程。基本上按部就班的配置。可是到最后总显示报错,找不到文件路径,大抵为-environment-cd xxxxxxxxxx No such file or directory.后来我发现,一切都tm是中文路径的锅。在安装gcc的时候,gcc目录下不能有中文路径。这一点我也注意到了。我后来发现,文件目录所在路径也不能有中文,就cpp文件,好像gcc也没法识别找到。我将中文目录路径去掉之后就编译成功了..._vscode无法找到gcc
文章浏览阅读8.2k次,点赞15次,收藏98次。线性反馈移位寄存器LFSR和循环冗余码CRC0 前言1 数学基础1.1 逻辑异或1.2 模2乘法 和 模2除法2 线性反馈移位寄存器LFSR2.1 抽头和特征多项式3 循环冗余码CRC0 前言线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)和循环冗余码(Cyclic Redundancy Check,CRC)是微控制器中常用的底层原理。LFSR用于生成伪随机数,后者用于生成检错码。他们的数学原理都是一样的。1 数学基础1.1 逻辑异或异或运算使用符号⊕