Java笔记分享-CrazyChao(Java重点及补充 序列化 Transient 远程调试 GC原理)

Java重点及补充 序列化  Transient  远程调试 GC原理

序列化是什么:

序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。

序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例

序列化的什么特点:

如果某个类能够被序列化,其子类也可以被序列化。声明为static和transient类型的成员数据不能被序列化。因为static代表类的状态, transient代表对象的临时数据。

什么时候使用序列化:

一:对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。

二:java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。

Java序列化(其它)

Transient

java语言的关键字,变量修饰符,如果用transient声明一个 实例变量 ,当对象存储时,它的值不需要维持。

作用:
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。

java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时的,即不会随类一起序列化到本地,所以当还原后,这个关键字定义的变量也就不再存在。

通常,我们写的程序都要求特定信息能持久存在或保存到磁盘上,以供一个程序使用或用在同一个程序的另一次运行上.这种持久性可以通过几种方式来实现,包括写到数据库中或是利用JAVA为对象序列化提供的支持.不管我们选用什么方法,类实例的持久性都是通过保存类的域的状态来完成的,保存这些状态,以便以后可以对它们进行访问或使用它们来创建相同的实例.然而,有可能并不是所有的域都需要被保存起来.当一个实例被持久化时,其内部的一些域却不需要持久化,则可以用trainsient修饰符告诉编译器指定的域不需要被持久保存.

具体列举。。。。上机调试。。。。

Java远程调试:
1.JDB使用方式命令行执行、可以设置断点(stop at 参数)等(jdb -attache localhost:)
连接上VM之后,可以使用threads命令查看所有线程
参数设置,通过local等命令查看变量值
架包测试执行命令java -cp target(架包名称路径)
2.eclipse图形化界面
通过Run中Debug configuration配置Debug客户端,远程连接VM。
分布式开发需要了解GC(garbage collection)(主要了解后台架构)
主要管理Java heap,定时判断内存是否需要继续存在,内存回收机制。分三个带:young generation,old generation,permanent generation。
111222

management GC  YGC  OGC   Java -cp target..运行测试包
JPS命令可查看Java heap状态
222 111
java也有内存泄露问题
垃圾回收(创建用不到的对象,垃圾无法回收,造成内存泄露)
333 333
年轻代存放存活时间短的对象,年轻代变老的过程(晋升)
减少年老代GC次数
parallelOldGC多线程并行垃圾回收
444 444
用于对时间敏感的应用
555 555
对时间敏感
666 666
对吞吐率敏感
777 777
以下具有四个阶段垃圾回收机制与用户程序并行执行。并不是完全同步。
888 888
promotion failure内存不够情况时发生
concurrent mode failure (默认oldgc已经完成)
999 888
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马超的博客

谢谢大佬的赞赏 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值