Skip to content

akar42/JavaTZ-course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Course "Programming in Java - Advanced Techniques"

In the summer semester of 2024/25, I completed the course "Programming in Java – Advanced Techniques" at Wrocław University of Science and Technology (that's why on each commit is another account as author - that's my university account). The course provided in-depth, hands-on experience with modern Java technologies and practices.

List of topics covered in each lab session

Lab01 – Java Modules (JPMS), jlink

Modular programming, creating & using custom modules, archiving (ZIP), hashing (MD5), creating runtime image with jlink.


Lab02 – Weak References, Java Swing

Efficient memory usage with WeakReference, UI design with Java Swing, data loading/caching from CSV.


Lab03 – REST API consumption, ResourceBundles (i18n)

Using REST APIs in Java, dynamic UI with quizzes, multilingual support using ResourceBundle.


Lab04 – Reflection API, Custom ClassLoader

Dynamic class loading/unloading, Java Reflection, interface-based task execution.


Lab05 – Service Provider Interface (SPI)

Pluggable algorithms using SPI (ServiceLoader), statistical analysis, modular and non-modular JARs.


Lab06 – JPA (Hibernate), Spring Boot CLI application

ORM-based application using JPA, database interaction, embedded DB (H2/SQLite), layered architecture.


Lab07 – Spring Boot REST API

RESTful web services, Swagger/OpenAPI, converting a monolith to a service-oriented backend.


Lab08 – JNI (Java Native Interface)

Native method invocation from Java, performance testing, integration with C/C++ for array sorting.


Lab09 – XML Processing (JAXB, JAXP, XSLT)

Multiple XML handling approaches (binding, parsing, transforming), working with real-world XML data.


Lab10 – JCA/JCE (Cryptography), Signed JAR

File encryption/decryption, key management, secure packaging with signed libraries and cryptographic APIs.


Lab11 – Multi-Release JAR, jpackage

Packaging Java apps for different Java versions, creating native installers, modular distribution.


Lab12 – JavaScript in Java (Nashorn/Graal.js), Scripting API

Dynamic scripting with JS in Java, interoperation between Java and JS, visual logic (e.g. cellular automata).


Lab13 – FXML + JavaScript + JavaFX

Declarative UI via FXML, embedding logic directly in JavaScript (in FXML), context-aware UI behavior.


Lab14 – JavaFX + Observer Pattern (JMX) + Prioritized Queues

Real-time multi-interface simulation, queue management with priorities, dynamic config via agent/bean.

About

Core Java course, completed at WUST

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •