8.11.22

Izmene na blogu - nove stranice i još lakše praćenje sadržaja

Pročitaj i ostale novosti u vezi sa blogom.

Radi lakšeg snalaženja na blogu, napravio sam još dve stranice i postavio linkove ka njima u glavnom meniju pri vrhu bloga. Prva stranica služi za lakše pronalaženje svih Java vesti, a druga za brže pronalaženje svih novosti u vezi sa blogom.

Za razliku od stranice "Besplatni Java kurs" na kojoj su članci poređani od najstarijih ka najnovijima, redosled linkova na novim stranicama je od najnovijih ka najstarijim člancima.

Svi dosadašnji članci su ažurirani tako da pri vrhu, odmah ispod naslova, sadrže kratak podnaslov koji pojašnjava o kojoj vrsti teksta se radi kao i link ka ostalim člancima iz iste oblasti. Do sada je sličan link postojao samo za tekstove koji su deo Java tutorijala i nalazio se pri dnu, nakon teksta. I ti tekstovi su ažurirani tako da umesto linka na kraju teksta imaju podnaslov koji sadrži link na početku. Tekstovi koji su deo Java tutorijala i dalje sadrže link ka sledećem tekstu na dnu stranice.

Svi članci tutorijala Java programiranja su osveženi tako da je sada sav programski kôd vizuelno grupisan u sivi pravougaonik koji sa leve strance ima crvenu liniju kao granicu.

Primer novog izgleda programskog kôda:

System.out.println("Ovo je primer");

Takođe, izlaz koji nastaje izvršavanjem programskog kôda vizuelno je grupisan u sivi pravougaonik koji sa leve stranice ima plavu granicu.

Rezultat izvršavanja prethodnog kôda u novom ruhu izgleda ovako:

Ovo je primer

Zahvaljujući ovim promenama sada je lakše i brže uočiti i razumeti koji deo članka je programski kôd, šta je izlaz i razdvojiti ih od opisnog teksta i objašnjenja.

7.11.22

Java - TreeSet

Besplatni Java kurs - 53. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

TreeSet bi se moglo prevesti na naš jezik kao drvoliki skup. Drvoliki skupovi sadrže samo jedinstvene članove, što je i inače odlika skupova u matematici. Pristup članovima drvolikog skupa je veoma brz zahvaljujući uređenju članova koje liči na drvo čije se grane račvaju, otuda i naziv. Članovi drvolikog skupa su uređeni u rastućem poretku i ne mogu biti prazni (null).

Java TreeSet - Upotreba

Pre svega potrebno je uvesti klasu TreeSet iz paketa java.util:

import java.util.TreeSet;


Pročitaj i nastavak:

Besplatni Java kurs - 54. deo - Uvod u objektno orijentisano programiranje

2.11.22

Java - PriorityQueue

Besplatni Java kurs - 52. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

PriorityQueue je red sa prioritetom. Za razliku od običnih redova koji se opslužuju po FIFO principu, redovi sa prioritetom ne prate istu logiku (da se prvi element koji pristigne u red prvi i obradi), već redosled obrade zavisi od prioriteta.

Java PriorityQueue - Upotreba

Prvo je neophodno uvesti interfejs PriorityQueue iz paketa java.util:

import java.util.PriorityQueue;


Pročitaj i nastavak:

Besplatni Java kurs - 53. deo - TreeSet

31.10.22

Java - Queue

Besplatni Java kurs - 51. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Queue bi u prevodu na naš jezik značilo red. Redovi u programiranju su veoma slični redovima u stvarnom životu: svaki novi element koji pristigne uvek ide na kraj reda, dok će prvi sledeći element koji će biti uslužen biti onaj koji je prvi, tj. na početku reda. Ovakav princip se programiranju naziva FIFO (First In - First Out), odnosno, na našem jeziku: prvi element koji uđe u red prvi će i izaći.

Java Queue - Upotreba

Potrebno je najpre uvesti interfejs Queue iz paketa java.util:

import java.util.Queue;


Pročitaj i nastavak:

Besplatni Java kurs - 52. deo - PriorityQueue

20.10.22

Java 19 - Šta donosi najnovija verzija Jave?

Pročitaj i ostale Java vesti.

Najnovija verzija programskog jezika Java, Java 19, objavljena je 20. sep. 2022. i donosi nekoliko promena:

  • Record Patterns (Preview) - JEP 405
  • Linux/RISC-V Port - JEP 422
  • Foreign Function & Memory API (Preview) - JEP 424
  • Virtual Threads (Preview) - JEP 425
  • Vector API (Fourth Incubator) - JEP 426
  • Pattern Matching for switch (Third Preview) - JEP 427
  • Structured Concurrency (Incubator) - JEP 428

16.10.22

Java - LinkedHashSet

Besplatni Java kurs - 50. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

LinkedHashSet ili uvezani heš skup predstavlja uređeni skup heš vrednosti. Za razliku od običnog heš skupa u kojem redosled ne postoji, LinkedHashSet čuva heš vrednosti u tačno određenom redosledu.

Java HashSet - Upotreba

Prvo je potrebno uvesti klasu LinkedHashSet iz paketa java.util:

import java.util.LinkedHashSet;


Pročitaj i nastavak:

Besplatni Java kurs - 51. deo - Queue

15.4.22

Java 18 - Nove mogućnosti

Pročitaj i ostale Java vesti.

