问题标签 [externalizable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
192 浏览

java - 自定义序列化和外部化之间的区别?

最近从任何渠道了解到,自定义序列化是一个过程,我们可以在我们的 Serializable 类中定义 writeObject(ObjectOutputStream os) 和 readObject(ObjectInputStream is),这些方法将在序列化和反序列化时执行分别执行我们的功能。

后来,我才知道 Externalization 是一个接口,它定义了 2 个方法: 1- writeExternal() 2- readExternal()

当我们不想序列化整个对象时,我们的类可以实现 Externalizable 并覆盖这些方法。这些方法将在序列化和反序列化时执行。

我怀疑为什么我们不能通过实现 Serializable 并定义 writeObject(ObjectOutputStream os) 和 readObject(ObjectInputStream is) 方法来使用自定义序列化,甚至序列化对象的某些属性。为什么这种外化出现在画面中。

谢谢,

0 投票
1 回答
81 浏览

java - Serializable 或 Exernalizable 与庞大的数据集,哪个更快,更实用?

好吧,在我提出问题之前,我想先指出我知道 Serializable 和 Exernalizable 之间的区别,所以你不需要给出解释!

我基本上想做的是将一个类及其所有数据保存在一个文件中。我们已经到了 Java 9 出局并且 JVM 非常快的时代,但是仍然有人(我相信他们的观点)认为与使用 Exernalizable 相比,在大量数据上使用 Serializable 效率非常低。

如果我只有 10 个表示普通数据类型(如整数或布尔值)的字段,我肯定会使用 Serializable。

但是现在我有更多的数据要存储和加载,例如一个包含大约 330 万个字段的 3 维字节数组,我认为通过 Serializable 类实现的反射方式来保存这样的数据效率非常低. 但是由于我不能 100% 确定 Exernalizable 方式在存储如此大量的数据方面更有效,所以我想在开始使用我的程序之前先确保自己,因为它不需要快速保存数据但加载速度非常快(不仅是一次,它需要先进行一些计算,然后在程序期间多次加载它,因为根据程序所处的状态,它需要加载不同的数据集)。所以基本上我的想法是我将通过 Externalizable#readExternal() 函数中的异步多线程加载字节数组。

如果我认为在此处使用 Exernalizable 不是更有效的方法,请纠正我,因为我希望程序在加载数据时尽可能流畅地运行!

国王问候,

法比安·施密特!

0 投票
1 回答
215 浏览

java - 写入外部时可外部化接口的行为比读取外部具有更多的属性

我正在探索可外部化的接口。当我在序列化文件中写的属性比我读的更多时,我发现了一个奇怪的行为。下面是我的员工类。

下面是我的类,用于将文件中的员工对象外部化并从文件中读取

下面是我得到的输出:

不确定分配给 emp3 的 id 是 16777216。

0 投票
1 回答
282 浏览

java - 如何在java中为非Spring应用程序外部化配置变量

我正在使用 jdk 8 并试图在我的 java 应用程序中外部化数据库连接变量。有一种方法可以做到这一点,例如 System.getEnv("key") 但我不需要使用它。

没有Spring,任何人都可以帮助实现这一目标。

我的配置,

请提供您的意见。

0 投票
1 回答
520 浏览

java - 为什么在可序列化中存在读/写对象方法时可外部化

我无法清除我的这种困惑,

使用 Externalizable 是因为我们可以使用 read/writeExternal 方法提供我们自己的(更有效的)序列化-反序列化实现。并控制序列化过程。

我们也可以使用 read/writeObject 方法和序列化过程将被覆盖。

那么为什么需要 Externalizable 呢?

为什么有人更喜欢 read/writeExternal 而不是 read/writeObject?

0 投票
1 回答
242 浏览

java - Java中的可外部化数组

Externalizable出于可维护性和性能原因(Serializable还不够),我需要通过网络发送一组对象。

文档说 Java 中的所有数组都是Serializable. 是否有可能有一个数组也是Externalizable?如果没有,有哪些变通方法可以Externalizable通过网络发送这些对象并从中受益?

0 投票
1 回答
128 浏览

java - Java readObject/writeObject 可以保存/加载超类,那为什么需要read/writeExternal?

core java volumeII第二章说,不像readObject/writeObject,readExternal/writeExternal可以保存和恢复数据,包括超类。我刚刚做了一个实验,似乎 readObject/writeObject 可以做同样的工作:

我的问题是:我们什么时候需要使用 readExternal/writeExternal()?我看不到 readExternal/writeExternal 可以做的任何工作,而 readObject/writeObject 做不到。

请帮助澄清。非常感谢。

0 投票
2 回答
452 浏览

java - 在 spring 和 springboot 中从 src 代码中外部化错误消息(资源包)的最佳方法是什么?

我正在寻找将验证错误消息从 spring 和 spring boot 应用程序中的 src 代码外部化的最佳方法,以避免每次错误消息更改时都进行构建/部署。有没有这样的方法来实现它?

0 投票
1 回答
239 浏览

java - 当通过覆盖 writeObject() 和 readObject() 可以进行自定义序列化时,java Externalization 有什么用?

我正在学习 java 序列化,我有一个疑问,如果可以通过覆盖类中的 writeObject() 和 readObject() 方法来自定义默认序列化过程,那么 Externalizable 接口有什么用?在哪种情况下需要它?

0 投票
1 回答
80 浏览

spring-boot - 如何扫描 springboot 应用程序以列出硬编码值?

我们正在考虑将 springboot 应用程序的配置外部化。有没有办法扫描代码并列出所有硬编码值?