This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Chapter3.java:74: cannot resolve symbol symbol : method method (java.lang.String) location: class Test test.method("0"); ^ Chapter3.java:81: cannot resolve symbol symbol : variable str location: class Test System.out.println(t.str);
1)i have no idea why this line1 is not compiling . please help me to correct the preceding errors?
2)what is the result of this program.i thought,this would print 0,0,0.Any ideas?
I think you meant to name it Chapter3 and not Test.
Joined: Feb 07, 2005
when t is a static reference, it refers to an instance of Chapter3. However, str is an instance variable that is not initialized by a constructor, so it is given its default value.
The reason you get a StackOverflowError when you make t an instance reference is that when a new instance of an object is created, its instance variable initializers are executed before the constructor is executed.
So by having the instance creation statement in the instance variable initializer, you basically have an infinite loop. Eventually the stack will be full.
Joined: Feb 28, 2007
why t.str is displaying null insteadof 0 .Can you please give explanation of this?
when i make t as an instance variable,it displayed statckoverflowerror at runtime.what is going on behind this?
String str; (member variable of the class Chapter3) Its default value is null not 0. So when you used t.str obviously it will print null and not 0.
StackOverFlowException: Are you doing something like this:
The instance initializer executes before the constructor.