
类
容sir
这个作者很懒,什么都没留下…
展开
-
java中序列化的两种接口Serializable和Externalizable
摘要: 本文主要要看看JDK中使用Serializable和Externalizable接口来完成Java对象序列化,并给出部分属性序列化的几种方式,最终做出Serializable和Externalizable接口的几个方面的对比。Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。从而达到网络传输、本地存储的效果。本文主要要看看JDK中使用Serializable和Externalizable接口来完成Java对象序列化,并给出部分属性序列转载 2020-07-28 17:31:38 · 448 阅读 · 0 评论 -
java中反序列化与单例模式的冲突
今天在序列化反序列化的时候,发现单例模式竟然实现不了,查了一下资料,发现反序列化由于使用了反射机制来创建一个新的对象,导致其并没有受到单例模式的约束,今天做一个总结,以便后续查询。有兴趣的可以从java.io.ObjectInputStream中的public final Object readObject()开始,看一下jdk的源码:public final Object readObject() throws IOException, ClassNotFoundException {原创 2020-07-28 15:55:37 · 203 阅读 · 0 评论 -
JAVA中的Class对象
Class类简介 在java世界里,一切皆对象。从某种意义上来说,java有两种对象:实例对象和Class对象。每个类的运行时的类型信息就是用Class对象表示的。它包含了与类有关的信息。其实我们的实例对象就通过Class对象来创建的。Java使用Class对象执行其RTTI(运行时类型识别,Run-Time Type Identification),多态是基于RTTI实现的。每一个类都有一个Class对象,每当编译一个新类就产生一个Class对象,基本类型 (boolean, byte, char,转载 2020-07-09 08:50:53 · 169 阅读 · 0 评论 -
Java 构造方法的继承/构造方法的调用顺序(二)
我们在构造方法的继承、调用顺序一文中,已经了解过子类的构造过程中,构造方法是如何调用的。那么,我们看下面一个例子来巩固一下:public static class A { private int f1 = 7; //(1) public A(int b) { this.f1 = b; //(2) System.out.println(f1); //(3) initialize1(); //(4) }原创 2020-07-02 20:25:45 · 249 阅读 · 0 评论 -
Java 基础类型转换、父子类的类型转换
拓宽转换,窄化转换,向上转换,向下转换原创 2020-07-01 15:23:45 · 366 阅读 · 0 评论 -
Java 构造方法的继承/构造方法的调用顺序(一)
在java中,假如一个类Money 存在private 成员amount,另一个类USD继承自这个类,那么 USD子类中与这个amount成员是一个什么样的关系呢?我们来看一段代码,父类Money :这里解释一下,抽象类其实也是有构造方法的,只不过抽象类是不能被实例化,也就是说,抽象类的构造方法不能在对抽象类进行实例化的场合调用。那么言外之意,如果在某个场合抽象类的方法被调用并不会引起抽象类的实例化,那么它就允许被调用。我们将在下面的代码中来介绍这样一种特殊情况。public abstract cl原创 2020-06-30 22:05:53 · 1155 阅读 · 0 评论 -
Java 接口是否可以存在属性字段?
在Java中,接口是一组方法的集合,那么接口可不可以有属性呢?答案是可以,接口可以存在属性,但是这个属性必须是一个public static final的常量。 public interface Alcoholic extends Drinker { boolean READY_TO_GO_HOME = false; //public static final被省略 void sleepOnTheFloor(); }在这段代码中,READY_TO原创 2020-06-24 14:17:17 · 11382 阅读 · 4 评论 -
Java中的多态、golang中的多态
我们来看看java代码,如下,所示的示例,class Cow{ public void printAll() { printColor(); printName(); } public void printColor() { System.out.println("我浑身白色"); } public void printName() { System.out.println("我是一头奶牛"); }}class Whale extends Cow{ publi原创 2020-06-23 11:16:04 · 246 阅读 · 0 评论