是否需要对底层有深入的了解才能写出高效的Java代码?

发布于 2024-10-16 03:28:39 字数 48 浏览 2 评论 0原文

一切尽在标题中:

是否需要深入底层知识才能写出高效的Java代码?

All is in the title:

Is it required to have deep knowledge of lower levels to write efficient Java code ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哥,最终变帅啦 2024-10-23 03:28:39

一点也不!

Java 抽象了几乎所有的底层,这与 C 不同,在 C 中您可以直接访问硬件和内存,或者在汇编中您实际上是根据实际的寄存器和缓冲区进行编码。

要编写高效的 Java 代码,您只需要确保所使用的任何算法的效率:如果您的算法效率低下,那么无论您用什么程序编写它,它都将保持低效。此外,您必须确保您正在使用正确的数据结构类型。这就是人们使用汇编语言进行编码的原因之一:它允许您创建一些非常灵活的数据结构。但对于主流用途,java.util 中的类就足够了。

在现代机器中,使用虚拟机造成的任何成本都是可以忽略不计的,因此与汇编或 c 相比,java 并没有太大的劣势。

无论如何,你不能混合 Java 和汇编代码,所以语言知识没有帮助,但有帮助的是高效算法(排序等)和数据结构(链表、树等)的知识。

Not at all!

Java abstracts away pretty much all of the underlying levels, unlike C where you have direct access to hardware and memory or Assembly, where you're actually coding in terms of the actual registers and buffers.

To write efficient Java code, you just need to ensure the efficiency of whatever algorithms you're using: if you have an inefficient algorithm it will stay inefficient no matter what you program it in. Additionally, you have to make sure you're using the correct type of data structures. That's one reason why people code in assembly: it allows you to create some very flexible data structures. But for mainstream purposes, the classes found in java.util will be more than sufficient.

In modern machines, any cost caused by using a virtual machine is negligible, so again java doesn't have much of a disadvantage compared to assembly or c.

You can't mix Java and Assembly code anyway, so knowledge of the language wouldn't help, but what would help is knowledge of efficient algorithms (sorting, etc.) and data structures (linkedlists, trees, etc.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文