parent
22a29605d8
commit
40793efe4e
58 changed files with 44 additions and 4580 deletions
@ -1,22 +0,0 @@ |
|||||||
# 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)` |
|
||||||
3. Lambda functions - `x -> x + 1` |
|
||||||
4. Pass a function as a variable - |
|
||||||
``` |
|
||||||
final Consumer<Integer> simpleReference1 = App::someMethod1; |
|
||||||
simpleReference1.accept(1); |
|
||||||
``` |
|
||||||
|
|
||||||
Visit the following resources to learn more: |
|
||||||
|
|
||||||
- [@article@Methods/Functions in Java.](https://www.javatpoint.com/method-in-java) |
|
||||||
- [@article@Learn Functions/Methods in Java](https://www.w3schools.com/java/java_methods.asp) |
|
||||||
- [@video@Functions / Methods in Java](https://www.youtube.com/watch?v=vvanI8NRlSI) |
|
||||||
- [@article@Lambda functions](https://www.w3schools.com/java/java_lambda.asp) |
|
||||||
- [@article@Passing functions as a variable](https://northcoder.com/post/passing-java-functions-in-variables/) |
|
@ -1,14 +0,0 @@ |
|||||||
# 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: |
|
||||||
|
|
||||||
- [@article@Data Structures and Algorithms](https://www.javatpoint.com/data-structure-tutorial) |
|
||||||
- [@video@Java + DSA + Interview Preparation Course](https://youtube.com/playlist?list=PL9gnSGHSqcnr_DxHsP7AW9ftq0AtAyYqJ) |
|
||||||
- [@video@Data Structures Illustrated](https://www.youtube.com/watch?v=9rhT3P1MDHk&list=PLkZYeFmDuaN2-KUIv-mvbjfKszIGJ4FaY) |
|
@ -1,20 +0,0 @@ |
|||||||
# OOP |
|
||||||
|
|
||||||
Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields (often known as attributes or properties), and code in the form of procedures (often known as methods). In OOP, computer programs are designed by making them out of objects that interact with one another. |
|
||||||
|
|
||||||
Abstraction, encapsulation, polymorphism, and inheritance are the four main theoretical principles of object-oriented programming. But Java also works with three further OOP concepts: association, aggregation, and composition. |
|
||||||
|
|
||||||
Visit the following resources to learn more: |
|
||||||
|
|
||||||
- [@article@Class](https://www.javatpoint.com/object-and-class-in-java) |
|
||||||
- [@article@Inheritance](https://www.javatpoint.com/inheritance-in-java) |
|
||||||
- [@article@Polymorphism](https://www.javatpoint.com/runtime-polymorphism-in-java) |
|
||||||
- [@article@Abstraction](https://www.softwaretestinghelp.com/what-is-abstraction-in-java/) |
|
||||||
- [@article@Encapsulation](https://www.programiz.com/java-programming/encapsulation) |
|
||||||
- [@article@Association](https://www.javatpoint.com/association-in-java) |
|
||||||
- [@article@Aggregation](https://www.javatpoint.com/aggregation-in-java) |
|
||||||
- [@article@Composition](https://www.geeksforgeeks.org/composition-in-java/) |
|
||||||
- [@article@Java OOPs Concepts](https://www.javatpoint.com/java-oops-concepts) |
|
||||||
- [@article@Using OOP concepts to write high-performance Java code](https://raygun.com/blog/oop-concepts-java) |
|
||||||
- [@video@Java complete OOPs playlist](https://youtube.com/playlist?list=PL9gnSGHSqcno1G3XjUbwzXHL8_EttOuKk) |
|
||||||
- [@video@Java OOPs Concepts](https://www.youtube.com/watch?v=6T_HgnjoYwM) |
|
@ -1,9 +0,0 @@ |
|||||||
# Memory Management |
|
||||||
|
|
||||||
In Java, memory management is the process of allocation and de-allocation of objects. |
|
||||||
|
|
||||||
Visit the following resources to learn more: |
|
||||||
|
|
||||||
- [@article@Memory Management in Java](https://www.javatpoint.com/memory-management-in-java) |
|
||||||
- [@video@Memory Management Tutorial in Java](https://www.youtube.com/watch?v=fM8yj93X80s) |
|
||||||
- [@video@Memory Managament And Garbage Collection in Java](https://youtu.be/vz6vSZRuS2M?si=4-JyoDkgcxrLmxSt) |
|
@ -1,8 +0,0 @@ |
|||||||
# 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: |
|
||||||
|
|
||||||
- [@article@Collections in Java](https://www.javatpoint.com/collections-in-java) |
|
||||||
- [@article@Java - Collections Framework](https://www.tutorialspoint.com/java/java_collections.htm) |
|
@ -1,8 +0,0 @@ |
|||||||
# 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: |
|
||||||
|
|
||||||
- [@article@Serialization and Deserialization in Java](https://www.javatpoint.com/serialization-in-java) |
|
||||||
- [@article@Introduction to Java Serialization](https://www.baeldung.com/java-serialization) |
|
@ -1,12 +0,0 @@ |
|||||||
# How JVM Works |
|
||||||
|
|
||||||
The Java Virtual Machine (JVM) is a platform-dependent program that executes platform-independent Java bytecode, embodying the "Write once, run everywhere" principle. As a crucial component of the Java Runtime Environment (JRE), the JVM is responsible for initiating Java programs by calling their main method. While designed primarily for Java, the JVM's ability to run any language compiled to Java bytecode has led to its adoption by other languages like Kotlin, Scala, and Groovy. Multiple JVM implementations exist, with Oracle's HotSpot being the standard and GraalVM emerging as a high-performance alternative, each offering unique features and optimizations |
|
||||||
|
|
||||||
Visit the following resources to learn more: |
|
||||||
|
|
||||||
- [@article@Introducing the Java Virtual Machine](https://www.infoworld.com/article/3272244/what-is-the-jvm-introducing-the-java-virtual-machine.html) |
|
||||||
- [@video@How JVM works?](https://youtu.be/G1ubVOl9IBw) |
|
||||||
- [@article@JVM languages](https://www.whizlabs.com/blog/jvm-languages/) |
|
||||||
- [@article@GraalVM](https://www.graalvm.org/) |
|
||||||
- [@feed@Explore top posts about JVM](https://app.daily.dev/tags/jvm?ref=roadmapsh) |
|
||||||
- [@video@JVM Architecture in 8min](https://www.youtube.com/watch?v=QHIWkwxs0AI) |
|
@ -1,9 +0,0 @@ |
|||||||
# 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: |
|
||||||
|
|
||||||
- [@article@Java Garbage Collection](https://stackify.com/what-is-java-garbage-collection/) |
|
||||||
- [@article@Java Garbage Collection](https://www.javatpoint.com/Garbage-Collection) |
|
||||||
- [@video@Garbage Collection in Java - Geekific](https://www.youtube.com/watch?v=XXOaCV5xm9s) |
|
@ -1,10 +0,0 @@ |
|||||||
# Java Advanced Topics |
|
||||||
|
|
||||||
Java Advanced Topics delves into crucial concepts that every Java developer should master to build efficient and scalable applications. It covers memory management techniques, deep dives into the collection framework, and explores serialization for data persistence. Networking and sockets are discussed to help you build robust communication systems, while an understanding of how the JVM works and garbage collection mechanisms ensures optimal application performance. Additionally, the basics of threading introduce parallelism, crucial for modern multi-threaded programming. |
|
||||||
|
|
||||||
Visit the following resources to learn more: |
|
||||||
|
|
||||||
- [@article@What is Advanced Java? - GeeksForGeeks](https://www.geeksforgeeks.org/what-is-advanced-java/) |
|
||||||
- [@article@What is Advance Java? - JavatPoint](https://www.javatpoint.com/what-is-advance-java) |
|
||||||
- [@video@Advance Java Full Course 2023 - SimpliLearn](https://youtu.be/Ae-r8hsbPUo?si=faFsqJYfCc5jIO6p) |
|
||||||
|
|
@ -1,10 +0,0 @@ |
|||||||
# 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: |
|
||||||
|
|
||||||
- [@article@Apache Ant](https://ant.apache.org/) |
|
||||||
- [@article@Apache Ant Tutorial](https://www.javatpoint.com/apache-ant-tutorial) |
|
||||||
- [@article@Apache Ant](https://en.wikipedia.org/wiki/Apache_Ant) |
|
||||||
- [@video@What is Apache Ant?](https://youtu.be/3rizinq7bng) |
|
@ -1,14 +0,0 @@ |
|||||||
# Spring |
|
||||||
|
|
||||||
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: |
|
||||||
|
|
||||||
- [@official@Official Site](https://spring.io/) |
|
||||||
- [@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@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) |
|
@ -1,10 +0,0 @@ |
|||||||
# 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: |
|
||||||
|
|
||||||
- [@article@Spark Java](https://sparkjava.com/) |
|
||||||
- [@article@Intro to Spark Java Framework](https://www.baeldung.com/spark-framework-rest-api) |
|
||||||
- [@article@What is Spark java?](https://www.javatpoint.com/spark-java) |
|
||||||
- [@feed@Explore top posts about Apache Spark](https://app.daily.dev/tags/spark?ref=roadmapsh) |
|
@ -1,20 +0,0 @@ |
|||||||
# 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. |
|
||||||
|
|
||||||
> 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/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) |
|
||||||
- [@feed@Explore top posts about Java](https://app.daily.dev/tags/java?ref=roadmapsh) |
|
@ -1,8 +0,0 @@ |
|||||||
# 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: |
|
||||||
|
|
||||||
- [@official@Jdbi](https://jdbi.org/) |
|
||||||
- [@article@Jdbi Tutorial](https://www.baeldung.com/jdbi) |
|
@ -1,8 +0,0 @@ |
|||||||
# JDBC Template |
|
||||||
|
|
||||||
JDBCTemplate is a central class in Spring's 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: |
|
||||||
|
|
||||||
- [@article@JDBC Template tutorial](https://www.baeldung.com/spring-jdbc-jdbctemplate) |
|
||||||
- [@feed@Explore top posts about Java](https://app.daily.dev/tags/java?ref=roadmapsh) |
|
@ -1,8 +0,0 @@ |
|||||||
# 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: |
|
||||||
|
|
||||||
- [@opensource@Cukes Github](https://github.com/ctco/cukes) |
|
||||||
- [@article@Getting Started with Cukes-REST](https://speakerdeck.com/larchaon/getting-started-with-cukes-rest?slide=23) |
|
@ -1,8 +0,0 @@ |
|||||||
# 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: |
|
||||||
|
|
||||||
- [@official@Jbehave](https://jbehave.org/) |
|
||||||
- [@official@Jbehave Tutorial](https://jbehave.org/tutorials.html) |
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,39 @@ |
|||||||
|
{ |
||||||
|
"java-fundamentals": "2TGq1y2QthnxxN-FfToSe", |
||||||
|
"java-fundamentals:basic-syntax": "OlbQNB6YXZjO1J7D0lZU1", |
||||||
|
"java-fundamentals:conditionals": "sG_3ZQIE1-FQXQkk-OduQ", |
||||||
|
"java-fundamentals:date-time": "9h20XVRli7TDq0QIJwX2U", |
||||||
|
"java-fundamentals:loops": "JHUhVEjWFXTn6-wKcKevg", |
||||||
|
"java-fundamentals:exception-handling": "g9P3548F38tYGjevBc42w", |
||||||
|
"java-fundamentals:data-types-variables": "5g9mmi01WeZ4aDqNzwx_V", |
||||||
|
"java-fundamentals:packages": "60POZOjwHSdKYL6rfkyEy", |
||||||
|
"java-fundamentals:files-and-apis": "NowpzyPVFcX082j5YS5i8", |
||||||
|
"java-advanced-topics:basics-of-threads": "u_YysD7Bpnq-xkFX5yJGz", |
||||||
|
"java-advanced-topics:streams": "WHxAwfdKHQSOg0TLX05EG", |
||||||
|
"java-advanced-topics:networking-sockets": "JeMG0gU8IVRBZgczjXmPi", |
||||||
|
"java-build-tools:gradle": "rmDIm5dqtdlNfPhvpqS7-", |
||||||
|
"java-build-tools:maven": "VdL_fAHxmRbuF0J627beA", |
||||||
|
"java-build-tools": "81N1cZLue_Ii0uD5CV6kZ", |
||||||
|
"java-web-frameworks": "_W84u4UXMSY0zvy6RJvFi", |
||||||
|
"java-web-frameworks:spring-boot": "xoryfi4SpJlkz-PV05ql6", |
||||||
|
"java-web-frameworks:quarkus": "w-kcKPh8U0P_jtT90_1Xy", |
||||||
|
"java-web-frameworks:play-framework": "kN-mXxqUPNJNsJGQ0U_7J", |
||||||
|
"java-logging-frameworks:logback": "okC1uMdyfIJAhX_R9Npsw", |
||||||
|
"java-logging-frameworks:log4j2": "sFaNj_1MviaTc6UIfjXl6", |
||||||
|
"java-logging-frameworks:slf4j": "LGlZHKqyQ-aWtHnhklhgn", |
||||||
|
"java-logging-frameworks:tinylog": "Fn7aAaGbwYsAp4xLuuFud", |
||||||
|
"java-orm": "fV-gW51jhna2__Ln2HIIh", |
||||||
|
"java-orm:spring-data-jpa": "WzWOxBUKKg6LeuBmVesc2", |
||||||
|
"java-orm:hibernate": "UEiDzzodyEu5O1xFAFDly", |
||||||
|
"java-orm:ebean": "X2rJ3BY1ytFKsbJqJETFu", |
||||||
|
"java-jdbc": "9UbRG752qxJdUwmqEAjN3", |
||||||
|
"java-logging-frameworks": "d9F5Wt8onY125DLuzNULg", |
||||||
|
"testing-java-apps": "LgpsnXV0CTvTspjnsd0Rd", |
||||||
|
"testing-java-apps:mocking": "mLM1HJf6_pxrUDOmb45ew", |
||||||
|
"testing-java-apps:cucumber-jvm": "UFDy19TNkykRsKv4vRsVJ", |
||||||
|
"testing-java-apps:junit": "hY1-sEpTmpaj1PregdkFf", |
||||||
|
"testing-java-apps:testng": "XU2C8bF9ICej8LS7ZGTTv", |
||||||
|
"testing-java-apps:jmeter": "U2BqOY49HaII6mKQB3SVt", |
||||||
|
"testing-java-apps:rest-assured": "gB4XUR9nCdF1-dOEwGcHi", |
||||||
|
"java-advanced-topics:generics": "eL4pc6SaNiKP48PzN7mNe" |
||||||
|
} |
Loading…
Reference in new issue