我正在为Java考试做准备,上一次考试中的一个问题是:“ Java和C ++在对象创建方面的主要区别是什么?”
我想我知道对象创建的基础知识,例如如何调用构造函数以及Java中的初始化块做什么以及当一个类的构造函数调用尚未构造的另一类的方法时会发生什么,等等,但是我可以找不到明显的东西。答案应该是一两个句子,所以我不认为他们想到的是Java中整个对象创建过程的描述。
有任何想法吗?
除了其他出色的答案外,还有一件非常重要的事情,并且通常被忽略/遗忘或被误解(这解释了为什么我在下面详细介绍该过程):
C ++和Java之间的区别是:
每种语言的“错误”都不同:
从概念上讲,构造函数的工作是使对象存在(这绝非普通的壮举)。在任何构造函数中,整个对象可能仅是部分形成的–您只能知道基类对象已被初始化,但是您无法知道从您那里继承了哪些类。但是,动态绑定的方法调用到达继承层次结构的“向前”或“向外”。它在派生类中调用方法。如果在构造函数中执行此操作,则调用一个方法,该方法可能会操纵尚未初始化的成员,这无疑是灾难的秘诀。
布鲁斯·埃克尔(Bruce
Eckel),http://www.codeguru.com/java/tij/tij0082.shtml
在基类构造过程中,虚拟函数永远不会进入派生类。而是,该对象的行为就像是基本类型一样。非正式地说,在基类构建期间,虚拟函数不是。
斯科特·迈耶斯(Scott
Meyers),http://www.artima.com/cppsource/nevercall.html
本文向大家介绍使用对象文字和构造函数创建的对象之间的主要区别是什么?,包括了使用对象文字和构造函数创建的对象之间的主要区别是什么?的使用技巧和注意事项,需要的朋友参考一下 使用对象文字创建的对象是单例对象,这意味着当对对象进行更改时,它将影响整个脚本。而如果使用构造函数创建对象并对其进行更改,则该更改不会影响整个脚本中的对象。 让我们单独讨论它们。 1)使用对象文字创建的对象 由于这些是单例,因
Flink被比作Spark,在我看来,这是一个错误的比较,因为它将窗口事件处理系统与微批处理进行了比较;同样地,对我来说,将Flink与Samza进行比较也没有那么大的意义。在这两种情况下,它比较了实时事件处理策略和批处理事件处理策略,即使在Samza的情况下“规模”较小。但我想知道Flink与Storm的比较如何,它在概念上似乎更相似。 我发现这张(幻灯片#4)记录了Flink的“可调延迟”这一
本文向大家介绍C和C++的区别是什么?相关面试题,主要包含被问及C和C++的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 C是面向过程的语言,C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。 C中函数不能进行重载,C++函数可以重载 C++在C的基础上增添类,C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运
问题内容: Java中的Collection和Collections之间的主要区别是什么? 问题答案: 是大多数集合类的基本接口,而是实用程序类。我建议您阅读文档。
如果我自动连接一个类并提供值,实例化一个类的对象并提供一些值,那么有什么区别?例如- 而且 自动装配和发送数据与实例化对象和将数据发送到某些服务类有什么区别? 我试图在Spring澄清这些概念。
本文向大家介绍Kafka和Flume之间的主要区别是什么?相关面试题,主要包含被问及Kafka和Flume之间的主要区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:Kafka和Flume之间的主要区别是: 工具类型 Apache Kafka——Kafka是面向多个生产商和消费者的通用工具。 Apache Flume——Flume被认为是特定应用程序的专用工具。 复制功能 Apache