Welcome to Core Java Quiz. Java is an object-oriented programming language.
In this quiz, you will be tested on Core Java basics and OOPS concepts. There are some code snippets too to test your basic Java coding skills.
Some of the questions have multiple answers. You can click on the “Reveal Answer” button for the correct answer and explanation.
Give it a try and share it with others if you like it.
A. int myArray [] = {1, 3, 5};
B. int myArray [] [] = {1,2,3,4};
C. int [] myArray = (5, 4, 3);
D. int [] myArray = {“1”, “2”, “3”};
Correct Answer: A
int [] myArray = {“1”, “2”, “3”}; is invalid because String can’t be converted to an int.
int [] myArray = (5, 4, 3); is invalid because array elements should be defined in curly braces ({}).
int myArray [] [] = {1,2,3,4}; is invalid because myArray is a two-dimensional array whereas in this case it’s being defined as a one-dimensional array. The compiler will complain as Type mismatch: cannot convert from int to int[].
A. array
B. goto
C. null
D. int
**Correct Answer: B, D
**
The goto
and int
are reserved keywords in java. array
and null
are not keywords in java.
interface Foo{ int x = 10;}
public class Test {
public static void main(String[] args) {
Foo.x = 20;
System.out.println(Foo.x);
}
}
A. Prints 10
B. Prints 20
C. Compile Time Error
D. Runtime error because Foo.x is final.
**Correct Answer: C
**
By default, any field of the interface is public, static, and final. So we can’t change is, hence compile-time error at the statement Foo.x = 20;
.
public class Test {
public static void main(String[] args) {
char c = 65;
System.out.println("c = " + c);
}
}
A. Compile Time Error
B. Prints “c = A”
C. Runtime Error
D. Prints “c = 65”
**Correct Answer: B
**
Java compiler tries to automatically convert int to char. Since 65 gets converted to A, hence output will be “c = A”. The char values range is from u0000 to uffff. So char c = 65535;
is valid but char c = 65536;
will give compile time error.
public class Test {
public void main(String[] args) {
int x = 10*20-20;
System.out.println(x);
}
}
A. Runtime Error
B. Prints 180
C. Prints 0
D. Compile-time error.
Correct Answer: A
Runtime error because main method is not static. The error message will be Main method is not static in class Test, please define the main method as: public static void main(String[] args)
static
keyword in Java?A. We can have static block in a class.
B. The static block in a class is executed every time an object of class is created.
C. We can have static method implementations in interface.
D. We can define static block inside a method.
**Correct Answers: A, C
**
We can have static block in a class, it gets executed only once when class loads. From java 8 onwards, we can have static method implementations in interfaces.
A. Abstraction
B. Inheritance
C. Interface
D. Polymorphism
E. Generics
Correct Answers: A, B, D
OOPS core concepts are;
Read more at OOPS Concepts
A. The “extend” keyword is used to extend a class in java.
B. You can extend multiple classes in java.
C. Private members of the superclass are accessible to the subclass.
D. We can’t extend Final classes in java.
**Correct Answer: D
**
Inheritance is one of the core concepts in Java. You should be familiar with it. Please read the following articles to learn more about the answer choices - Inheritance in Java, Multiple Inheritance in Java.
package com.journaldev.java;
public class Test {
public static void main(String[] args) {
Super s = new Subclass();
s.foo();
}
}
class Super {
void foo() {
System.out.println("Super");
}
}
class Subclass extends Super {
static void foo() {
System.out.println("Subclass");
}
}
A. Compile time error
B. Super
C. Subclass
D. Runtime error
**Correct Answer: A
**
Subclass foo() method can’t be static, it will give compile time error This static method cannot hide the instance method from Super
.
package com.journaldev.java;
public class Test {
public static void main(String[] args) {
Subclass s1 = new Subclass();
s1.foo(); // line 6
Super s = new Subclass();
s.foo(); // line 8
}
}
class Super {
private void foo() {
System.out.println("Super");
}
}
class Subclass extends Super {
public void foo() {
System.out.println("Subclass");
}
}
A. Compile time error at line 6
B. Compile time error at line 8
C. Compile time error at both line 6 and 8
D. Works fine and prints “Subclass” two times.
**Correct Answer: B
**
Compile time error at line 8 because Super class foo() method is private. The error message is The method foo() from the type Super is not visible
.
import java.io.IOException;
public class Test {
public static void main(String[] args) {
try {
throw new IOException("Hello");
} catch (IOException | Exception e) {
System.out.println(e.getMessage());
}
}
}
A. Compile-time error
B. Prints “Hello”
C. Runtime Error
Correct Answer: A
Compile-time error as The exception IOException is already caught by the alternative Exception
.
public class Test {
public static void main(String[] args) {
String x = "abc";
String y = "abc";
x.concat(y);
System.out.print(x);
}
}
A. abcabc
B. abc
C. null
**Correct Answer: B
**
x.concat(y);
will create a new string but it’s not assigned to x, so the value of x is not changed.
A. RuntimeException
B. ClassCastException
C. NullPointerException
D. IOException
**Correct Answer: A, B, C
**
RuntimeException and its subclasses are unchecked exceptions. Unchecked exceptions do not need to be declared in a method or constructor’s throws clause.
package com.journaldev.java;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
try {
throw new Exception("Hello ");
} catch (Exception e) {
System.out.print(e.getMessage());
} catch (IOException e) {
System.out.print(e.getMessage());
} finally {
System.out.println("World");
}
}
}
A. Compile-time error
B. Hello
C. Hello World
D. Hello Hello World
**Correct Answer: A
**
Compile-time error Unreachable catch block for IOException. It is already handled by the catch block for Exception
.
A. JVM is responsible for converting Byte code to the machine-specific code.
B. We only need JRE to run java programs.
C. JDK is required to compile java programs.
D. JRE doesn’t contain JVM
A. Yes
B. No
Correct Answer: A
This was a tricky question. We can have multiple methods having name as “main” in java through method overloading.
A. @interface keyword is used to create custom annotation
B. @Override is a built-in annotation in java
C. Annotations can’t be applied to fields in a class.
D. @Retention is one of the meta annotation in java.
E. Java annotation information gets lost when class is compiled.
**Correct Answer: A, B, D
**
For a complete explanation, read Java Annotations.
A. All java enum implicitly extends java.lang.Enum
class.
B. Java enum can implement interfaces.
C. We can create instance of enum using new operator.
D. Enums can’t be used in switch statements.
E. Enum constants are implicitly static and final.
**Correct Answer: A, B, E
**
Read more at Enum in Java.
A. Bootstrap Class Loader
B. Extensions Class Loader
C. Runtime Class Loader
D. System Class Loader
package com.journaldev.util;
public class Test {
public static String toString() {
System.out.println("Test toString called");
return "";
}
public static void main(String args[]) {
System.out.println(toString());
}
}
A. “Test toString called”
B. Compile-time error
C. “Test@7fh2bd8” (Object class toString() method is being called)
Correct Answer: B
We will get a compile-time error because we can’t have an Object class method overridden with the static keyword. The Object class has toString()
method. You will get a compile-time error as “This static method cannot hide the instance method from Object”.
public class Test {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
System.out.println("s1 == s2 is:" + s1 == s2);
}
}
A. s1 == s2 is:true
B. false
C. s1 == s2 is:false
D. true
Correct Answer: B
The given statements output will be “false” because in java + operator precedence is more than == operator. So the given expression will be evaluated to “s1 == s2 is:abc” == “abc” i.e false.
I hope you liked the Core Java Quiz. If you think I have missed some important areas, let me know and I will add some more tricky quiz questions here.
Next Quiz: Java String Quiz
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.
Even if you use a multiple choice approach, the answer may not be true or false. Example given: You asked for java keywords, and rated my answer incorrect. But null is no keyword, nbut the null literal. I noticed several of such things but did’nt took the time to write everything down. I’ll visit again and try to give more comments. Thanks for your efforts, it helps in preparing very simple tasks. But they’re far away from what I excpect fromwhat I expect students at my university to master once they have terminated their bachelor courses.
- Unamuno
The question and answers for java keywords are correct, let me drop you an email for this.
- Pankaj
excelent
- Williams Ramos Horizonte
The quiz is very good but IMO it contains mistakes. “null” cannot be used as a name of variable.Therefore, it is a reserved word in Java. This is output from javac. test.java: error: expected String null; ^
- Yevgeny
null is not a reserved keyword, please check below link. https://docs.oracle.com/javase/tutorial/java/nutsandbolts/\_keywords.html
- Pankaj
true, false, and null might seem like keywords, but they are actually literals; you cannot use them as identifiers in your programs.
- pa1
Hi Pankaj, Goto statement is not applicable in JAVA so how goto is keyword for JAVA
- Rita
Excellent JAVA Core quiz. I realized that I need to practice more the basic topics, We apreciate all your efforts. Thanks Regards
- Miguel Torres
good job…a very good medium for begineers .
- rahul malgujar
Good job! Thanks. Only one remark: question " Can we have two main methods in a java class?" The answer no is incorrect. Because yes, we can have 2 methods, for example: public class A { public static void main( Stting [] args) {} public void main( int[] args) {} } Why not?)
- Aly
I think you didn’t checked the question properly, you are iterating the same thing in the question explanation.
- Pankaj
Description of answer to question 11 about multiple exceptions handling depends on language level, although it’s сompile time error in any case. java multi-catch statement is not supported in -source 1.6
- Alex
Hi Alex, Any programming test always assume the latest version. For example, if you have a lambda program, you shouldn’t say that output depends on whether you are on java 8 or lower.
- Pankaj
Hi I need SQL program like many to one, one to one, one to many on different different kind. who has been asked in interview …
- Niranjan Kumaar
doing good job sir
- vikash
Greetings from Venezuela, good job
- Luis Bravo
Thanks for this great test! It showed me a lot of gaps in my knowledge! It would be great to have some more ! :-)
- Svetik
Good questions! Thanks for your quiz.
- Peter Alexay
Where to start quiz. I am not able to see any link
- Rhushikesh
I was editing the Quiz questions, so it was unavailable for some time. It’s back up again now, please give it a try. Thanks.
- Pankaj
Nice to learn via Quiz!
- Anita
Good questions. The best part was the explanation of the quiz answers at the end for review.
- Sujoy
Thanks a lot for the effort put to make this quiz. Really helped refresh all the basics. Now that I have got a taste for a quality quiz, I would love to see similar quiz for more advanced topics like Collections and Threads. Once again, Great work! Thanks.
- Jawad Ali
Good questions
- java reader
Very instructive
- Yannick loic
This was an interesting quiz for me. I just found out I need more practice in Java.
- koreanOppa
It was very good quiz!! :) Awesome work
- Raviraj BK
This is a good warm up quiz. I realised I still have so many things to do
- kaka
One of the questions were to select java core concepts from the options. One of the options were ‘Generics’ which was actually a link to Generics page. When I accidentally clicked on it, it took me to another page. Due to this, I could not complete the quiz. Please remove that link so that it won’t happen again for others.
- Eswar
Thanks for letting us know, i have fixed it.
- Pankaj
Question 6>> WRONG>> My output is Super! I get an error, too, but the question was >> What will be the output of below program?
- Hubert
Did you run the code in Eclipse, use command line and you will see that output is correct? Check this thread to understand why you got the output. https://stackoverflow.com/questions/49633887/compiler-error-but-program-executes-fine
- Pankaj
Looks like Pankaj sir has made some changes to this set of questions. Earlier I was completely correct, but now the marked answers are showing as the wrong answer but explanation is correct. I also did google and tried output code in eclipse. I am double sure about this mistake. Pankaj sir plz cross check this issue. The explanation shows correct answers and I have marked same answer but it’s highlighted by red color.
- Ram Sharan
Are you sure about question 8? I just copied and paste your code on IntelliJ and I got compilation error.
- Enrico
Hello Pankaj, Your site has some problem. I have attempted only 5 questions, and finished my quiz.but it showing all the questions are attempted. with incorrect answer.
- nisha
Yes, when you finished the quiz. Any question you didn’t attempted will be considered as incorrectly answered. Just like any exams, if you won’t provide answer to a question, you won’t get any marks for it.
- Pankaj
Do you have a source code when making this quiz, did you use php for this?
- Khyn Harold Jay Antoque
Java Runtime Environment (JRE) contains JVM, class libraries, and other supporting files.
- Tom
I’m not sure what java version this was written against, but you most certainly can use Enums in switch statements. You couldn’t use strings in switch statements before Java 7, but even before that you could use Enums. Even the link in the description for why “Enums can’t be used in switch statements.” says that they can be used in switch statements.
- Nate
Yes, you are right and so does the question. You have to select statements that are true for Enum.
- Pankaj
Thanks for the quiz. 15th question blew my mind!
- Naseem Ahamed
in question 4 i have copy your code and getting out is ‘c = A’ i have selected that option only but it says wrong option
- Achyut
Sorry about that, some error happened when I was editing the question. I have fixed it.
- Pankaj
This is a good warm up quiz. I realised I still have so many things to do
- kaka
One of the questions were to select java core concepts from the options. One of the options were ‘Generics’ which was actually a link to Generics page. When I accidentally clicked on it, it took me to another page. Due to this, I could not complete the quiz. Please remove that link so that it won’t happen again for others.
- Eswar
Thanks for letting us know, i have fixed it.
- Pankaj
Question 6>> WRONG>> My output is Super! I get an error, too, but the question was >> What will be the output of below program?
- Hubert
Did you run the code in Eclipse, use command line and you will see that output is correct? Check this thread to understand why you got the output. https://stackoverflow.com/questions/49633887/compiler-error-but-program-executes-fine
- Pankaj
Looks like Pankaj sir has made some changes to this set of questions. Earlier I was completely correct, but now the marked answers are showing as the wrong answer but explanation is correct. I also did google and tried output code in eclipse. I am double sure about this mistake. Pankaj sir plz cross check this issue. The explanation shows correct answers and I have marked same answer but it’s highlighted by red color.
- Ram Sharan
Are you sure about question 8? I just copied and paste your code on IntelliJ and I got compilation error.
- Enrico
Hello Pankaj, Your site has some problem. I have attempted only 5 questions, and finished my quiz.but it showing all the questions are attempted. with incorrect answer.
- nisha
Yes, when you finished the quiz. Any question you didn’t attempted will be considered as incorrectly answered. Just like any exams, if you won’t provide answer to a question, you won’t get any marks for it.
- Pankaj
Do you have a source code when making this quiz, did you use php for this?
- Khyn Harold Jay Antoque
Java Runtime Environment (JRE) contains JVM, class libraries, and other supporting files.
- Tom
I’m not sure what java version this was written against, but you most certainly can use Enums in switch statements. You couldn’t use strings in switch statements before Java 7, but even before that you could use Enums. Even the link in the description for why “Enums can’t be used in switch statements.” says that they can be used in switch statements.
- Nate
Yes, you are right and so does the question. You have to select statements that are true for Enum.
- Pankaj
Thanks for the quiz. 15th question blew my mind!
- Naseem Ahamed
in question 4 i have copy your code and getting out is ‘c = A’ i have selected that option only but it says wrong option
- Achyut
Sorry about that, some error happened when I was editing the question. I have fixed it.
- Pankaj
The JRE includes the JVM, which is what actually interprets the byte code and runs your program. To do this the JVM uses libraries and other files provided by the JRE.
- joey
LOL , at first question , answer is wrong The correct will be int[] array={1,2,3}; Not int array[] = {1,2,3};
- Dragos Todoroscean
Did you ever try to run it? I did and here it is from the Shell.
- Pankaj
the page shows “There is no question” for me, in all the quizzes! why?
- Azin
There was some issue, which has been fixed now.
- Pankaj
Thanks, for Question 5, there is no main method in the code, that be static or not
- azin
Ah, I mistakenly removed it while doing some editing. I have fixed it.
- Pankaj
great work, thanks
- azin
Really nice que’s. please update more tricky que’s
- Kokila Viswanathan
The last question was the final nail in the coffin. Extremely good questions sir ,Keep making more!!
- Rishabh Sharma
Really Good Questions. Thanks sir…
- Himanshu Saxena