Ga naar inhoud

java foutmelding


anoniem

Aanbevolen berichten

Als ik onderstaande code uitvoer dan krijg ik deze foutmelding: [b:7b95739b2e]Exception in thread "main" java.lang.OutOfMemoryError: Java heap space[/b:7b95739b2e] [code:1:7b95739b2e] import javax.swing.JOptionPane; /** * * */ public class Inzend2 { public static void main(String[] args) { int cijfer = 8; int[][] BlastTable = new int[cijfer][cijfer]; for (int i = 0; i < cijfer; i++) { for (int j = 0; j < cijfer; j++) BlastTable[i][j] = 32 - j - i * cijfer; } printarray(BlastTable); System.exit(0); } public static void printarray(int[][] BlastTable) { int cijfer = BlastTable.length; String table = ""; for (int i = 0; i < cijfer ; i++) { for (int j = 0; j < cijfer; j++) { table += BlastTable[i][j] + " " ; table += table + " " + " \n "; } } JOptionPane.showMessageDialog(null, table, " BlastTable ", JOptionPane.INFORMATION_MESSAGE); } } [/code:1:7b95739b2e] Wie kan mij vertellen wat hier mis gaat ?
Link naar reactie
In je for-loop in de printarray methode bouw je elke iteratie een nieuwe string op, doordat je een String achter je bestaande String (table) plakt. In Java houdt dit in dat hij telkens een nieuwe string in het geheugen aanmaakt. Normaal komt het geheugen van de oude, niet meer gebruikte Strings tijdens het verloop van het programma weer vrij (garbage collection heet dit). In jouw geval krijgt Java daar echter geen kans toe omdat hij 'druk bezig' is met de for-loop. Als je veel Strings in Java aan elkaar wilt plakken, kan je het beste een StringBuilder (zie [url=http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuilder.html]Java API[/url]) gebruiken. Deze gaat beter om met het plakken van Strings aan elkaar. In jouw geval zou de printarray methode er dan zo uit zien: [code:1:b1c55aa00e]public static void printarray(int[][] BlastTable) { int cijfer = BlastTable.length; StringBuilder table = new StringBuilder(); for (int i = 0; i < cijfer ; i++) { for (int j = 0; j < cijfer; j++) { table.append(BlastTable[i][j]); table.append("\n"); } } JOptionPane.showMessageDialog(null, table.toString(), " BlastTable ", JOptionPane.INFORMATION_MESSAGE); }[/code:1:b1c55aa00e]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...