Značilnosti Jave
Iz E-študij, proste zakladnice študentskega znanja
Nekatere specifične značilnosti programskega jezika Java:
Avtomatska pretvorba ovojnih tipov - avtomatski "boxing" in "unboxing"
Integer I1 = new Integer(5); // pred Javo 5.0 Integer I2 = 5; // boxing Number N = 2.2f; int i1 = I1; // unboxing Integer I3 = null; int i2 = I3; // NAPAKA!!
Krajši zapis zanke for (za tabele in zbirke)
int[] t = {1,2,3,4,5,6,7,8,9,10}; for (int i : t) { // zadaj se skriva iterator!! System.out.println(i); } List sez = Arrays.asList(t); for (Object i : sez) {...}
V svojem razredu moramo definirati ustrezen generični iterator ...
Naštevni tipi
public enum Ocena = {5,6,7,8,9,10,BREZ}; class Student { ... Ocena oc1=Ocena.BREZ; Ocena oc2=Ocena.8; ... }
Nedoločeno število argumentov - "varargs"
public static void izpis(String s1, String...ostali); { System.out.println(s1); for (String i:ostali) System.out.println(i); ... }
Oblikovanje izpisa – printf(format,args)
System.out.printf("%4d %5.3f %-6s",15,3.14159,"Haha");
Statični import stavek
import static java.lang.System.*; public class Test { public static void main(String[] args) { out.println("Dober dan!"); } }
Dopolnjen razred Arrays
int[][] t1={{1,2,3},{4,5,6},{7,8,9}}; int[][] t2={{1,2,3},{4,5,6},{7,8,9}}; System.out.println(Arrays.deepToString(t1)); if(Arrays.deepEquals(t1,t2)) {...} System.out.println(Arrays.deepHashCode(t1));
Queue, PriorityQueue in Comparator
- Metode vmesnika Queue in razreda PriorityQueue:
- element(), offer(E), peek(), pool(), remove()
- PriorityQueue upošteva naravni red ali redefinirani Comparator
PriorityQueue<Integer> pv1 = new PriorityQueue<Integer>(10); PriorityQueue<Integer> pv2 = new PriorityQueue<Integer>(10); new Comparator<Integer>(){ public int compare(Integer i, Integer j) { int rez = i%2-j%2; if (rez==0) rez=i-j; return rez; } } ); for (int i=0; i<10; i++) { pv1.offer(10-i); pv2.offer(10-i); }