mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2026-09-24 15:00:31 +08:00
Run sync-content
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
# Basic Syntax
|
||||
|
||||
Understanding the basics is the key to a solid foundation. In this section, learn the basic terminologies, naming conventions, reserved words, conditions, functions, data structures, OOP, packages, etc.
|
||||
|
||||
* To print output use --> System.out.println();
|
||||
* To take input from user --> Scanner or BufferedReader class can be used
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Basic Java Syntax](https://www.geeksforgeeks.org/java-basic-syntax/)
|
||||
- [Java - Basic Syntax](https://www.youtube.com/watch?v=81piDKqPxjQ)
|
||||
- [Java Tutorial for Beginners](https://www.youtube.com/watch?v=RRubcjpTkks)
|
||||
@@ -0,0 +1,13 @@
|
||||
# Data Types and Variables
|
||||
|
||||
Variable in Java is a data container that stores the data values during Java program execution. Every variable is assigned a data type, which designates the type and quantity of values it can hold. Variable is a memory location name of the data. The Java variables have mainly three types: Local, Instance and Static.
|
||||
|
||||
Data Types are divided into two group -
|
||||
* Primitive - byte,short,int,long,float,double,boolean and char
|
||||
* Non-Primitive - String, Arrays and Classes
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [What are Data Types & Variables?](https://www.guru99.com/java-variables.html)
|
||||
- [Java Variables](https://www.javatpoint.com/java-variables)
|
||||
- [Learn more about Data types and Variables](https://www.javatpoint.com/java-data-types)
|
||||
@@ -0,0 +1,16 @@
|
||||
# Conditionals
|
||||
|
||||
Java has the following conditional statements:
|
||||
|
||||
* Use `if` to specify a block of code to be executed, if a specified condition is true
|
||||
* Use `else` to specify a block of code to be executed if the same condition is false
|
||||
* Use `else if` to specify a new condition to test; if the first condition is false
|
||||
* Use `switch` to specify many alternative blocks of code to be executed
|
||||
* Use `?,:` operator to specify one line condition
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [What are Conditional statements?](https://www.educative.io/answers/what-are-conditional-statements-in-programming)
|
||||
- [Conditionals in Java](https://www.javatpoint.com/java-if-else)
|
||||
- [Conditionals and Loops in Java](https://youtu.be/ldYLYRNaucM)
|
||||
- [Switch Statements + Nested Case in Java](https://youtu.be/mA23x39DjbI)
|
||||
@@ -0,0 +1,14 @@
|
||||
# Functions
|
||||
|
||||
A method/function is a way to perform some task. Similarly, in programming like Java, a function method is a block of code written to perform a specific task repeatedly. It provides reusability of code. We write the function once and use it many times. It works on the 'DRY' principle i.e., "Do not repeat yourself".
|
||||
|
||||
Steps -
|
||||
1. Define function - datatype function_name(parameters){body}
|
||||
2. Call function - function_name(values)
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Methods/Functions in Java.](https://www.javatpoint.com/method-in-java)
|
||||
- [What are methods or functions in Java.](https://www.geeksforgeeks.org/methods-in-java/)
|
||||
- [Learn Functions/Methods in Java](https://www.w3schools.com/java/java_methods.asp)
|
||||
- [Functions / Methods in Java](https://www.youtube.com/watch?v=vvanI8NRlSI)
|
||||
@@ -0,0 +1,15 @@
|
||||
# Datastructures
|
||||
|
||||
As the name indicates itself, a **Data Structure** is a way of organizing the data in the **memory** so that it can be used efficiently. Some common data structures are array, linked list, stack, hashtable, queue, tree, heap, and graph.
|
||||
|
||||
* Array allocates continuous memory for homogeneous data
|
||||
* Linked List stores data in nodes with references
|
||||
* Stack follows Last In First Out principle
|
||||
* Queue follows First In First Out principle
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [What are Data Structures?](https://www.geeksforgeeks.org/data-structures)
|
||||
- [ Data Structures and Algorithms](https://www.javatpoint.com/data-structure-tutorial)
|
||||
- [Java + DSA + Interview Preparation Course](https://youtube.com/playlist?list=PL9gnSGHSqcnr_DxHsP7AW9ftq0AtAyYqJ)
|
||||
- [Data Structures Illustrated](https://www.youtube.com/watch?v=9rhT3P1MDHk&list=PLkZYeFmDuaN2-KUIv-mvbjfKszIGJ4FaY)
|
||||
@@ -0,0 +1,18 @@
|
||||
# OOP
|
||||
|
||||
Object-oriented programming is a core of Java Programming, which is used for designing a program using classes and objects. This can also be characterized as data controlling for accessing the code.
|
||||
|
||||
* [Class](https://www.javatpoint.com/object-and-class-in-java)
|
||||
* [Interfaces](https://www.geeksforgeeks.org/interfaces-in-java/)
|
||||
* [Object](https://www.geeksforgeeks.org/classes-objects-java/)
|
||||
* [Inheritance](https://www.geeksforgeeks.org/inheritance-in-java)
|
||||
* [Polymorphism](https://www.javatpoint.com/runtime-polymorphism-in-java)
|
||||
* [Abstraction](https://www.softwaretestinghelp.com/what-is-abstraction-in-java/)
|
||||
* [Encapsulation](https://www.programiz.com/java-programming/encapsulation)
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [OOPs Concept in Java](https://www.geeksforgeeks.org/object-oriented-programming-oops-concept-in-java/)
|
||||
- [Java OOPs Concepts](https://www.javatpoint.com/java-oops-concepts)
|
||||
- [Java complete OOPs playlist](https://youtube.com/playlist?list=PL9gnSGHSqcno1G3XjUbwzXHL8_EttOuKk)
|
||||
- [Java OOPs Concepts](https://www.youtube.com/watch?v=6T_HgnjoYwM)
|
||||
@@ -0,0 +1,14 @@
|
||||
# Files and APIs
|
||||
|
||||
Learn how to work with files i.e., reading, writing and deleting, files and folders, etc. Also, learn how to make API calls, parse the incoming response, and so on.
|
||||
|
||||
* FileWriter - this class is useful to create a file by writing characters into it
|
||||
* FileReader - this class is useful to read data in form of characters from file
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [How To Work With Files In Java](https://www.marcobehler.com/guides/java-files)
|
||||
- [Java File Class](https://www.javatpoint.com/java-file-class)
|
||||
- [Java.io.File Class in Java](https://www.geeksforgeeks.org/file-class-in-java/)
|
||||
- [Java HttpURLConnection Example - Java HTTP Request GET, POST](https://www.digitalocean.com/community/tutorials/java-httpurlconnection-example-java-http-request-get-post)
|
||||
- [5 ways to make HTTP requests in Java](https://www.twilio.com/blog/5-ways-to-make-http-requests-in-java)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Packages
|
||||
|
||||
A package is a namespace that mainly contains classes and interfaces. For instance, the standard class `ArrayList` is in the package `java.util`. For this class, `java.util.ArrayList` is called its fully qualified name because this syntax has no ambiguity. Classes in different packages can have the same name. For example, you have the two classes `java.util.Date` and `java.sql.Date`, which are different. If no package is declared in a class, its package is the default package.
|
||||
|
||||
To create package use this command -> javac -d directory javafilename
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Packages in Java](https://docs.oracle.com/javase/8/docs/api/java/lang/Package.html)
|
||||
- [Java Package](https://www.javatpoint.com/package)
|
||||
- [Packages In Java](https://www.geeksforgeeks.org/packages-in-java/)
|
||||
@@ -0,0 +1,12 @@
|
||||
# Loops
|
||||
|
||||
In Java and other programming languages, loops are used to iterate a part of the program several times. There are four types of loops in Java, `for`, `forEach`, `while`, and `do...while`.
|
||||
|
||||
* Synatx of `for` loop is `for(initialization;condition;increment/decrement){}`
|
||||
* Syntax of `forEach` loop is `for(data_type variable:array_name){}`
|
||||
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [What are loops in Java?](https://www.javatpoint.com/java-for-loop)
|
||||
- [ Loops in Java.](https://www.programiz.com/java-programming/for-loop)
|
||||
@@ -0,0 +1,13 @@
|
||||
# Exception Handling
|
||||
|
||||
Exception Handling in Java is one of the effective means to handle the runtime errors so that the regular flow of the application can be preserved. Java Exception Handling is a mechanism to handle runtime errors such as ClassNotFoundException, IOException, SQLException, RemoteException, etc.
|
||||
|
||||
There are three types of exceptions -
|
||||
1. Checked Exception - exceptions checked at compile time. Example - IOException
|
||||
2. Unchecked Exception - exceptions checked at run time. Example - NullPointerException
|
||||
3. Error - It is irrecoverable. Example - OutOfMemoryError
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Exception Handling - G4G](https://www.geeksforgeeks.org/exceptions-in-java/)
|
||||
- [Understanding Java Exceptions](https://www.youtube.com/watch?v=W-N2ltgU-X4)
|
||||
@@ -0,0 +1,16 @@
|
||||
# Java Fundamentals
|
||||
|
||||
Java is a programming language and computing platform first released by Sun Microsystems in 1995. Java is a general-purpose, class-based, object-oriented programming language designed for having lesser implementation dependencies. It is a computing platform for application development. Java is fast, secure, and reliable, therefore. It is widely used for developing Java applications in laptops, data centers, game consoles, scientific supercomputers, cell phones, etc.
|
||||
|
||||
Learn about the fundamentals of Java such as basic syntax, data types, variables, conditionals, functions, data structures, packages, etc.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Java Basics - W3Schools](https://www.w3schools.com/java/)
|
||||
- [Java Tutorial for Beginners](https://youtu.be/eIrMbAQSU34)
|
||||
- [Java + DSA + Interview Preparation Course (For beginners)](https://youtube.com/playlist?list=PL9gnSGHSqcnr_DxHsP7AW9ftq0AtAyYqJ)
|
||||
- [Head First Java](https://www.amazon.co.uk/Head-First-Java-3rd-Brain-Friendly/dp/1491910771)
|
||||
- [Thinking in Java](https://www.amazon.co.uk/Thinking-Java-Eckel-Bruce-February/dp/B00IBON6C6)
|
||||
- [Effective Java](https://www.amazon.com/Effective-Java-Joshua-Bloch/dp/0134685997)
|
||||
- [Java: A Beginners Guide](https://www.amazon.co.uk/Java-Beginners-Guide-Herbert-Schildt/dp/1260463559)
|
||||
- [Java: The Complete Reference](https://www.amazon.co.uk/gp/product/B09JL8BMK7/ref=dbs_a_def_rwt_bibl_vppi_i2)
|
||||
@@ -0,0 +1,10 @@
|
||||
# Generics
|
||||
|
||||
Java Generic methods and generic classes enable programmers to specify, with a single method declaration, a set of related methods, or with a single class declaration, a set of related types, respectively.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Generics in Java](https://www.geeksforgeeks.org/generics-in-java/)
|
||||
- [Java - Generics](https://www.tutorialspoint.com/java/java_generics.htm)
|
||||
- [Generics in Java](https://www.javatpoint.com/generics-in-java)
|
||||
- [Generics in Java](https://www.youtube.com/watch?v=XMvznsY02Mk)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Memory Management
|
||||
|
||||
In Java, memory management is the process of allocation and de-allocation of objects, called Memory management.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Java Memory Management](https://www.geeksforgeeks.org/java-memory-management/)
|
||||
- [Memory Management in Java](https://www.javatpoint.com/memory-management-in-java)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Collection Framework
|
||||
|
||||
The Collection in Java is a framework that provides an architecture to store and manipulate the group of objects. Java Collections can achieve all the operations that you perform on a data such as searching, sorting, insertion, manipulation, and deletion.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Collections in Java](https://www.javatpoint.com/collections-in-java)
|
||||
- [Java - Collections Framework](https://www.tutorialspoint.com/java/java_collections.htm)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Serialization
|
||||
|
||||
Serialization is the conversion of the state of an object into a byte stream; deserialization does the opposite. Stated differently, serialization is the conversion of a Java object into a static stream (sequence) of bytes, which we can then save to a database or transfer over a network.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Serialization and Deserialization in Java](https://www.geeksforgeeks.org/serialization-in-java/)
|
||||
- [Serialization and Deserialization in Java](https://www.javatpoint.com/serialization-in-java)
|
||||
- [Introduction to Java Serialization](https://www.baeldung.com/java-serialization)
|
||||
@@ -0,0 +1,12 @@
|
||||
# Networking sockets
|
||||
|
||||
- Java Networking is a concept of connecting two or more computing devices together so that we can share resources.
|
||||
- Java socket programming provides facility to share data between different computing devices.
|
||||
- A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent to.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Sockets](https://docs.oracle.com/javase/tutorial/networking/sockets/index.html)
|
||||
- [What is Socket Programming?](https://youtu.be/BqBKEXLqdvI)
|
||||
- [Socket Programming](https://www.geeksforgeeks.org/socket-programming-in-java/)
|
||||
- [Java Networking](https://www.tutorialspoint.com/java/java_networking.htm)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Streams
|
||||
|
||||
Java provides a new additional package in Java 8 called java.util.stream. This package consists of classes, interfaces and enum to allows functional-style operations on the elements. You can use stream by importing java.util.stream package.
|
||||
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Streams in Java](https://www.geeksforgeeks.org/stream-in-java/)
|
||||
- [Java 8 Stream](https://www.javatpoint.com/java-8-stream)
|
||||
- [Streams API Tutorial in Java 8+](https://www.youtube.com/watch?v=VNovNwHr9jY)
|
||||
- [Java 8 Streams Tutorial](https://www.youtube.com/watch?v=t1-YZ6bF-g0)
|
||||
@@ -0,0 +1,12 @@
|
||||
# How JVM Works
|
||||
|
||||
The Java Virtual Machine is a program whose purpose is to execute other programs. JVMs are available for many hardware and software platforms (i.e. JVM is platform dependent). JVM is the one that actually calls the main method present in a java code. JVM is a part of JRE(Java Runtime Environment)
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Packages in Java](https://docs.oracle.com/javase/8/docs/api/java/lang/Package.html)
|
||||
- [What is JVM?](https://www.javatpoint.com/jvm-java-virtual-machine)
|
||||
- [Introducing the Java Virtual Machine](https://www.infoworld.com/article/3272244/what-is-the-jvm-introducing-the-java-virtual-machine.html)
|
||||
- [JVM Architecture](https://www.geeksforgeeks.org/jvm-works-jvm-architecture/)
|
||||
- [JVM (Java Virtual Machine) Architecture](https://www.javatpoint.com/jvm-java-virtual-machine)
|
||||
- [How JVM works?](https://youtu.be/G1ubVOl9IBw)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Garbage Collection
|
||||
|
||||
Java garbage collection is the process by which Java programs perform automatic memory management. Java programs compile to bytecode that can be run on a Java Virtual Machine, or JVM for short. When Java programs run on the JVM, objects are created on the heap, which is a portion of memory dedicated to the program
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Java Garbage Collection](https://stackify.com/what-is-java-garbage-collection/)
|
||||
- [Garbage Collection in Java](https://www.geeksforgeeks.org/garbage-collection-java/)
|
||||
- [Java Garbage Collection](https://www.javatpoint.com/Garbage-Collection)
|
||||
@@ -0,0 +1,12 @@
|
||||
# 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
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Threads in Java](https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html)
|
||||
- [An Introduction to Thread in Java](https://www.simplilearn.com/tutorials/java-tutorial/thread-in-java)
|
||||
- [Java Threads](https://www.geeksforgeeks.org/java-threads/)
|
||||
- [How to Create a Thread in Java?](https://www.javatpoint.com/how-to-create-a-thread-in-java)
|
||||
- [Java Threads Tutorial](https://www.youtube.com/watch?v=TCd8QIS-2KI)
|
||||
- [Threads in Java](https://youtu.be/TCd8QIS-2KI)
|
||||
@@ -0,0 +1 @@
|
||||
# Java advanced topics
|
||||
@@ -0,0 +1,11 @@
|
||||
# Gradle
|
||||
|
||||
Gradle is an open-source build automation tool that helps software engineers to test, build, and release high-performance software products. In addition, Gradle also supports multi-language development. Currently, the supported languages for Gradle include Java, Kotlin, Groovy, Scala, C/C++, and JavaScript.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Gradle](https://gradle.org/)
|
||||
- [Gradle Tutorial](https://youtu.be/kONQCIAcWeI)
|
||||
- [Working with Gradle](https://youtu.be/6V6G3RyxEMk)
|
||||
- [Gradle](https://www.javatpoint.com/gradle)
|
||||
- [Building Java Projects with Gradle](https://spring.io/guides/gs/gradle/)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Maven
|
||||
|
||||
Maven is an open-source build tool, used primarily for Java projects.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Getting started](https://maven.apache.org/guides/getting-started/)
|
||||
- [Building Java Projects with Maven](https://spring.io/guides/gs/maven/)
|
||||
@@ -0,0 +1,10 @@
|
||||
# Ant
|
||||
|
||||
Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Apache Ant](https://ant.apache.org/)
|
||||
- [Apache Ant Tutorial](https://www.javatpoint.com/apache-ant-tutorial)
|
||||
- [Apache Ant](https://en.wikipedia.org/wiki/Apache_Ant)
|
||||
- [What is Apache Ant?](https://youtu.be/3rizinq7bng)
|
||||
@@ -0,0 +1,5 @@
|
||||
# Build Tools
|
||||
|
||||
A build tool is a program or command-line utility that automates the process of compiling, assembling, and deploying software.
|
||||
|
||||
Build tools are not only limited to compiling code; they can also help with package management, dependency handling, and continuous integration systems.
|
||||
@@ -0,0 +1,12 @@
|
||||
# Spring
|
||||
|
||||
Spring is a powerful open-source Java platform (framework), that is used to create and maintain web applications.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Official Site](https://spring.io/)
|
||||
- [Quickstart guide](https://spring.io/quickstart)
|
||||
- [Official guides](https://spring.io/guides)
|
||||
- [Spring Framework Documentation](https://docs.spring.io/spring-framework/docs/current/reference/html/)
|
||||
- [Different Spring tutorials](https://www.baeldung.com/spring-boot)
|
||||
- [What is Spring Framework? An Unorthodox Guide](https://www.marcobehler.com/guides/spring-framework)
|
||||
@@ -0,0 +1,12 @@
|
||||
# Spring Boot
|
||||
|
||||
Spring Boot is an open source, microservice-based Java web framework. The Spring Boot framework creates a fully production-ready environment that is completely configurable using its prebuilt code within its codebase. The microservice architecture provides developers with a fully enclosed application, including embedded application servers.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Spring Boot](https://spring.io/projects/spring-boot/)
|
||||
- [What is Spring Boot?](https://www.ibm.com/cloud/learn/java-spring-boot)
|
||||
- [Spring Boot Tutorial](https://www.javaguides.net/2021/07/spring-boot-tutorial-for-beginners.html)
|
||||
- [Learn Spring Boot](https://www.baeldung.com/spring-boot)
|
||||
- [Spring Boot Tutorial](https://youtu.be/vtPkZShrvXQ)
|
||||
- [Spring Boot for Beginners](https://youtu.be/UfOxcrxhC0s)
|
||||
@@ -0,0 +1,10 @@
|
||||
# Play Framework
|
||||
|
||||
Play Framework is a high-productivity web application framework that allows the model-view-controller pattern. It is written in Scala but can also be used for other programming languages that are compiled and run on the JVM. e.g.Java.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Play Framework Website](https://www.playframework.com/)
|
||||
- [Introduction to Play Framework](https://youtu.be/bLrmnjPQsZc)
|
||||
- [What is Play Framework?](https://en.wikipedia.org/wiki/Play_Framework)
|
||||
- [Intro to Play Framework](https://www.baeldung.com/java-intro-to-the-play-framework)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Spark
|
||||
|
||||
Spark is a micro framework for creating web applications in Kotlin and Java 8. Sinatra, a popular Ruby micro framework, was the inspiration for it.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Spark Java](https://sparkjava.com/)
|
||||
- [Intro to Spark Java Framework](https://www.baeldung.com/spark-framework-rest-api)
|
||||
- [What is Spark java?](https://www.javatpoint.com/spark-java)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Web Frameworks
|
||||
|
||||
Frameworks are tools with pre-written code, that act as a template or skeleton, which can be reused to create an application by simply filling with your code as needed which enables developers to program their application with no overhead of creating each line of code again and again from scratch.
|
||||
@@ -0,0 +1,20 @@
|
||||
# JPA
|
||||
|
||||
The Jakarta Persistence API provides Java developers with an object/relational mapping facility for managing relational data in Java applications. JPA is not a tool nor a framework, but a set of interfaces for accessing, persisting, and managing data between Java objects and (a) relational database. Because it is a set of interfaces, it will require an implementation to work with and persist Java objects. This will be ORM. Here are the main features of JPA:
|
||||
|
||||
- Cleaner, easier, standardized ORM.
|
||||
- Supports inheritance, polymorphism, and polymorphic queries.
|
||||
- Supports metadata annotations/XML descriptors to define the mapping (between objects and relational database).
|
||||
- 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:
|
||||
|
||||
- [TutorialsPoint JPA](https://www.tutorialspoint.com/jpa/)
|
||||
- [Official Java doc - Package javax.persistence](https://docs.oracle.com/javaee/7/api/javax/persistence/package-summary.html)
|
||||
- [Pro Jakarta Persistence in Jakarta EE 10](https://www.amazon.com/Pro-Jakarta-Persistence-Depth-Development/dp/1484274423)
|
||||
- [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)
|
||||
@@ -0,0 +1,12 @@
|
||||
# Spring data jpa
|
||||
|
||||
Spring Data JPA aims to significantly improve the implementation of data access layers by reducing the effort to the amount that's actually needed. As a developer you write your repository interfaces, including custom finder methods, and Spring will provide the implementation automatically.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Spring Data JPA](https://spring.io/projects/spring-data-jpa)
|
||||
- [Introduction to Spring Data JPA](https://www.baeldung.com/the-persistence-layer-with-spring-data-jpa)
|
||||
- [Spring Data JPA Tutorial](https://www.javatpoint.com/spring-and-jpa-integration)
|
||||
- [Spring Boot – Spring Data JPA](https://www.geeksforgeeks.org/spring-boot-spring-data-jpa/)
|
||||
- [Spring Data JPA Tutorial](https://youtu.be/XszpXoII9Sg)
|
||||
- [Spring Boot Tutorial - Spring Data JPA](https://youtu.be/8SGI_XS5OPw)
|
||||
@@ -0,0 +1,8 @@
|
||||
# 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.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Hibernate](https://hibernate.org/)
|
||||
- [Hibernate Tutorial](https://www.javatpoint.com/hibernate-tutorial)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Ebean
|
||||
|
||||
Ebean is an object-relational mapping tool written in Java. It supports the standard JPA annotations for declaring entities. However, it provides a much simpler API for persisting. In fact, one of the points worth mentioning about the Ebean architecture is that it is sessionless, meaning it does not fully manage entities.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Ebean](https://ebean.io/)
|
||||
- [Ebean Documentation](https://ebean.io/docs/)
|
||||
- [Guide to Ebean](https://www.baeldung.com/ebean-orm)
|
||||
@@ -0,0 +1,12 @@
|
||||
# ORM (Object-Relational Mapping)
|
||||
|
||||
A programming method to map objects in Java to relational entities in a database. In other words, converting data between relational databases and object-oriented programming languages. Some popular ORM tools/frameworks in Java are:
|
||||
|
||||
- Spring Data JPA
|
||||
- Hibernate
|
||||
- Ebean
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [ORM tutorial](https://www.altexsoft.com/blog/object-relational-mapping/)
|
||||
- [Java Databases: An Overview of Libraries & APIs](https://www.marcobehler.com/guides/java-databases)
|
||||
@@ -0,0 +1,10 @@
|
||||
# Log4j2
|
||||
|
||||
Apache Log4j is a Java-based logging utility. Log4j Java library's role is to log information that helps applications run smoothly, determine what's happening, and help with the debugging process when errors occur. Logging libraries typically write down messages to the log file or a database.
|
||||
|
||||
Log4j2 is the updated version of the popular and influential log4j library, used extensively throughout the Java ecosystem for so many years. Version 2. x keeps all the logging features of its predecessor and builds on that foundation with some significant improvements, especially in the area of performance.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Official Website](https://logging.apache.org/log4j/2.x/manual/configuration.html)
|
||||
- [Log4j explained: Everything you need to know](https://www.techtarget.com/whatis/feature/Log4j-explained-Everything-you-need-to-know)
|
||||
@@ -0,0 +1,7 @@
|
||||
# Logback
|
||||
|
||||
Logback is one of the most widely used logging frameworks in the Java Community. It's a replacement for its predecessor, Log4j. Logback offers a faster implementation, provides more options for configuration, and more flexibility in archiving old log files.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Official Website](https://logback.qos.ch/manual/configuration.html)
|
||||
@@ -0,0 +1,7 @@
|
||||
# Slf4j
|
||||
|
||||
The SLF4J or the Simple Logging Facade for Java is an abstraction layer for various Java logging frameworks, like Log4j 2 or Logback. This allows for plugging different logging frameworks at deployment time without the need for code changes.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Official Website](https://www.slf4j.org/)
|
||||
@@ -0,0 +1,7 @@
|
||||
# Tinylog
|
||||
|
||||
Tinylog is a lightweight open-source logging framework for Java and Android, optimized for ease of use.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Official Website](https://tinylog.org/v1/)
|
||||
@@ -0,0 +1,10 @@
|
||||
# Logging Frameworks
|
||||
|
||||
Logging is an important feature that helps developers to trace out the errors. It provides the ability to capture the log file. Logging provides the complete tracing information of the application and also records the critical failure if any occur in an application. There are three components of Logging: Logger, Logging handlers or Appenders and Layouts or logging formatters.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Introduction to Java Logging](https://www.baeldung.com/java-logging-intro)
|
||||
- [Java Logger](https://www.javatpoint.com/java-logger)
|
||||
- [Java Logging Frameworks](https://en.wikipedia.org/wiki/Java_logging_framework)
|
||||
- [How to Do Logging In Java](https://www.marcobehler.com/guides/java-logging)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Jdbi3
|
||||
|
||||
Jdbi is an open source Java library (Apache license) that uses lambda expressions and reflection to provide a friendlier, higher level interface than JDBC to access the database.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Jdbi](https://jdbi.org/)
|
||||
- [Jdbi Tutorial](https://www.baeldung.com/jdbi)
|
||||
@@ -0,0 +1,7 @@
|
||||
# JDBC Template
|
||||
|
||||
JDBCTemplate is a central class in the JDBC core package that simplifies the use of JDBC and helps to avoid common errors. It internally uses JDBC API and eliminates many problems with JDBC API. It executes SQL queries or updates, initiating iteration over ResultSets, catching JDBC exceptions, and translating them to the generic. It executes core JDBC workflow, leaving application code to provide SQL and extract results. It handles the exception and provides informative exception messages with the help of exception classes defined in the `org.springframework.dao` package.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [JDBC Template tutorial](https://www.baeldung.com/spring-jdbc-jdbctemplate)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Java JDBC
|
||||
|
||||
JDBC is an API(Application programming interface) used in java programming to interact with databases. The classes and interfaces of JDBC allow the application to send requests made by users to the specified database.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Introduction to JDBC](https://www.geeksforgeeks.org/introduction-to-jdbc/)
|
||||
- [IBM: What is JDBC](https://www.ibm.com/docs/en/informix-servers/12.10?topic=started-what-is-jdbc)
|
||||
@@ -0,0 +1,13 @@
|
||||
# Mocking
|
||||
|
||||
Mocking removes external dependencies from a unit test to create a sense of an entire controlled environment. The traditional method of mocks involves mocking all other classes that interact with the class we want to test. The common targets for mocking are:
|
||||
|
||||
- Database connections
|
||||
- Web services
|
||||
- Slow Classes
|
||||
- Classes with side effects
|
||||
- Classes with non-deterministic behavior
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Mockito - Mocking Framework for Java](https://site.mockito.org/)
|
||||
@@ -0,0 +1,10 @@
|
||||
# Cucumber JVM
|
||||
|
||||
Cucumber is a testing tool that supports Behavior Driven Development (BDD). It offers a way to write tests that anybody can understand, regardless of their technical knowledge.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Cucumber](https://cucumber.io/)
|
||||
- [Cucumber Documentation](https://cucumber.io/docs/cucumber/)
|
||||
- [Cucumber-JVM for Java](https://automationpanda.com/2017/10/24/cucumber-jvm-for-java/)
|
||||
- [Cucumber-JVM 5 with Enhanced Cucumber Expression](https://www.youtube.com/watch?v=jCzpxvAJoZM)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Cukes
|
||||
|
||||
cukes-rest takes simplicity of Cucumber and provides bindings for HTTP specification. As a sugar on top, cukes-rest adds steps for storing and using request/response content from a file system, variable support in .features, context inflation in all steps and a custom plug-in system to allow users to add additional project specific content.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Cukes Github](https://github.com/ctco/cukes)
|
||||
- [Getting Started with Cukes-REST](https://speakerdeck.com/larchaon/getting-started-with-cukes-rest?slide=23)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Jbehave
|
||||
|
||||
JBehave is a framework for Behaviour-Driven Development (BDD). BDD is an evolution of test-driven development (TDD) and acceptance-test driven design, and is intended to make these practices more accessible and intuitive to newcomers and experts alike. It shifts the vocabulary from being test-based to behaviour-based, and positions itself as a design philosophy.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Jbehave](https://jbehave.org/)
|
||||
- [Jbehave Tutorial](https://jbehave.org/tutorials.html)
|
||||
@@ -0,0 +1,11 @@
|
||||
# JUnit
|
||||
|
||||
JUnit is a testing framework for Java.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [JUnit](https://junit.org/junit5)
|
||||
- [JUnit Documentation](https://junit.org/junit5/docs/current/user-guide/)
|
||||
- [JUnit tutorial](https://www.guru99.com/junit-tutorial.html)
|
||||
- [Basic JUnit tutorial](https://www.baeldung.com/junit-5)
|
||||
- [Testing with JUnit crash course](https://www.youtube.com/watch?v=flpmSXVTqBI)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Testng
|
||||
|
||||
TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Testng](https://testng.org)
|
||||
- [Testng Documentation](https://testng.org/doc/documentation-main.html)
|
||||
- [Testng tutorial](https://www.guru99.com/all-about-testng-and-selenium.html)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Rest assured
|
||||
|
||||
Testing and validating REST services in Java is harder than in dynamic languages such as Ruby and Groovy. REST Assured brings the simplicity of using these languages into the Java domain.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Rest-assured](https://rest-assured.io/)
|
||||
- [Rest-assured Documentation](https://github.com/rest-assured/rest-assured/wiki)
|
||||
@@ -0,0 +1,7 @@
|
||||
# JMeter
|
||||
|
||||
Apache JMeter is an Apache project that can be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [Apache JMeter Website](https://jmeter.apache.org/)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Testing
|
||||
|
||||
A key to building software that meets requirements without defects is testing. Software testing helps developers know they are building the right software. When tests are run as part of the development process (often with continuous integration tools), they build confidence and prevent regressions in the code.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [What is Software Testing?](https://www.guru99.com/software-testing-introduction-importance.html)
|
||||
- [Testing Pyramid](https://www.browserstack.com/guide/testing-pyramid-for-test-automation)
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
jsonUrl: "/jsons/java.json"
|
||||
pdfUrl: "/pdfs/java.pdf"
|
||||
order: 9
|
||||
featuredTitle: "Java"
|
||||
featuredDescription: "Step by step guide to becoming a Java Developer in 2022"
|
||||
title: "Java Developer"
|
||||
description: "Step by step guide to becoming a Java developer in 2022"
|
||||
hasTopics: true
|
||||
dimensions:
|
||||
width: 968
|
||||
height: 1167.29
|
||||
seo:
|
||||
title: "Learn to become a modern Java developer"
|
||||
description: "Community driven, articles, resources, guides, interview questions, quizzes for java development. Learn to become a modern Java developer by following the steps, skills, resources and guides listed in this roadmap."
|
||||
keywords:
|
||||
- "guide to becoming a developer"
|
||||
- "guide to becoming a java developer"
|
||||
- "java developer"
|
||||
- "java engineer"
|
||||
- "java skills"
|
||||
- "guide to java"
|
||||
- "java roadmap"
|
||||
- "java skills"
|
||||
- "java skills test"
|
||||
- "skills for java"
|
||||
- "cloud development"
|
||||
- "what is java"
|
||||
- "java quiz"
|
||||
- "java interview questions"
|
||||
- "java engineer roadmap"
|
||||
- "java developer roadmap"
|
||||
- "become a java developer"
|
||||
- "java developer career path"
|
||||
- "java developer"
|
||||
- "modern java developer"
|
||||
relatedRoadmaps:
|
||||
- "backend"
|
||||
- "devops"
|
||||
- "python"
|
||||
- "golang"
|
||||
- "javascript"
|
||||
- "nodejs"
|
||||
sitemap:
|
||||
priority: 1
|
||||
changefreq: "monthly"
|
||||
tags:
|
||||
- "roadmap"
|
||||
- "main-sitemap"
|
||||
- "skill-roadmap"
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user