From 90371b081a4598afde02568bf56d7b000d79a118 Mon Sep 17 00:00:00 2001 From: Leni Kirilov Date: Mon, 1 Jul 2024 12:39:44 +0300 Subject: [PATCH] Java roadmap - multiple fixes (#5957) Adding copy, content links & remove broken links. --------- Co-authored-by: dsh --- .../java/content/100-java-fundamentals/106-files-and-apis.md | 3 ++- .../101-java-advanced-topics/108-basics-of-threads.md | 5 ++++- .../roadmaps/java/content/102-java-build-tools/100-gradle.md | 2 +- .../roadmaps/java/content/102-java-build-tools/101-maven.md | 2 +- .../java/content/103-java-web-frameworks/100-spring.md | 5 +++-- src/data/roadmaps/java/content/104-java-orm/100-jpa.md | 3 +-- src/data/roadmaps/java/content/104-java-orm/102-hibernate.md | 3 ++- .../java/content/105-java-logging-frameworks/103-tinylog.md | 1 + 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/data/roadmaps/java/content/100-java-fundamentals/106-files-and-apis.md b/src/data/roadmaps/java/content/100-java-fundamentals/106-files-and-apis.md index 8ed49306c..4bbbfe6d3 100644 --- a/src/data/roadmaps/java/content/100-java-fundamentals/106-files-and-apis.md +++ b/src/data/roadmaps/java/content/100-java-fundamentals/106-files-and-apis.md @@ -11,7 +11,8 @@ Visit the following resources to learn more: - [@article@How To Work With Files In Java](https://www.marcobehler.com/guides/java-files) - [@article@Java File Class](https://www.javatpoint.com/java-file-class) -- [@article@Java HttpURLConnection Example - Java HTTP Request GET, POST](https://www.digitalocean.com/community/tutorials/java-httpurlconnection-example-java-http-request-get-post) +- [@article@ (old) Java HttpURLConnection Example - Java HTTP Request GET, POST](https://www.digitalocean.com/community/tutorials/java-httpurlconnection-example-java-http-request-get-post) +- [@article@ New Java HttpClient](https://www.baeldung.com/java-9-http-client) - [@article@5 ways to make HTTP requests in Java](https://www.twilio.com/blog/5-ways-to-make-http-requests-in-java) - [@article@Read a file line by line in Java](https://mkyong.com/java8/java-8-stream-read-a-file-line-by-line/) - [@article@Various ways to read a file to String in Java](https://howtodoinjava.com/java/io/java-read-file-to-string-examples/) diff --git a/src/data/roadmaps/java/content/101-java-advanced-topics/108-basics-of-threads.md b/src/data/roadmaps/java/content/101-java-advanced-topics/108-basics-of-threads.md index 43b9dacb0..42897525a 100644 --- a/src/data/roadmaps/java/content/101-java-advanced-topics/108-basics-of-threads.md +++ b/src/data/roadmaps/java/content/101-java-advanced-topics/108-basics-of-threads.md @@ -1,10 +1,13 @@ # Basics of Threads -A thread in Java is the direction or path that is taken while a program is being executed. Generally, all the programs have at least one thread, known as the main thread, that is provided by the JVM or Java Virtual Machine at the starting of the program’s execution +A thread in Java is the direction or path that is taken while a program is being executed. Generally, all the programs have at least one thread, known as the main thread, that is provided by the JVM or Java Virtual Machine at the starting of the program’s execution. + +NB! Writing correct multi-threaded application is complex and it's an advanced topic. Things like ParallelStreams, thread-safe Collections and ExecutorService can be helpful. Visit the following resources to learn more: - [@article@Threads in Java](https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html) - [@article@An Introduction to Thread in Java](https://www.simplilearn.com/tutorials/java-tutorial/thread-in-java) - [@article@How to Create a Thread in Java?](https://www.javatpoint.com/how-to-create-a-thread-in-java) +- [@article@Multithreaded programming is HARD](https://jenkov.com/tutorials/java-concurrency/index.html) - [@video@Java Threads Tutorial](https://www.youtube.com/watch?v=TCd8QIS-2KI) diff --git a/src/data/roadmaps/java/content/102-java-build-tools/100-gradle.md b/src/data/roadmaps/java/content/102-java-build-tools/100-gradle.md index c0e7de410..ffe8de1c7 100644 --- a/src/data/roadmaps/java/content/102-java-build-tools/100-gradle.md +++ b/src/data/roadmaps/java/content/102-java-build-tools/100-gradle.md @@ -8,5 +8,5 @@ Visit the following resources to learn more: - [@video@Gradle Tutorial](https://youtu.be/kONQCIAcWeI) - [@video@Working with Gradle](https://youtu.be/6V6G3RyxEMk) - [@article@Gradle](https://www.javatpoint.com/gradle) -- [@article@Building Java Projects with Gradle](https://spring.io/guides/gs/gradle/) +- [@article@Building Spring Boot Projects with Gradle](https://www.baeldung.com/spring-boot-gradle-plugin) - [@feed@Explore top posts about Gradle](https://app.daily.dev/tags/gradle?ref=roadmapsh) diff --git a/src/data/roadmaps/java/content/102-java-build-tools/101-maven.md b/src/data/roadmaps/java/content/102-java-build-tools/101-maven.md index b21b34dba..8f9d244bf 100644 --- a/src/data/roadmaps/java/content/102-java-build-tools/101-maven.md +++ b/src/data/roadmaps/java/content/102-java-build-tools/101-maven.md @@ -5,5 +5,5 @@ Maven is an open-source build tool, used primarily for Java projects. Visit the following resources to learn more: - [@article@Getting started](https://maven.apache.org/guides/getting-started/) -- [@article@Building Java Projects with Maven](https://spring.io/guides/gs/maven/) +- [@article@Building Spring Projects with Maven](https://www.baeldung.com/spring-with-maven) - [@feed@Explore top posts about Maven](https://app.daily.dev/tags/maven?ref=roadmapsh) diff --git a/src/data/roadmaps/java/content/103-java-web-frameworks/100-spring.md b/src/data/roadmaps/java/content/103-java-web-frameworks/100-spring.md index 098d7b4d7..11a04318b 100644 --- a/src/data/roadmaps/java/content/103-java-web-frameworks/100-spring.md +++ b/src/data/roadmaps/java/content/103-java-web-frameworks/100-spring.md @@ -1,6 +1,7 @@ # Spring -Spring is a powerful open-source Java platform (framework), that is used to create and maintain web applications. +Spring is a powerful open-source Java platform (framework), that is used to create and maintain web applications. It starts as the Spring Framework providing a Dependency Injection Container. +Spring Boot is an autoconfigurable packaging of multiple Spring projects (like Data, MVC, REST etc) initially created for creating microservices or quick PoC (Proof of concepts) Visit the following resources to learn more: @@ -8,6 +9,6 @@ Visit the following resources to learn more: - [@official@Quickstart guide](https://spring.io/quickstart) - [@official@Official guides](https://spring.io/guides) - [@article@Spring Framework Documentation](https://docs.spring.io/spring-framework/docs/current/reference/html/) -- [@article@Different Spring tutorials](https://www.baeldung.com/spring-boot) +- [@article@Spring Boot tutorials](https://www.baeldung.com/spring-boot) - [@article@What is Spring Framework? An Unorthodox Guide](https://www.marcobehler.com/guides/spring-framework) - [@feed@Explore top posts about Spring Framework](https://app.daily.dev/tags/spring?ref=roadmapsh) diff --git a/src/data/roadmaps/java/content/104-java-orm/100-jpa.md b/src/data/roadmaps/java/content/104-java-orm/100-jpa.md index 53378d622..e96dab9de 100644 --- a/src/data/roadmaps/java/content/104-java-orm/100-jpa.md +++ b/src/data/roadmaps/java/content/104-java-orm/100-jpa.md @@ -8,13 +8,12 @@ The Jakarta Persistence API provides Java developers with an object/relational m - Supports a rich, SQL-like query language for static and dynamic queries. - Pluggable persistence providers like Hibernate, MyBatis, etc. - Caching: JPA supports 2 kinds of cache - first and second levels - to support performance tuning. -- Read more [here](https://javabydeveloper.com/what-is-java-persistence-api/). > Note: In 2019, JPA was renamed from Java Persistence API to Jakarta Persistence. Visit the following resources to learn more: -- [@article@TutorialsPoint JPA](https://www.tutorialspoint.com/jpa/) +- [@article@TutorialsPoint JPA](https://www.tutorialspoint.com/jpa/jpa_architecture.htm) - [@article@Official Java doc - Package javax.persistence](https://docs.oracle.com/javaee/7/api/javax/persistence/package-summary.html) - [@article@Pro Jakarta Persistence in Jakarta EE 10](https://www.amazon.com/Pro-Jakarta-Persistence-Depth-Development/dp/1484274423) - [@article@Java Persistence with Spring Data and Hibernate by Catalin Tudose](https://www.simonandschuster.com/books/Java-Persistence-with-Spring-Data-and-Hibernate/Catalin-Tudose/9781617299186) diff --git a/src/data/roadmaps/java/content/104-java-orm/102-hibernate.md b/src/data/roadmaps/java/content/104-java-orm/102-hibernate.md index d45bebc90..ee6a10f43 100644 --- a/src/data/roadmaps/java/content/104-java-orm/102-hibernate.md +++ b/src/data/roadmaps/java/content/104-java-orm/102-hibernate.md @@ -1,8 +1,9 @@ # Hibernate -Hibernate is an open source object-relational mapping tool that provides a framework to map object-oriented domain models to relational databases for web applications. +Hibernate is an open source object-relational mapping tool that provides a framework to map object-oriented domain models to relational databases for web applications. Hibernate implements the specifications of JPA. Performance is key so Hibernate supports first-level and second-level caching Visit the following resources to learn more: - [@official@Hibernate](https://hibernate.org/) - [@article@Hibernate Tutorial](https://www.javatpoint.com/hibernate-tutorial) +- [@articel@Second-level caching explained](https://hazelcast.com/glossary/hibernate-second-level-cache/) diff --git a/src/data/roadmaps/java/content/105-java-logging-frameworks/103-tinylog.md b/src/data/roadmaps/java/content/105-java-logging-frameworks/103-tinylog.md index 77dd6a0b7..ebad57f64 100644 --- a/src/data/roadmaps/java/content/105-java-logging-frameworks/103-tinylog.md +++ b/src/data/roadmaps/java/content/105-java-logging-frameworks/103-tinylog.md @@ -5,3 +5,4 @@ Tinylog is a lightweight open-source logging framework for Java and Android, opt Visit the following resources to learn more: - [@official@Official Website](https://tinylog.org/v1/) +- [@official@TinyLog v2](https://tinylog.org/v2/)