• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Ron McLeod
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

main method(mock exam question)

 
Ranch Hand
Posts: 41
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I.
1. class Basics1 {
2. public static void main(String[] args) {}
3. }
4. class Basics2 {
5. protected static void main(String[] args) {}
6. }
7. class Basics3 {
8. private static void main(String[] args) {}
9. }
What is the result of attempting to compile and run the above programs?
a. Compiler error at line 2.
b. Compiler error at line 5.
c. Compiler error at line 8.
d. Run time error at line 2.
e. Run time error at line 5.
f. Run time error at line 8.
g. None of the Above
II.
1. class Basics1 {
2. public void main(String[] args) {}
3. }
4. class Basics2 {
5. public void main(String []args) {}
6. }
7. class Basics3 {
8. public void main(String args[]) {}
9. }
What is the result of attempting to compile and run the above programs?
a. Compiler error at line 2.
b. Compiler error at line 5.
c. Compiler error at line 8.
d. Run time error at line 2.
e. Run time error at line 5.
f. Run time error at line 8.
g. None of the Above
mock exam answer:
I.cde
II.def
But I run two example, there isn't compiler error
and Run time error.
 
Ranch Hand
Posts: 1055
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Have you tried running it with JDK1.4.0?
 
Val Lee
Ranch Hand
Posts: 41
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I run them with JDK 1.4.1 beta!
 
Anthony Villanueva
Ranch Hand
Posts: 1055
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Strange. After a successful compilation I had runtime errors:
 
Val Lee
Ranch Hand
Posts: 41
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You are right,Anthony!
 
Ranch Hand
Posts: 309
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
the code compiles fine. nothing wrong with the code.but with jdk1.4 it gives runtime error as mentioned above but with jdk1.3.1, it works fine.
Does this mean, we need to answer differently depending on the version of the exam we take up. Or do we get such type of questions in the exam?
=======
Shankar.
 
Anthony Villanueva
Ranch Hand
Posts: 1055
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
No. The only legal signature should be public static void main(String[] args). The fact that it compiles in older JDKs only means that it was a bug.
 
Ranch Hand
Posts: 1865
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Val,
Thanks for pointing that out. I compile and run the code with version 1.4. I didn't realize that older versions fail to enforce the specification.
In the next version of the exam I'll put a note in the remarks section of the answer to point out the differences between JDK versions.
 
Ranch Hand
Posts: 42
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
if there is a question like this in the exam

1. class Basics1 {
2. public static void main(String[] args) {}
3. }
4. class Basics2 {
5. protected static void main(String[] args) {}
6. }
7. class Basics3 {
8. private static void main(String[] args) {}
9. }
What is the result of attempting to compile and run the above programs?
a. Compiler error at line 2.
b. Compiler error at line 5.
c. Compiler error at line 8.
d. Run time error at line 2.
e. Run time error at line 5.
f. Run time error at line 8.
g. None of the Above


what should be the answer?
I think it should be compiler error at line 5 and 8 and run time error at 2 .
correct me if i am wrong.
bani
 
Ranch Hand
Posts: 3271
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
First of all, it's pretty tough to have a runtime error if you have a compiler error. I mean, how can you get an error running an application that can't be run?
Also, it's important to note that it is perfectly legal to declare methods named main that aren't coderanch, static, return a void, and take an array of Srings as a paramater.
The key is that only that one special signature is a legal entry point. The others are just normal methods like any other.
The fact that some compilers allow non-public main methods to be executed is a well-known problem. As far as the exam is concerned, in order for a method to be an entry point, it must follow this signature:

In an attempt to answer your question, I don't see anything that would cause a compiler error, but you "should" get runtime errors if you were to try to execute classes Basics2 or Basics3.

I hope that helps,
Corey
[ July 17, 2002: Message edited by: Corey McGlone ]
reply
    Bookmark Topic Watch Topic
  • New Topic