logo

Излаз Јава програма | Сет 8

Ниво тежине : Интермедиате
Предвидите излаз следећих Јава програма.
Програм 1:
 

Java
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


Објашњење: Пошто су с1 и с2 два различита објекта, референце нису исте и оператор == упоређује референцу објекта. Дакле, штампа 'Није једнако' за упоређивање стварних знакова у стрингу .екуалс() метода се мора користити. 
 
Програм 2:  
 



Java
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 Person(whoAmI) Kid(who) Kid(whoAreYou)


Објашњење: Статичко везивање (или време компајлирања) се дешава за статичке методе. Ево п.вхоАмИ() позива статичку методу тако да се она позива током времена компајлирања, што доводи до статичког повезивања и штампа методу у класи Персон. 
Док п.вхоАреИоу() позива метод у Кид класе пошто је Јава подразумевано узима као виртуелни метод, тј. динамичко везивање.
 
Програм 3:  
 

Java
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


Објашњење:  
Пошто нема изузетка, блок цатцх се не позива већ коначно блок се увек извршава после блока покушаја без обзира да ли се обрађује изузетак или не.
  
Програм 4:  
 

Java
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


Објашњење: У почетку се нова нит покреће именом гфг1 онда у класи два метода првог покретања покреће нит са именом гфг1 онда се након тога креира нова нит која позива методу рун, али пошто се нова нит може креирати само позивањем старт методе тако да претходна нит изврши акцију и поново гфг1 се штампа. Сада се нова нит креира позивањем старт методе тако да нова нит почиње са гфг3 назив и отуда отисци гфг3 .
 

како одабрати колоне из различитих табела у скл-у