其他基础相关

本文深入探讨了Java序列化与反序列化的原理及应用,equals与hashCode方法的关系,Java与C++的主要区别,静态与非静态成员的特点,以及==与equals操作符的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Java序列化与反序列化的过程

1.序列化:把Java对象转化成字节序列的过程

2.反序列化:把字节队列恢复成Java对象的过程

为什么要用序列化:

1.把对象的字节永久的保存到硬盘上

2.网络传输

如何实现序列化:

1.实现Seriesible接口

2.实现Externarizble接口

二.equals方法和hashCode方法的关系

同一个对象在往Set集合里面放进去的时候,会调用.hashcode方法进行寻址,如果不重写该方法,会造成同样的对象的hashcode不一样,导致2个对象虽然属性值一样,但是还存了2份;

如果不重写equals方法会造成往hashmap里面添加的时候,判断对象并不存在,而继续添加一个元素。

所以二者是同时重写的

 

原文:

https://blog.youkuaiyun.com/u012056417/article/details/54110314

三.Java和C++的区别有哪些

1.Java是运行在虚拟机上,先编译后解释成机器语言字节码文件,最后运行在操作系统上,c++可以直接编译成字节码文件在系统上运行

2.Java中内存回收是由JVM管理的,c++不是

3.Java由于需要jvm编译,所以使用场景没有c++更偏底层

四.静态与非静态的区别

1.静态方法、静态变量会随着JVM虚拟机启动而加载,JVM虚拟机销毁前会一直在内存中metadata中存在,非静态是实例化的时候创建内存空间,使用完毕后回收内存空间

2.静态方法可以直接使用类名调用

3.静态方法只能调用静态的全局变量

五.Java中==和equals的区别

1.==是运算符,equals是方法

2.==比较基本类型时,比较的是栈里面值内容是否相等,比较引用类型时,比较的是对象引用的地址值是否相等

3.object中的equals实现与==是一样的,重写了equals方法后比较的是内容是否相等

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值