Skip to content
Related Articles

Related Articles

Save Article
Improve Article
Save Article
Like Article

Java Tricky Output Questions

  • Difficulty Level : Medium
  • Last Updated : 16 Aug, 2019

Question 1: What will be the Output of the below code:

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




public class A {
    public static void main(String[] args)
    {
        if (true)
            break;
    }
}

Choices:

  • a) Nothing
  • b) Error

Answer: b) Error
Reason: Break statement can only be used with loop or switch. So, using break with if statement causes “break outside switch or loop” error.

 



Question 2: What will be the Output of the below code:




public class A {
    public static void main(String[] args)
    {
        System.out.println('j' + 'a' + 'v' + 'a');
    }
}

Choices:

  • a) java
  • b) Something else (Other than simple concatenation)

Answer: b) Something else (Other than simple concatenation)
Reason: “java” would be printed if String literals (in double quotes) are used, but in the question since character literals has been used, these won’t be concatenated. Therefore After execution of the program, an addition of each equivalent ASCII(Unicode) value of the character will be obtained.
Hence the output is 106 + 97 + 118 + 97 = 418

 

Question 3: What will be the Output of the below code:




public class A {
    public static void main(String[] args)
    {
        int $_ = 5;
    }
}

Choices:

  • a) Nothing
  • b) Error

Answer: a) Nothing
Reason: It looks like $ will cause an error, but it won’t. In java, identifier rule says, identifier can start with any alphabet or underscore (“_”) or dollar (“$”). So answer is Nothing.

 



Question 4: What will be the Output of the below code:




public class Demo{
    public static void main(String[] arr){
        Integer num1 = 100;
        Integer num2 = 100;
        Integer num3 = 500;
        Integer num4 = 500;
          
        if(num1==num2){
            System.out.println("num1 == num2");
        }
        else{
            System.out.println("num1 != num2");
        }
        if(num3 == num4){
            System.out.println("num3 == num4");
        }
        else{
            System.out.println("num3 != num4");
        }
    }
}

Choices:

  • a) num1 == num2
        num3 == num4
  • b) num1 == num2
        num3 != num4
  • c) num1 != num2
        num3 == num4
  • d) num1 != num2
        num3 != num4

Answer: b)num1 == num2
                  num3 != num4
Reason: We always thought that whenever two object references are compared using “==”, it always evaluates to “false”. But here Integer caching changes the results.Integer class has a caching range of -128 to 127. Whenever a number is between this range and autoboxing is used, it assigns the same reference. That’s why for value 100, both num1 and num2 will have the same reference, but for the value 500 (not in the range of -128 to 127), num3 and num4 will have different reference.

 

Question 5: What will be the Output of the below code:




public class Demo{
    public static void main(String[] arr){
          
    }
    public static void main(String arr){
          
    }
}

Choices:

  • a) Nothing
  • b) Error

Answer: a) Nothing
Reason: We can overload main() too. But JVM will always call main() that has String[] argument.

More Java Output Questions




My Personal Notes arrow_drop_up
Recommended Articles
Page :