Pokračování výuky jazyka Java Java 2

Předmět Programování v Java II navazuje na předmět Programování v Java I a rozvíjí dovednosti studentů v programování a využití běžně používaných technologií z ekosystému jazyka Java.

Organizace předmětu a Podmínky Absolvování

Bodované úlohy na cvičeních  - minimálně 10 z 25

Od prvního cvičení (týden 17. - 21.2.2025) se budou cvičení bodovat. Tedy na cvičení bude nutno vždy vyřešit úkol, za který budou přiděleny body obdobně jako v Java I. V semestru je 13. týdnů, na posledním se bude psát zápočtový test, jedno cvičení odpadne díky Velikonocím a sportovnímu dni, (čtvrteční cvika dvě odpadnou díky státnímu svátku) a na jdenom cvičení proběhne test praktických znalostí. Tedy 9-10 cvičení, na každém z nich bude možno získat 3 body. Celkem tedy 30. Zapsat lze pouze 25 bodů, ale vyšší počet vyřeší případnou běžnou frekvenci absence kvůli nemoci a nebude nutno řešit náhrady cvičení. V případě dlouhodobější nemocenské bude vše řešeno individuálně.

Domácí úkoly minimálně 0 bodů z 10

Každému bodovanému cvičení odpovídá jeden domácí úkol, za který je možno získat 1 bod. Domácí úkoly slouží k procvičování, jejich autorství není možno přesně ověřit, proto je zde rozděleno pouze omezené množství bodů.

Test praktických znalostí minimálně 7 bodů z 15

V týdnu od 31.3. - 4.4.2025 proběhne test praktických znalostí, na kterém se u počítače na učebně bude tvořit kód dle zadání (programovací test).

Témata:

  • Logování, logování vyjímek, efektivita logiování
  • Lombok
  • java record
  • enum, switch, pattern mathing
  • Functionla Interfaces
  • JPA entity a JPA entity s vazbami
  • CriteriaQuery

Semestrální projekt 10-25

Semestrální projekt se bude odevzdávat do systému kelvin nebo edison (bude upřesněno) a obhajovat individuálně v průběhu zkouškového období, termíny budou zveřejněny. Témata projektů bude vytvoření REST API serveru pro ukládání dat z hry, případně z GUI vytvořeného v rmci jiných předmětů.

Zápočtový test 10-25

Zápočtový test proběhne v posledním týdnu semestru a ověří teoretické znalosti formou elektronického testu v LMS.

Semestrální projekt

Vytvořte webovou aplikaci (back end v Javě - Spring/Quarkus) s rozhraním REST, front end v libovolné webové technologii nebo JavaFX.

Využijte projekt z minulého semestru (hru) a zaměřte se na ukládání dat. Data ukládejte s využitím REST API (Možno využít Swagger/Open Api generátor). Je možno také využít projektu do jiných předmětu kde je cílem vytvořit webovou aplikaci a řešení sloužit s projektem do předmětu Java2.

Aplikace bude využívat databázi prostřednictvím JPA. Budou využity minimálně 3 entity s vazbami mezi sebou. Minimálně jedna vazba bude alespoň 1:N.

Kombinované studium

Podmínky pro studenty kombinované formy jsou stejné. Jen neají bodované cvičení (tutoriály) a tudíž je jiná rozložení bodů ve zbývajících úkolech.

  • Domácí úkoly (0-20) - domácích úkolů je 5 po 4 bodech
  • Test praktických znalostí (10-25) - proběhne 25.4.2025 v 7:15 v době tutoriálu
  • Semestrální projekt (10-30)
  • Zápočtový test (10-25)

Požadované nástroje

  • Java 21
  • Maven 3.9.6 (3.9.x)
  • SceneBuilder 23.0.x
  • IDE - Eclipse 2024-06 nebo IntelliJ 2024.3.3 (nutná Ultimate pro web development)

Verze je dobré dodržet aby nedošlo k problémům.

Java 21

Java 21 - K dispozici jako OpenJDK nebo jako Oracle JDK

Java instalace pod Ubuntu

#Installation in command line
sudo apt update
sudo apt -y install openjdk-21-doc openjdk-21-jdk openjdk-21-jdk-headless openjdk-21-jre openjdk-21-jre-headless openjdk-21-source
#check success
java -version

Java instalece pod Windows

  1. Stažení instalátoru Oracle JDK
  2. Double click na instalátor
  3. Next, Next, Next ...

Maven 3.9.9

Maven 3.9.9 - ke stažení  maven.

Maven instalace pro Ubuntu

sudo apt update
sudo apt install maven
#download and extraction most recent version
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
tar -xvf apache-maven-3.9.9-bin.tar.gz
#on the end of file $HOME/.bashrc add:
PATH="$HOME/apache-maven-3.9.9/bin:$PATH"
#run new terminal window and chceck version of maven
mvn -version

Maven instalace pro Windows

  1. Stažení balíku ze stránek
  2. Rozbalení do požadovaného umístění
  3. Nastavení cesty pro spouštění: Settings->About->Advanced System Settings->Environment Variables...
  4. Pro uživatele editovat proměnnou Path a přidat složku bin v rozbalené složce mavenu.
  5. Test v nové konzoli: mvn -version

SceneBuilder 23.0.x

Ke stažení zde.

Instalace pomocí instalátoru. Ve windows doubleclick ve Ubuntu např.:

sudo dpkg -i SceneBuilder-23.0.1.deb

Eclipse 2024-12

Eclipse - Instalátor ke stažení zde. Při instalaci zvolte variantu for "Java Developers" nebo " Eclipse IDE for Enterprise Java and Web Developers
Eclipse IDE for Enterprise Java and Web Developers". Nebo si stáhněte přímo balíček s Eclipse for Java Developer nebo balíček s Eclipse IDE for Enterprise Java and Web Developers.

Stažený balík rozbalte a vytvořte si ikony v systémovém menu pro spouštění. Pro windows jw tostupný také instalátor (Next, Next, Next)

Do eclipsu si doinstalujte z Eclipse Marketplace tyto pluginy:

V Window -> Preferencies -> JavaFX si nastavte cestu k SceneBuilderu

Lombok 1.18.36

Stáhněte si Lombok. V adresáři kde jste si Lombok stáhli spusťte příkaz (ve Windows stačí dvojklik myší na soubor):

  • java -jar lombok.jar

Pomocí tlačítka "Specify location ..." vyberte umístění eclipsu a tlačítkem "Install/Update" nainstalujde podporu pro Lombok do Eclipsu.

Vytvožření spouštěcí menu ikonky pro Eclipse v Ubuntu

#in folder $HOME/.local/share/applications create  file eclipse-2024-12.desktop
#With content:
[Desktop Entry]
Version=1.0
Name=2024-12 Eclipse Java
Comment=Eclipse 2024-12 My favorite development tool for my favorite language :-)
Exec=/path/to/my/eclipse/java-2024-12/eclipse/eclipse
Icon=/path/to/my/eclipse/java-2024-12/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=Programming;Application;
Name[en_US]=Eclipse Java 2024-12

InteliJ IDEA

InteliJ IDEA je ke stažení zde.

Nainstalujte si pluginy:

Videotutoriál instalace všech nástrojů pod Windows

Instalace všech nástrojů pod Windows

Videotutoriál instalace všech nástrojů pod Ubuntu

Instalace všech nástrojů pod Ubuntu

Předběžný nezávazný plán přednášek a cvičení

Týden Přednáška Cvičení Domácí úkol
1
17.2.-21.2.

maven
modules

maven maven
2
24.2.-28.2.

logging
static factory methods
builder
javabeans
equals/hashcode

modules modules
3
3.3.-7.3.

lombok
record
enums*
switch*
pattern matching
lambdas*

logging
builder
equals/hashcode

logging
4
10.3.-14.3.
jpa

lombok
record

lombok
5
17.4.-21.4.

jpa ql
JPA criteria query
cdi

JPA JPA
6
24.3.-28.3.

rest
Jax-rs*
JSON binding api
Spring – cdi, rest, component
Quarkus + panache

JPA - vazby

JPA - vazby
7
31.3.-4.4.

Concurrency
internacialization
bigInteger, Bigdecimal
Money

praktická písemka load JSON
8
7.4.-11.4.
Java NIO spring, rest spring+rest
9
14.4.-18.4.

networking
serialization

spring, teameleaf networking
10
21.4.-25.4.

velikonoce

concurency cryptography
11
28.4.-2.5.
reflection
security
cryptography

concurency

 

 
12
5.5.-9.5.

unit testy
mock objects

unit testy
konzultace projektů

 
13
12.5.-16.5.
zápočťák - teoretický test