Java序列化和NIO

本文介绍了Java中创建对象的四种方式,重点讲解了序列化与反序列化的过程,包括如何实现Serializable接口。此外,还详细探讨了Java的NIO(New IO)特性,阐述了NIO的组成、优势以及使用示例,展示了NIO如何实现非阻塞同步的I/O操作。
摘要由CSDN通过智能技术生成

创建对象的四种方式

  • New 对象
    开辟内存空间,在堆中存放
  • 克隆 拷贝创建对象
  • 反序列化
    把字节序列恢复为原来的Java对象
  • 反射

序列化与反序列化

序列化:是一个Java对象作一下“变换”,变成字节序列。这样一来方便持久化存储到磁盘,避免程序运行结束后对象就从内存里消失,另外变换成字节序列也更便于网络运输和传播。

反序列化: 把字节序列恢复为原来的Java对象(Java源文件)。

实现序列化的接口:Serializable

Serializable是一个标记性接口,没有实现任何内容,只是告诉JVM当前对象需要序列化。
(Cloneable接口也是一个标记性接口,没有任何内容,只是告诉JVM该对象需要克隆)

SerialVersionUID是序列化前后唯一的标识符,如果没有人为定义过SerialVersionUID,那么编译器会自动声明一个。一般不需要人为处理。

  • 注:
    static修饰的不会被序列化
    transient修饰的不会被序列化

Demo

Car.java

package com.wdy.stream;
import java.io.Serializable;
public class Car implements Serializable {
   
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L; //版本信息,编译器自动声明。一般不需要人为修改
	private int id;
	private String brand;
	private String color;
	private double price;

	public Car()  {
   

	}

	public Car (int id, String brand, String color, double price) {
   
		this.id = id;
		this.brand = brand;
		this.color = color;
		this.price = price;
	}

	public int getId() {
   
		return id;
	}

	public void setId(int id) {
   
		this.id = id;
	}

	public String getBrand() {
   
		return brand;
	}

	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值