Najnovija verzija Jave, Java 18, koja je nedavno objavljena (22. mar. 2022.) stigla je sa nekoliko promena:

  • UTF-8 by Default - JEP 400
  • Simple Web Server - JEP 408
  • Reimplement Core Reflection with Method Handles - JEP 416
  • Internet-Address Resolution SPI (Service-provider Interface) - JEP 418
  • Code Snippets in Java API Documentation - JEP 413
  • Vector API (Third Incubator) - JEP 417
  • Foreign Function and Memory API (Second Incubator) - JEP 419
  • Pattern Matching for switch (Second Preview) - JEP 420
  • Deprecated Finalization for Removal - JEP 421
  • String Deduplication Support - JEP 192

14.10.21

Java - HashSet

Besplatni Java kurs - 49. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

HashSet bi se moglo prevesti kao skup heš vrednosti ili heš skup. Heš vrednosti su vrednosti koje nastaju primenom heš funkcija na ulazne vrednosti. Heš funkcije su tema za sebe i potrebo je više prostora za opisivanje svih pojedinosti koje su neophodneza potpuno razumevanje, ali pokušaću da objasnim ukratko, samo osove koje su neophodne za razumevanje heš skupova.

Heš funkcije

Kao i svaka druga matematička funkcija, heš funkcija (f) preobražava ulaznu vrednost (x) u izlaznu vrednost (y). Jedna od najjednostavnijih heš funcija je ostatak pri deljenju. Uzmimo za primer da je naša heš funcija ostatak pri deljenju brojem 10. Hajde da primenimo našu funkciju na nekoliko ulaznih vrednosti:

1. slučaj
f = ostatak pri deljenju brojem 10
x = 15
f(x) = f(15) = ostatak deljenja broja 15 brojem 10 = 5
znači rešenje je:
y = 5

2. slučaj
f = ostatak pri deljenju brojem 10
x = 23
f(x) = f(23) = ostatak deljenja broja 23 brojem 10 = 3
i rešenje je:
y = 3

3. slučaj
f = ostatak pri deljenju brojem 10
x = 195
f(x) = f(195) = ostatak deljenja broja 195 brojem 10 = 5
rešenje je (ponovo):
y = 5

Iz primera se može zaključiti nekoliko stvari:
  • heš funkciju je moguće primeniti na beskonačan broj ulaznih vrednosti
  • heš funkcija može dati isti rezultat za različite ulaze (u našem primeru prvi i treći slučaj imaju isto rešenje: i za x = 15 i za x = 195 rešenje je 5)
  • nemoguće je zaključiti koja vrednost je bila ulazna vrednost heš funkcije na osnovu rezultata (u našem primeru, kada imamo rešenje 5 ne možemo znati da li je na ulazu bilo 15, 195 itd.)

Ove tri osobine treba imati na umu pri radu sa heš skupovima, ali i pri radu sa bilo kojom drugom heš kolekcijom - kako u Javi, tako i u drugim programskim jezicima.

Skupovi heš vrednosti predstavljaju Java kolekcije koje sadrže jedinstvene elemente i veoma su brzi za pretragu. Java skupovi heš vrednosti se koriste upotrebom metoda klase HashSet.

30.9.21

Java - EnumSet

Besplatni Java kurs - 48. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

EnumSet bi u prevodu na naš jezik značilo skup nabrajanja. Skupovi nabrajanja su Java kolekcije koje mogu sadržati nijedan, jedan ili više elemenata nabrajanja. Java skupovi nabrajanja se stvaraju upotrebom metoda klase EnumSet.

Java EnumSet - Upotreba

Najpre je neophodno uvesti EnumSet iz paketa java.util na sledeći način:

import java.util.EnumSet;

Zatim je potrebno napraviti nabrajanje. Iskoristićemo primer iz prethodnog dela kursa:

enum DanUNedelji {
    PONEDELJAK,
    UTORAK,
    SREDA,
    CETVRTAK,
    PETAK,
    SUBOTA,
    NEDELJA
}

Konačno sve je spremno za stvaranje skupova nabrajanje od nabrajanja DanUNedelji

Stvaranje skupa nabrajanja

Ako je potrebno napraviti skup koji će sadržati sve elemente nabrajanja DanUNedelji, koristi se metoda allOf():

EnumSet<DanUNedelji> sviDaniUNedelji;
sviDaniUNedelji = EnumSet.allOf(DanUNedelji.class);

31.8.21

Java 17 stiže za dve nedelje!

Pročitaj i ostale Java vesti.

Za oko dve nedelje (14. sep. 2021.) trebalo bi da izađe Java 17 - najnovija verzija programskog jezika Java. To će biti prva verzija posle verzije 11 koja će imati dugoročnu podršku. Besplatna dugoročna podrška trajaće bar do septembra 2027. god.

Java 17 sa sobom donosi četrnaest poboljšanja:

  • Restore Always-Strict Floating-Point Semantics - JEP 306
  • Enhanced Pseudo-Random Number Generators - JEP 356
  • New macOS Rendering Pipeline - JEP 382
  • macOS/AArch64 Port - JEP 391
  • Deprecate the Applet API for Removal - JEP 398
  • Strongly Encapsulate JDK Internals - JEP 403
  • Pattern Matching for switch (Preview) - JEP 406
  • Remove RMI Activation - JEP 407
  • Sealed Classes - JEP 409
  • Remove the Experimental AOT and JIT Compiler - JEP 410
  • Deprecate the Security Manager for Removal - JEP 411
  • Foreign Function & Memory API (Incubator) - JEP 412
  • Vector API (Second Incubator) - JEP 414
  • Context-Specific Deserialization Filters - JEP 415