获得徽章 0
- #每天一个知识点# 序列化与反序列化
序列化:将对象转换成二进制字节流的过程
反序列化:将二进制字节流转换成数据结构或对象的过程
常见的应用场景:网络传输之前将对象序列化,接收时反序列化;存储到文件之前序列化,读取时反序列化;将对象存储到数据库之前序列化,从数据库缓存中读取出来需要序列化;存储到内存中同理。
序列化协议对应于 TCP/IP 4 层模型的应用层,也就是OSI七层协议模型的应用层,表示层,会话层。 展开等人赞过18 - #每天一个知识点# Java 中将实参传递给方法(或函数)的方式是 值传递:
如果参数是基本类型的话,很简单,传递的就是基本类型的字面量值的拷贝,会创建副本。
如果参数是引用类型,传递的就是实参所引用的对象在堆中地址值的拷贝,同样也会创建副本。
(来自JavaGuide
) 展开等人赞过39 - #每天一个知识点# 今天的小知识直接摘自JavaGuide,关于hashcode方法和equals方法。
如果两个对象的hashCode 值相等,那这两个对象不一定相等(哈希碰撞)。
如果两个对象的hashCode 值相等并且equals()方法也返回 true,我们才认为这两个对象相等。
如果两个对象的hashCode 值不相等,我们就可以直接认为这两个对象不相等。 展开赞过评论3 - #每天一个知识点# 重载vs重写
其实它们没啥联系,但是都重字辈的,容易给弄重了。
重载:同样的方法能够根据输入数据不同,做出不同的响应。
方法名相同,形参列表不同(参数类型顺序个数)。其他的地方同不同都行。
重写:子类继承父类的方法,输入数据一样,但是做出不同的响应。
两同两小一大
方法名和参数相同。
返回值类型小于等于父类的,抛出异常相同或其子类。
方法访问修饰符要大于等于父类的。
注意:
如果方法的返回类型是 void 和基本数据类型,则返回值重写时不可修改。但是如果方法的返回值是引用类型,重写时是可以返回该引用类型的子类的。展开等人赞过57 - #每天一个知识点# 基本数据类型vs包装类型
基本数据类型用得少,包装类型常用,可用泛型,基本数据类型不行
基本数据类型的局部变量存放在jvm的局部变量表,基本数据类型的成员变量(没被static修饰)存放在jvm的堆中。包装类型属于对象类型,几乎所有对象实例都放在堆中。
基本数据类型占用空间较小,包装类型占用空间大
基本类型不赋值有默认值,包装类型不赋值都是null
对于基本数据类型,==比较的是值。对于包装类,==比较的是对象的内存地址,equals比较的才是值。
展开赞过评论3
![[疑问]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_31.606e7a5.png)
![[坏笑]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_41.2751fc1.png)
序列化:将对象转换成二进制字节流的过程
)![[色]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_3.41d9a9a.png)