logo

Java programmas izvade | 5. komplekts

Paredzēt šādu Java programmu izvadi.
1. programma:  
 

Java
// 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);  } } //end class 

Izvade :

String


Paskaidrojums : gadījumā metodes pārslodze kompilācijas laikā tiek izvēlēta visspecifiskākā metode. Tā kā “java.lang.String” ir specifiskāks veids nekā “java.lang.Object”. Šajā gadījumā tiek izvēlēta metode, kuras parametrs ir "String". 
2. programma:  
 



Java
// 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);  } } //end class 

Izvade:  
 

Compile Error at line 19.


Paskaidrojums: Šajā gadījumā metode Pārslodze kompilēšanas laikā tiek izvēlēta visspecifiskākā metode. 
Tā kā “java.lang.String” un “java.lang.Integer” ir specifiskāks veids nekā “java.lang.Object”, taču starp “java.lang.String” un “java.lang.Integer” neviens nav konkrētāks. 
Šajā gadījumā Java nevar izlemt, kuru metodi izsaukt. 
3. programma:  
 

Java
// 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));  } } //end class 

Izvade: 
 

abcd abc false abcd abcd true


Paskaidrojums: Java valodā String ir nemainīgs, un virknes buferis ir mainīgs. 
Tātad virkne s2 un s1 norāda uz vienu un to pašu virkni abc. Un pēc izmaiņu veikšanas virkne s1 norāda uz abcd un s2 norāda uz abc, tātad nepatiesa. Virknes buferī gan sb1, gan sb2 norāda uz vienu un to pašu objektu. Tā kā virknes buferis ir mainīgs, veicot izmaiņas vienā virknē, veiciet izmaiņas arī otrā virknē. Tātad abas virknes joprojām norāda uz vienu un to pašu objektu pēc izmaiņu veikšanas objektā (šeit sb2).
4. programma:  
 

Java
// 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);  } } //end class 

Izvade:  
 

Compile Error at line 8


Paskaidrojums:  
1. 12. rindiņā '' println izraisa skaitļu automātisku izlikšanu kā virknes. Tātad tas neveic pievienošanu, bet pievieno kopā kā virkni. 
2. Line11 += veic automātisku apraidi uz īsu. Tomēr skaitli 123456 nevar ietvert īstermiņā, tāpēc tiek iegūta negatīva vērtība (-7616). 
(PIEZĪME — īsi 2 baiti -32768 līdz 32767) Šeit skaitlis 123456 nenozīmē, ka int zit vērtība parāda int vērtības garumu. 
3. Pārējās divas ir sarkanās siļķes, jo kods nekad netiks apkopots 8. rindiņas dēļ. 
Jebkurš skaitlis, kas sākas ar nulli, tiek uzskatīts par oktālu skaitli (kas ir no 0 līdz 7).
 

izveidot savienojumu ar datubāzi java