Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b0b36pjv [2025/05/31 22:52] – [Otevření a čteni textového souboru (java.io)] zapleka3 | statnice: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:// | [[https:// | ||
Line 491: | Line 491: | ||
</ | </ | ||
- | * `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`, | + | |
- | * 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(" | + | * Přidávej popisné chybové zprávy (`new IOException(" |
- | * Vlastní výjimky používej pro specifické, | + | * Vlastní výjimky používej pro specifické, |
==== Shrnutí podle typu výjimky ==== | ==== Shrnutí podle typu výjimky ==== | ||
Line 758: | Line 758: | ||
* synchronized – zajišťuje, | * synchronized – zajišťuje, | ||
- | * 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) |