Рубрики

Вывод программы Java | Комплект 8

Уровень сложности : Средний

Прогнозировать выход следующих программ Java.

Программа 1:

class GfG

{

    public static void main(String args[])

    {

        String s1 = new String("geeksforgeeks");

        String s2 = new String("geeksforgeeks");

        if (s1 == s2) 

            System.out.println("Equal");

        else

            System.out.println("Not equal");

    }

}

Выход:

Not equal

Объяснение: Поскольку s1 и s2 — это два разных объекта, ссылки не совпадают, а оператор == сравнивает ссылку на объект. Таким образом, он печатает «Не равно», чтобы сравнить фактические символы в строке. Необходимо использовать метод .equals ().

Программа 2:

class Person 

    private void who()

    {

        System.out.println("Inside private method Person(who)");

    }

   

    public static void whoAmI()

    {

        System.out.println("Inside static method, Person(whoAmI)");

    }

   

    public void whoAreYou()

    {

        who();

        System.out.println("Inside virtual method, Person(whoAreYou)");

    }

}

  

class Kid extends Person

    private void who()

    {

        System.out.println("Kid(who)");

    }

   

    public static void whoAmI()

    {

        System.out.println("Kid(whoAmI)");

    }

   

    public void whoAreYou()

    {

        who();

        System.out.println("Kid(whoAreYou)");

    }

}

public class Gfg

{

    public static void main(String args[]) 

    {

        Person p = new Kid();  

        p.whoAmI(); 

        p.whoAreYou(); 

    }

}

Выход:

Inside static method, People(whoAmI)
Kid(who)
Kid(whoAreYou)

Объяснение: Статическое связывание (или время компиляции) происходит для статических методов. Здесь p.whoAmI () вызывает статический метод, поэтому он вызывается во время компиляции, следовательно, приводит к статическому связыванию и печатает метод в классе People .
Принимая во внимание, что p.whoAreYou () вызывает метод в классе Kid, поскольку по умолчанию Java воспринимает его как виртуальный метод, т. Е. Динамическое связывание.

Программа 3:

class GfG

{

    public static void main(String args[])

    {

        try

        {

            System.out.println("First statement of try block");

            int num=45/3;

            System.out.println(num);

        }

        catch(Exception e)

        {

            System.out.println("Gfg caught Exception");

        }

        finally

        {

            System.out.println("finally block");

        }

        System.out.println("Main method");

    }

}

Выход:

First statement of try block
15
finally block
Main method

Объяснение:
Поскольку исключения не существует, блок catch не вызывается, но блок finally всегда выполняется после блока try независимо от того, обрабатывается ли исключение или нет.

Программа 4:

class One implements Runnable 

{

    public void run() 

    {

        System.out.print(Thread.currentThread().getName());

    }

}

class Two implements Runnable 

{

    public void run() 

    {

        new One().run();

        new Thread(new One(),"gfg2").run();

        new Thread(new One(),"gfg3").start();

    }

}

class Three 

{

    public static void main (String[] args) 

    {

        new Thread(new Two(),"gfg1").start();

    }

}

Выход:

gfg1gfg1gfg3

Объяснение: Первоначально новый поток запускается с именем gfg1, затем в классе два первый метод run запускает поток с именем gfg1 , затем после этого создается новый поток, вызывающий метод run, но поскольку новый поток можно создать, вызвав только метод start поэтому предыдущий поток выполняет действие и снова печатается gfg1. Теперь новый поток создается путем вызова метода start, поэтому новый поток начинается с имени gfg3 и, следовательно, печатает gfg3 .

Эта статья предоставлена Пратиком Агарвалом . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Вывод программы Java | Комплект 8

0.00 (0%) 0 votes