About Question enthuware.ocajp.i.v7.2.1114 :

Help and support on OCA OCP Java Programmer Certification Questions
1Z0-808, 1Z0-809, 1Z0-815, 1Z0-816, 1Z0-817

Moderator: admin

admin
Site Admin
Posts: 10036
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by admin »

Javier wrote:Hi!!

I would like to know if an infinite loop generate some kind of exception or error, is there no problem with the memory or the hard disk?
A simple for loop that does not consume any memory can run forever -
for(;;);

If the loop consumes memory, of course, it will eventually cause OutOfMemoryError or StackOverflowError (if there is recursion involved).
If you like our products and services, please help us by posting your review here.

Javier
Posts: 66
Joined: Mon Feb 20, 2017 12:31 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by Javier »

Thank you so much Admin for your answer!!
Enthuware is great, I learnt a lot of with your explanations, I feel very confident to try to pass the OCA certificate.
Thank you guys!!

SeoaneR
Posts: 8
Joined: Tue Nov 07, 2017 8:23 am
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by SeoaneR »

Hi There
I'm finding the !=(Not equals) quite confusing .
The interpretation of the != operator is that , if values are not equal then the condition evaluates to true,
or evaluating to true if the values are different.
The while loop has the following condition : while(x = getX() !=0) .This implies 5 !=0 .So if I use the definition
of the != that says if values are not equal the condition evaluates to true ...why does the while loop evaluate
to false.

admin
Site Admin
Posts: 10036
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by admin »

You understanding is correct. while loop does not evaluate to false. It evaluates to true. Why do you think it evaluates to false here?
If you like our products and services, please help us by posting your review here.

OCAJO1
Posts: 221
Joined: Mon Nov 26, 2018 2:43 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by OCAJO1 »

So the fact that the correct answer is that it will run forever and not throw an exception (OutOfMemeoryException) at run time, mean that neither the for loop nor the assignment within it (x=m) consume any memory?

admin
Site Admin
Posts: 10036
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by admin »

Correct. Heap memory is consumed only when you create any object. stack memory is consumed when you create local variables. Neither is happening here.
(If you are not clear about the difference between Heap and Stack, you might want to go through a good book. Section 1.6 of Hanumant's book explains this nicely. )
If you like our products and services, please help us by posting your review here.

OCAJO1
Posts: 221
Joined: Mon Nov 26, 2018 2:43 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by OCAJO1 »

Section 1.6 really brought together how JVM stores local variables and objects.

One thing was not explicitly mentioned though, where field variables are stored?
Also, since arrays are objects, they will be stored on the heap whether they are field or local arrays, correct?

admin
Site Admin
Posts: 10036
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by admin »

OCAJO1 wrote:
Wed Dec 12, 2018 2:12 pm
Section 1.6 really brought together how JVM stores local variables and objects.
One thing was not explicitly mentioned though, where field variables are stored?
It is mentioned quite clearly in point 5 of Points to remember pg 117:
Only temporary variables i.e. variable created in a method (also known as local variables and automatic variables) are created on the stack space. Everything else is created on the heap space. If you have any doubt, ask yourself this question - is this a temporary variable created in a method? Yes? Then it is created on the stack. No? Then it is on the heap.
OCAJO1 wrote:
Wed Dec 12, 2018 2:12 pm
Also, since arrays are objects, they will be stored on the heap whether they are field or local arrays, correct?
The same point 5 also says, "Actual objects are ALWAYS created on the heap.". So, there shouldn't be any confusion about where arrays are stored.
If you like our products and services, please help us by posting your review here.

OCAJO1
Posts: 221
Joined: Mon Nov 26, 2018 2:43 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by OCAJO1 »

So that's what 5 was about. Well now I don't have to ask that question :joy: Thanks

mario catanzariti
Posts: 2
Joined: Sat Feb 16, 2019 6:29 am
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by mario catanzariti »

sorry...but shouldn't it print 10 in case of removing the local variable X from looper method? cause instance variable X would be assigned M, which woths 10 at the first and last iteration. why zero??

admin
Site Admin
Posts: 10036
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by admin »

Why do you think m is 10 at the last iteration?
If you like our products and services, please help us by posting your review here.

cjgiron
Posts: 14
Joined: Fri Sep 09, 2022 5:03 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by cjgiron »

Hello,

The answer explanation says: "If you remove int x = 0; from looper(), it will print 0 and end." Shouldn't it be var x = 0 to be consistent with the question?

admin
Site Admin
Posts: 10036
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: About Question enthuware.ocajp.i.v7.2.1114 :

Post by admin »

Yes, that would be better. Fixed.
thank you for your feedback!
If you like our products and services, please help us by posting your review here.

Post Reply

Who is online

Users browsing this forum: No registered users and 61 guests