31.12.22

Srećni praznici!

 

Sve najbolje u Novoj 2023. godini! 


Mnogo sreće i zdravlja i, naravno, mnogo programiranja u Novoj godini.

Onima koji uče ili studiraju želim dobre ocene. Onima koji traže posao programera želim da nađu dobar i lepo plaćen posao. Onima koji već rade kao programeri želim da nauče još mnogo i da im se ostvare svi poslovni ciljevi.

Usput, fotografiju jelke koju sam iskoristio u ovom postu generisala je veštačka inteligencija, nije crtao čovek. Da ne pomisli neko da sam tek tako postavio nešto što nema veze sa programiranjem :)


Sve najbolje,
Dušan Rešin

4.12.22

Uvod u objektno orijentisano programiranje

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

Objektno orijentisano programiranje ili, skraćeno, OOP je srž modernog programiranja. Pojava objektno orijentisanog programiranja napravila je pravu revoluciju u ovoj oblasti.

Nastanak objektno orijentisanog programiranja

Za tvorca koncepta objekto orijentisanog programiranja smatra se Alan Kej, koji je i smislio naziv. ALan je ovaj koncept osmislio tokom 1966. i 1967. godine. Za prvi programski jezik koji je posedovao glavna OOP svojstva smatra se Simula(1967). Adam Kej je zajedno sa svojim saradnicima razvio programski jezik Smalltalk(1972), ali pravu popularizaciju objektno orijentisano programiranje doživelo je desetak godina kasnije kada je Bjarne Stroustrup stvorio novi programski jezik.

U to vreme najrasprostranjeniji programski jezik opšte namene bio je C, tako da se Bjarne opredelio da novi programski jezik zasnuje na upravo ovom programskom jeziku. Svoj novi objektno orijentisani jezik Bjarne je nazvao “C sa klasama” i to je zapravo bilo proširenje za programski jezik C koje mu je dodalo OOP mogućnosti. Kasnije je novi jezik evoluirao i dobio novi naziv - C++.

Programski jezik C++ je godinama bio najkorišćeniji i najpopularniji programski jezik. Zbog toga je postao nezaobilazan programski jezik na mnogim univerzitetima kao i u drugim obrazovnim ustanovama. C++ je uticao na gotovo sve savremene programske jezike uključujući i programski jezik Java.

Java je u početku bila isklučivo objektno orijentisan jezik, ali od verzije 8 uvedene su neke novine koje su omogućile i funkcionalno programiranje. Ali i ovi kao i svi ostali načini korišćenja programskog jezika Java u pozadini se primenjuju u objektno orijentisanom okruženju.

Osnovni pojmovi objektnog programiranja u programskom jeziku Java su klase i objekti.


Pročitaj i nastavak:

Besplatni Java kurs - 55. deo - Klase

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