How To Avoid Stack Overflow Error Java
Contents |
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us
How To Resolve Stack Overflow Error In Java
Learn more about Stack Overflow the company Business Learn more about hiring developers how to avoid stack overflow in recursion java or posting ads with us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack how to solve stack overflow error in java Overflow Community Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up Java: How to avoid StackOverflowException up vote 10
Stackoverflowerror Java Recursion
down vote favorite 2 I'm writing a function that will call itself up to about 5000 times. Ofcourse, I get a StackOverflowException. Is there any way that I can rewrite this code in a fairly simple way?: void checkBlocks(Block b, int amm) { //Stuff that might issue a return call Block blockDown = (Block) b.getRelative(BlockFace.DOWN); if (condition) checkBlocks(blockDown, amm); Block blockUp = (Block) b.getRelative(BlockFace.UP); if (condition) checkBlocks(blockUp,
Java Increase Stack Size
amm); //Same code 4 more times for each side } By the way, what is the limitation of how deep we may call the functions? Thanks! java stack-overflow share|improve this question asked Apr 9 '12 at 12:52 Henrik Karlsson 3,62121534 stackoverflow.com/questions/214741/… –Balaswamy Vaddeman Apr 9 '12 at 13:01 add a comment| 6 Answers 6 active oldest votes up vote 13 down vote accepted Maybe using a stack? void checkBlocks(Block b, int amm) { Stack
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site how to handle stack overflow error in java About Us Learn more about Stack Overflow the company Business Learn more about
Stack Overflow Exception In Java Example
hiring developers or posting ads with us Programmers Questions Tags Users Badges Unanswered Ask Question _ Programmers Stack Exchange stackoverflowerror android is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute: Sign up Here's how it works: Anybody can ask http://stackoverflow.com/questions/10073471/java-how-to-avoid-stackoverflowexception a question Anybody can answer The best answers are voted up and rise to the top What methods are there to avoid a stack overflow in a recursive algorithm? up vote 31 down vote favorite 13 Question What are the possible ways to solve a stack overflow caused by an recursive algorithm? Example I'm trying to solve Project Euler problem 14 and decided to try http://programmers.stackexchange.com/questions/194646/what-methods-are-there-to-avoid-a-stack-overflow-in-a-recursive-algorithm it with a recursive algorithm. However, the program stops with a java.lang.StackOverflowError. Understandably. The algorithm indeed overflowed the stack because I tried to generate a Collatz sequence for a very large number. Solutions So I was wondering: what standard ways are there to solve a stack overflow assuming your recursive algorithm was written correctly and would always end up overflowing the stack? Two concepts that came to mind were: tail recursion iteration Are ideas (1) and (2) correct? Are there other options? Edit It would help to see some code, preferably in Java, C#, Groovy or Scala. Perhaps don't use the Project Euler problem mentioned above so it won't get spoiled for others, but take some other algorithm. Factorial maybe, or something similar. algorithms computer-science recursion tail-call share|improve this question edited Feb 5 at 18:33 Randy Marsh 1055 asked Apr 11 '13 at 10:46 Lernkurve 3541312 3 Iteration. Memoisation –James Apr 11 '13 at 10:50 2 Obviously, Memoization only works when there actually is repeated calculation. –Jörg W Mittag Apr 11 '13 at 12:06 2 also worth noting that not all language implementations can do tail recursion
This Site Careers Other all forums Forum: Beginning Java How to avoid stack overflow error when using recursion? Louis Lewis Ranch Hand Posts: 86 posted 3 years ago I'm trying to write a chess program with the netbeans GUI creator. So far I've got the visual part of the program https://coderanch.com/t/618521/java/java/avoid-stack-overflow-error-recursion down; I've created a chess board that will set up on command, and with pieces that you can move anywhere on the board by clicking them twcie (once to select, once to move), and now I'm trying to add restrictions to only allow legal moves. In order to do this, I created a separate class, which I'm calling Referee, with several methods, all of which build on each other to finally determine whether or not a given move is legal (for stack overflow example, one method checks if a move is legal only in terms of how different pieces are allowed to move, another determines, given a certain position, and using the first method, if either player is in check, and then a final method uses both the surface review based on move capabilites and the position review based on check to decide once and for all if a move is legal). Anyway, the details aren't super important, but the main point is that there stack overflow error are several methods within this class, all of which build on each other, and thus need to be called within the class itself. However, the class also has one method that I need to call from the main class (the full review, to determine if a move is legal). In order to be able to call methods from the Referee class within the main class, and the Referee class, I created a separate object in each class (ref1 inside Referee class, and ref2 inside the main class). However, I'm now having trouble with a stack overflow error. The error comes up on the object creation in the main class; I guess what's happening is that when I create the ref2 object, it has to have its own ref1 object, which in turn has to have its own ref1 object, etc. etc., on to infinity. public static void main(String args[]) { Referee ref2 = new Referee(); //the stack overflow error is happening here } public class Referee { Referee ref1 = new Referee(); } Does anyone know how to redesign my class set up such that I don't run into this error? I can't figure out a way to call the referee methods from within the referee class without causing this error, although I guess that it is possible since I have seen recursion sucessfully done before. Help would be much appreciated. Maneesh Godbole Saloon Keeper Posts: 11238 16 I like... posted 3 y