我正在为一个学校项目编写一个java应用程序,其中有几种纸牌游戏。我正在编写第一个游戏,并为我计划做的所有游戏实现了框架。我有一个名为 Deck 的类,它控制所有卡片组逻辑,并在 arrayList 中创建一个包含 52 个卡片对象的卡片组。每当我创建一副卡片组时,程序就会停止并且不响应。据我在网上查看,它说我创建了太多对象,程序试图清理它们或其他东西。我对java相当陌生,对如何解决这个问题感到非常困惑。以下是 createDeck() 方法和生成的 LogCat 输出。非常感谢任何帮助或智慧。提前致谢!
public void createDeck()
{
for (int i = 1; i <= 13; i++)
{
for (int j = 0; j < 4; i++)
{
if (j == 0) //If diamond suite
{
Card newCard = new Card(i, j);
cardDeck.add(newCard);
}
if (j == 1) //If hearts suite
{
Card newCard = new Card(i, j);
cardDeck.add(newCard);
}
if (j == 2) //If clover suite
{
Card newCard = new Card(i, j);
cardDeck.add(newCard);
}
if (j == 3) //If spade suite
{
Card newCard = new Card(i, j);
cardDeck.add(newCard);
}
}
}
}
LogCat 输出
WAIT_FOR_CONCURRENT_GC blocked 61ms
GC_CONCURRENT freed 153K, 7% free 3755K/4024K, paused 69ms+25ms total 213ms
最佳答案
一个小错误:
在第二个 for
循环中更改:
for (int j = 0; j < 4; i++)
至:
for (int j = 0; j < 4; j++)
顺便说一句,通过使用调试器或打印日志 - 您很快就会找到它。
关于java - 我正在用 java 编写一个 Android 应用程序,我认为存在内存泄漏,但不知道如何修复它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13438554/