Рубрики

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

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

Программа 1:

// Main.java

public class Main

{

    public static void gfg(String s)

    {    

        System.out.println("String");

    }

    public static void gfg(Object o)

    {

        System.out.println("Object");

    }

  

    public static void main(String args[])

    {

        gfg(null);

    }

} // конец класса

Выход :

String

Объяснение : В случае перегрузки метода наиболее специфический метод выбирается во время компиляции. Поскольку «java.lang.String» является более конкретным типом, чем «java.lang.Object». В этом случае выбирается метод, который принимает «String» в качестве параметра.

Программа 2:

// Main.java

public class Main

{

    public static void gfg(String s)

    {    

        System.out.println("String");

    }

    public static void gfg(Object o)

    {

        System.out.println("Object");

    }

    public static void gfg(Integer i)

    {

        System.out.println("Integer");

    }

  

    public static void main(String args[])

    {

        gfg(null);

    }

} // конец класса

Выход:

Compile Error at line 19.

Объяснение: В этом случае метода Overloading наиболее специфический метод выбирается во время компиляции.
Поскольку «java.lang.String» и «java.lang.Integer» является более конкретным типом, чем «java.lang.Object», но между «java.lang.String» и «java.lang.Integer» нет ничего более конкретный.
В этом случае Java не может решить, какой метод вызвать.

Программа 3:

// Main.java

public class Main

{

    public static void main(String args[])

    {

        String s1 = "abc";

        String s2 = s1;

        s1 += "d";

        System.out.println(s1 + " " + s2 + " " + (s1 == s2));

  

        StringBuffer sb1 = new StringBuffer("abc");

        StringBuffer sb2 = sb1;

        sb1.append("d");

        System.out.println(sb1 + " " + sb2 + " " + (sb1 == sb2));

    }

} // конец класса

Выход:

abcd abc false
abcd abcd true

Объяснение: В Java String является неизменным, а строковый буфер изменяемым.
Таким образом, строки s2 и s1 обе указывают на одну и ту же строку abc. И после внесения изменений строка s1 указывает на abcd, а s2 указывает на abc, следовательно, ложь. Находясь в строковом буфере, оба sb1 и sb2 оба указывают на один и тот же объект. Поскольку строковый буфер является изменяемым, внесение изменений в одну строку также вносит изменения в другую строку. Таким образом, обе строки по-прежнему указывают на один и тот же объект после внесения изменений в объект (здесь sb2).

Программа 4:

// Main.java

public class Main

{

    public static void main(String args[])

    {

        short s = 0;

        int x = 07;

        int y = 08;

        int z = 112345;

  

        s += z;

        System.out.println("" + x + y + s);

    }

} // конец класса

Выход:

Compile Error at line 8

Объяснение:
1. В строке 12 «» в println приводит к тому, что числа автоматически преобразуются в строки. Так что это не делает сложение, а складывается вместе как строка.
2. В строке 11 + = выполняет автоматическое приведение к короткому замыканию. Однако число 123456 не может содержаться внутри короткого замыкания, поэтому вы получите отрицательное значение (-7616).
(ПРИМЕЧАНИЕ — короткие 2 байта от -32,768 до 32,767), Здесь число 123456 не означает значение int z, оно показывает длину значения int
3. Эти две другие — красные сельди, так как код никогда не будет компилироваться из-за строки 8.
Любое число, начинающееся с нуля, рассматривается как восьмеричное число (0-7).

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

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

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

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

0.00 (0%) 0 votes