java - 向下转换对象的时间复杂度是多少?

标签 java c# optimization casting time-complexity

我从 RPC 服务收到了一个通用的 Object 类型实例,我想将其转换为 MyClass 类型实例,这个操作的时间复杂度是多少?性能对我的应用程序至关重要。 (对于 Java 和 C# 等语言)

示例:Employee employee = (Employee) person;PurchaseData purchaseData = (PurchaseData) genericData;

最佳答案

转换首先是一个编译时间 Activity 。

在运行时,如果有的话,假设 O(1)。您会看到,所有此类信息(如类结构)在代码执行时都是固定的。

鉴于评论:假设您的对象被反序列化为类 X 的实例,那么 JVM 已经知道该对象实际上属于类 X。该对象存在于内存中,并且它的确切类只需一次查找即可!

除此之外:假设您的对象通过某种 RPC 调用进入,并且它们从某种传输表示反序列化为 JVM 对象……您真的认为时间对于选角有什么影响吗?调用远程服务可能需要几毫秒,甚至几秒。您担心稍后转换此类对象是否需要 5 纳秒或 15 或 25 秒?

唯一可能导致显着性能的情况:当转换出错时,您会遇到 ClassCastException。

关于java - 向下转换对象的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50975728/

相关文章:

c++ - 访问连续 L1 高速缓存的代码比访问 3x 非连续 L1 内存的代码慢

java - 在 JDialog 中的 JPanel 周围添加空间?

java - 如何编写 OSGI 命令行应用程序

java - 如何使用java动态地展平spark数据框中复杂的嵌套json

c# - 仅当启用控件时才在 WPF 中运行验证

c - 优化乘法和加法

java - 考虑捕获组中的空白

c# - 创建 HTML anchor 以编程方式运行 C# 函数

c# - ASP.NET MVC, 'Ticket Required' 属性

python - 在python中生成除数数组