The wiki page is under active construction, expect bugs.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b0b36pjv [2025/05/31 22:52] – [Otevření a čteni textového souboru (java.io)] zapleka3statnice:bakalar:b0b36pjv [2025/06/01 10:19] (current) – [Synchronized, Volatile, Join] zapleka3
Line 1: Line 1:
-==== Programování v jazyce JAVA: vlastnosti a koncepce jazyka. Principy objektového programování. ====+====== Programování v jazyce JAVA: vlastnosti a koncepce jazyka. Principy objektového programování. ======
  
 [[https://fel.cvut.cz/cz/education/bk/predmety/50/10/p5010706.html|B0B36PJV]] [[https://cw.fel.cvut.cz/wiki/courses/b0b36pjv/prednasky|Webové stránky předmětu]] [[https://fel.cvut.cz/cz/education/bk/predmety/50/10/p5010706.html|B0B36PJV]] [[https://cw.fel.cvut.cz/wiki/courses/b0b36pjv/prednasky|Webové stránky předmětu]]
Line 491: Line 491:
 </code> </code>
  
-* `catch` může být více, podle typu výjimky. +  * `catch` může být více, podle typu výjimky. 
-* `finally` se vždy vykoná – i když dojde k výjimce nebo `return`.+  * `finally` se vždy vykoná – i když dojde k výjimce nebo `return`.
  
 ==== Try-with-resources ==== ==== Try-with-resources ====
Line 522: Line 522:
  
 ==== Best practices ==== ==== Best practices ====
-* Zachytávej co nejkonkrétnější typy výjimek, až poté obecné (`Exception`, `Throwable`). +  * Zachytávej co nejkonkrétnější typy výjimek, až poté obecné (`Exception`, `Throwable`). 
-* Nepoužívej prázdné `catch` bloky – vždy loguj nebo informuj uživatele. +  * Nepoužívej prázdné `catch` bloky – vždy loguj nebo informuj uživatele. 
-* Uvolňuj prostředky pomocí `finally` nebo `try-with-resources`. +  * Uvolňuj prostředky pomocí `finally` nebo `try-with-resources`. 
-* Přidávej popisné chybové zprávy (`new IOException("Soubor nenalezen")`). +  * Přidávej popisné chybové zprávy (`new IOException("Soubor nenalezen")`). 
-* Vlastní výjimky používej pro specifické, smysluplné chyby v aplikaci.+  * Vlastní výjimky používej pro specifické, smysluplné chyby v aplikaci.
  
 ==== Shrnutí podle typu výjimky ==== ==== Shrnutí podle typu výjimky ====
Line 758: Line 758:
  
   * synchronized – zajišťuje, že kód (kritická sekce) provádí v daném čase jen jedno vlákno   * synchronized – zajišťuje, že kód (kritická sekce) provádí v daném čase jen jedno vlákno
-  * volatile – proměnná může být měněna z více vláken, JVM nezachová její hodnotu v cache+  * volatile – proměnná může být měněna z více vláken, JVM nezachová její hodnotu v cache (když se změní na false - informuje to ostatní vlákna, ale ne jako counter)
   * join() – čeká na dokončení jiného vlákna   * join() – čeká na dokončení jiného vlákna
   * wait() / notify() – vlákna čekají a signalizují si mezi sebou (pouze uvnitř synchronized bloku)   * wait() / notify() – vlákna čekají a signalizují si mezi sebou (pouze uvnitř synchronized bloku)
Navigation

Playground

QR Code
QR Code statnice:bakalar:b0b36pjv (generated for current page)