Java核心基础
文章平均质量分 97
比较基础的内容
思变。
知道的越多,不知道的越多
展开
-
深入理解Java 序列化(二)
我们知道,序列化提供了一种在JVM停机的情况下可以保存对象的方案。就像我们平常使用的U盘一样,把Java对象序列化成可传输的形式,如json、二进制流,比如保存在文件中,这样,我们再需要这个对象时,可以从文件中读取二进制流,再从二进制流中反序列化出对象。但是,**虚拟机是否允许序列化,不仅取决于类路径和功能代码是否一致,还有很重要的一点是两个类的序列化ID是否一致**,这个所谓的序列化ID,就是我们在代码中定义的`serialVersionUID`。原创 2023-05-21 23:50:46 · 205 阅读 · 0 评论 -
深入理解Java 序列化(一)
在Java中,我们可以通过多种方式来创建对象,只要对象没被JVM回收,我们都可以复用该对象。但是,创建出来的这些对象都是存在于JVM堆中,也就是内存当中,一旦JVM停止运行,这些对象也就随之丢失了。在真实的应用场景中,我们需要将这些对象持久化,并且在需要时重新读取对象,例如:数据库存储、网络传输(RMI和RPC都需要这样的操作)。序列化是将对象转换为可存储或传输的形式的过程,一般都是以字节码或者XML、JSON等格式传输对象的。而将这些格式还原为对象的过程成为反序列化。Java内置了对象序列化机原创 2023-05-21 18:32:50 · 242 阅读 · 2 评论 -
Java异常最佳实践
Java程序在运行过程中(不止Java),会出现各种各样的**超出正常范围**的情况,这种情况我们称之为 **程序异常**, 为了在程序出现异常时能够清晰的表示出这些 **“特殊情况”** ,Java定义了一套非常完善的异常体系。原创 2023-04-29 14:26:49 · 124 阅读 · 0 评论 -
深入理解 Java String
是一个本地native方法,它的作用是:如果中已经包含了一个等于此String对象的字符串,则返回代表池中这个字符串的String对象的引用。在JDK 6 或者更早之前的HotSpot虚拟机中,常量池都是分配在永久代中,我们可以通过和限制永久代的大小,即可简介限制其中常量池的容量。我们在代码中创建字符串时,会涉及到方法,它的作用主要就是用来判断String Pool是否存在当前声明的字符串常量。原创 2023-04-22 22:05:53 · 194 阅读 · 0 评论