首先,我是一名绝对的Java初学者。
我最近开始使用Java,除了变量,逻辑运算符,循环和我在JFrames中玩的东西之外,还有一些问题出现在我的脑海中。
我注意到我将程序保存为executable jar
程序似乎是1个文件。这意味着什么时候你去
开发一种可以使用许多资源的东西(图像,音频
文件和等)它们都将存储在这个jar文件中?
我注意到的第二件事是我可以提取jar
文件并相当容易地反编译.class
文件。考虑到这一点,让我说我使用MySQL
数据库并连接到MySQL
服务器,我必须使用JDBC
驱动程序,我必须吗?硬编码密码?
Java
是否适合3D游戏?我真的很远,但请告诉我。我看到用Java
3D游戏引擎编写的游戏,如jMonkeyEngine
,我印象深刻,但我在Java
周围的帖子很慢(读)很慢,不适合{{1}这些游戏让我有些困惑。
答案 0 :(得分:6)
如果你愿意,你可以这样做。在Oracle的Java教程中,您可以阅读有关创建可执行JAR文件的信息:Packaging Programs in JAR Files
任何用任何语言编写的程序都可以进行逆向工程,因此无论是否为Java,都不应该对密码进行硬编码。使用Java字节代码,反编译起来相当容易。
十多年前,当Java还很年轻时,与直接编译为本机代码的语言(如C或C ++)相比,它相对较慢。但是,多年来Java虚拟机已经取得了许多进展,在许多情况下Java程序的性能与C ++相当。仍然抱怨Java速度慢的人不是最新的,或者没有很多当前的Java经验。正如您从jMonkeyEngine演示中看到的那样,Java肯定足够快。然而,对于商业3D图形游戏,C ++似乎是使用的传统事实上的编程语言。请注意,为了从硬件中挤出最后一点性能,您需要专门为该硬件编写代码。 Java不是正确的工具,因为它的设计与平台无关。
答案 1 :(得分:2)
这是一个选择。它当然不是强制性的,您也可以从外部文件加载资源。
这是真的。这种应用程序的通用体系结构是将应用程序服务器放在客户端和实际数据库之间。您控制的应用程序服务器是知道数据库密码的。它只向客户公开他们应该允许执行的操作。
Minecraft是用java编写的,所以QED。使用Java编写的游戏不太可能突破现代GPU性能的极限,但这不是每个游戏的目标。
答案 2 :(得分:2)