当前位置: 首页 > 面试题库 >

为什么Cassandra用Java编写?

高豪
2023-03-14
问题内容

关于Cassandra的 问题

为什么世界上有人会用Java编写数据库ENGINE?
我能理解为什么您要有一个Java接口,但要有一个引擎…

我给人的印象是,没有什么比C / C ++快,而且数据库引擎不应比最大速度慢,而且当然不使用垃圾回收…

谁能解释给我一个什么可能的含义,为什么Cassandra可以比在C / C ++代码上运行的普通SQL更快?

编辑:
很抱歉“为什么要死在地上”部分,但这对我来说真的没有任何意义。
我忽略了考虑,与普通的花园用户程序不同,数据库仅需要启动一次,然后运行很长时间,并且很可能也是服务器上唯一的程序,这显然使数据库成为可能。重要的性能差异。

我更多地是在比较/引用我在撰写本文时正在使用(或者更希望使用)的“功能失调”(简而言之)。

实际上,与使用Java编写税收程序不同,使用Java编写专用服务器程序是很有意义的。


问题答案:

我可以看到一些原因:

  • 安全性:用Java编写安全软件比用C ++更容易(还记得缓冲区溢出吗?)
  • 性能:并不差。在启动时肯定会更糟,但是一旦代码启动并运行,这并不是一件大事。实际上,您必须在这里记住一个重要点:Java代码由VM不断优化,因此在某些情况下,它比C ++更快。


 类似资料:
  • 问题内容: Sun 用什么语言写? 问题答案: Sun实际上有多个JVM。所述热点JVM在C ++主要被写,因为热点在很大程度上基于所述Animorphic Smalltalk的VM被用C ++编写 。 比HotSpot更有趣的是IMHO Maxine Research VM ,它几乎完全用Java编写。

  • 问题内容: 如果你给 它没有编译,但是带有花括号的相同代码是: 有什么解释? 问题答案: 基本上,变量声明只能在块中声明。 查看 Java语言规范中“语句”的语法 -它包括Block,但不包括LocalVariableDeclarationStatement- 后者是block语法的一部分。 这实际上是实用主义的问题:如果没有括号,则只能使用一个语句。如果没有后续语句,则声明变量是没有意义的,因为

  • 主要内容:Cassandra是NoSQL数据库,Cassandra流行背后的原因,Cassandra最重要的几个关键点:Apache Cassandra是高度可扩展的,高性能的分布式NoSQL数据库。 Cassandra旨在处理许多商品服务器上的大量数据,提供高可用性而无需担心单点故障。 Cassandra具有能够处理大量数据的分布式架构。 数据放置在具有多个复制因子的不同机器上,以获得高可用性,而无需担心单点故障。 Cassandra是NoSQL数据库 NoSQL数据库是非关系数据库。 它也称

  • 我试图理解Scala代码如何在Java的IDE中与Java一起工作。我在使用Spark Java时遇到了这个疑问,在Spark Java中,我看到Scala包也在代码中,并且使用了相应的类和方法。 我的理解是,Scala代码需要Scala的编译器转换成Java.class文件,然后从它们开始JDK在JVM中完成它的部分,转换成二进制文件并执行操作。如果我说错了,请指正。 之后,在eclipse中的

  • 问题内容: 在方法或类范围内,下面的行进行编译(带有警告): 在类范围中, 变量获取其默认值 ,以下给出“未定义引用”错误: 它不是第一个应该以相同的“未定义参考”错误结束吗?还是第二行应该编译?还是我缺少什么? 问题答案: tl; dr 对于 字段 ,是非法的,因为它是对的非法前向引用。您实际上可以通过编写来解决此问题,该文件可以毫无抱怨地进行编译。 对于 局部变量 ,是非法的,因为未在使用前进

  • 问题内容: 什么是java反射,为什么有用? 问题答案: 名称反射用于描述能够检查同一系统(或本身)中其他代码的代码。 例如,假设你在Java中有一个未知类型的对象,并且你想在该对象上调用“ doSomething”方法(如果存在)。除非对象符合已知的接口,否则Java的静态类型化系统并不是真正为支持该类型而设计的,但是使用反射,你的代码可以查看该对象并确定其是否具有名为“ doSomething