Preparing for Java and Spring Boot Interview?

Join my Newsletter, its FREE

Monday, May 20, 2024

Top 6 Free Data Structure and Algorithm Courses for Java and C Programmers

Data Structure and Algorithm is one of the essential topics for programmers, both to get a job and do well on Job. Good knowledge of data structure and algorithm is the foundation of writing good code. If you are familiar with essential data structures like an array, string, linked list, tree, map, and advanced data structure like Tries, AVL trees, etc and know when to use which data structure and compute the CPU and memory cost of your code in terms  Even though you don't need to write your own array, linked list or hash table, given every major programming SKD provides them like JDK or C++ STL library, you will need to understand them so that you can use them in right place. 

Using the right data structure can drastically improve the performance of an algorithm.

Sunday, May 19, 2024

Design a Vending Machine in Java - Interview Question

How do you design a Vending Machine in Java? is one of the popular Java interview questions mostly asked at Senior level Java developer Interviews. In a typical coding interview, you will be given a problem statement to develop a vending machine and within a limited time, usually, 2 to 3 hours you need to produce a design document, working code, and unit test in Java. One of the key advantages of such Java interviews is that you can test many essential skills or a candidate in one go. In order to complete the design, coding, and unit testing of a Vending machine, a candidate needs to be really good in all three departments. Recently, I have also seen this question on System Design Interviews, where interviewer want to check experienced developers knowledge on various Software architecture components and design decision. 

Saturday, May 18, 2024

Top 7 Spring Microservices Courses with Spring Boot and Spring Cloud in 2024 - Best of Lot

Microservices is the new buzzword in software development word and everybody is talking about it, but it's been in practice for quite some time especially in the form of RESTful web services. The idea of Microservices is simple, breaking a big monolithic application that contains everything from UI to service layer to database into small chunks of applications that are loosely coupled and can work on their own. For example, in a company like Uber, you could have several applications providing different services e.g. discovering when a driver is online or a passenger is searching for a cab, finding a route, traffic, and handling payments. These small applications are known as Microservices.

Friday, May 17, 2024

Top 10 Microservices Design Patterns and Principles - Examples

Hello guys, if you are using Microservice architecture and want to learn about different Microservice design patterns and principles to better architect your application then you have come to the right place. Earlier, I have shared the best Java Microservices courses and books for Java developers, and in this article, I am going to share the essential Microservice design principle and patterns. We will cover patterns like Event Sourcing, Circuit Breaker, SAGA, CQRS, Strangler, Database per Microservices, Backend for Frontend (BFF), Service Discovery,  and API Gateway and principles like Scalability, Flexibility, Resiliency, etc. When you developing an enterprise application, it is good to move with micro-services rather than move with a monolithic architecture. 

Top 5 Java Design Pattern Courses for Experienced Java Developers in 2024 - Best of Lot

Hello guys, today, we'll talk about design patterns and some of the best online courses to learn design patterns in Java from scratch. If you are wondering what is a design pattern and why Java developers should learn them? then let me give you a brief overview. Design patterns are nothing but a tried and tested solutions of common programming problems, for example, the creational design patterns deal with the problems of object creation. They exist from a long time but made popular by famous Gang of four of Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm in their classic 1994 book Design Patterns: Elements of Reusable Object-Oriented Software, also known as GOF design patterns. This book documented 24 design patterns which are reusable to solve common programming problems. 

Top 10 Courses to Learn Spring Framework in Depth in 2024 - Best of Lot

Spring Framework is an essential skill for Java developers, not only to get a job as a Java developer but also for your career advancement. Since Spring is now used in almost every Java project, it becomes virtually mandatory to learn the Spring framework. Now, the question comes, what is the best way to learn the Spring framework? Are there any online courses out there that are focused on Spring? What are some good books and resources for learning Spring? These questions are widespread among Java developers, and I often see them on forums, online chat channels, and even many of my readers also ask this to me on Facebook chats and email. Well, the best way to learn any technology is by coaching, online courses, and books.

Wednesday, May 15, 2024

Difference between @Autowired and @Inject annotation in Spring?

What is the difference between @Autowired and @Inject annotation in Spring is one of the frequently asked Spring questions on Java interviews? Since everybody is now moved or moving to annotation-driven and Java configuration in Spring, this question has become even more important for prospective candidates looking for a Java web development job using the Spring framework. The @Autowired annotation is used for auto-wiring in the Spring framework. If you don't know, autowiring is a process on which the Spring framework figure out the dependencies of a Spring bean, instead of you, a developer, explicitly specifying them in the application context file. You can annotate fields and constructor using @Autowired to tell Spring framework to find dependencies for you.

Top 9 Courses to Learn SQL and Database in 2024 - Best of Lot

Hello guys, if you are a computer science graduate or new to the programming world, interested in learning SQL, and looking for some excellent resources, like books, courses, and tutorials to start with, then you have come to the right place. In the past, I have shared some of the best SQL books and tutorials, and today I am going to share some of the best SQL and database courses to learn and master this useful technology. If you don't know what SQL is and why you should learn it, let me give you a brief overview of SQL for everyone's benefit. SQL is a programming language to work with a database. You can use SQL to create database objects, like tables, stored procedures, etc., and also to store and retrieve data from the database.

Top 8 Udemy Courses to Learn System Design and Software Architecture in 2024 - Best of Lot

Hello guys, if you want to learn Software Architecture and System design in 2024 and looking for best resources then you will be happy to know that  I am going to share  8 best Udemy courses to learn Software architecture and System design for 2024. if you are preparing for technical interviews for Software Engineering job then you may be aware of  Software Design or System design. It is one of the most important but at the same time very tough topic to master and many programmers even experienced developer struggle to solve System design problems during interview, particularly while interviewing with top tech companies like Google, Meta, Amazon, Apple, Microsoft, Netflix etc, popularly known as FAANG (now MAANG) since Facebook is now Meta. 

Top 5 Courses to Learn Hibernate and JPA in 2024 - Best of Lot

Hibernate is one of the essential frameworks for Java and Java EE or JEE programmers, especially if you are working on the server-side of a Java Web development project. It's an ORM tool or a framework that allows you to deal with only objects while Hibernate takes care of your data on your behalf. For example, instead of writing classes with SQL to load, save, and update data using the DAO design pattern, you can simply use the Hibernate framework in your project. It will allow you to deal with just objects while it will load, save, and update data in the background. It's also one of the top Java frameworks in my list of top 10 Java frameworks Programmers can learn.

Tuesday, May 14, 2024

Top 20 Spring and REST Interview Questions Answers for Java/JEE Programmers

Hello guys, I have been sharing a lot of REST with Spring tutorials from last a couple of weeks and today, I am going to share some of the frequently asked Spring and REST interview questions to Java developers applying for Web developer roles. Since Spring Framework is the most popular and the standard framework for developing Java web application and RESTful Web Services, a solid knowledge of Spring core and Spring MVC is expected from any senior Java developer, but if the job description mention about REST and Web Services, you also need to be aware of how to develop RESTful Web Services using Spring Framework?.

Monday, May 13, 2024

Top 5 Books to Learn Spring framework and Spring MVC for Java Programmers

Spring and Spring MVC is one of the most popular Java frameworks, and most of the new Java projects use Spring these days. Java programmer often asks questions like which books are good to learn Spring MVC or the best book to learn Spring framework etc. If you are looking for the best Spring Framework books, then you have come to the right place. Earlier, I shared the best Spring Framework courses and best Spring Boot courses, and in this article, I will share the best books to learn Spring Framework for Java developers. There are many books to learn Spring and Spring MVC, but only certain books can be considered good because of their content, examples, or how they explained the concept involved in the Spring framework. 

Sunday, May 12, 2024

How to POST JSON request from Linux to test RESTful Web Services? Example

Even though, Postman is a great tool and chrome plugin to test RESTful Web services for Java developers, I often find myself using "curl" or "cURL" command in Linux for testing RESTful Web Services, particularly Java web services built using Spring or Spring Boot framework. The curl command is easily available on most of Linux hosts and you just need to type a command to sent various types of HTTP requests to your application from Linux command line, as shown here. Though, many RESTful web developer and tester knows this trick, they mainly use GET request to access data from web service and  many of them struggle to send HTTP POST request containing JSON data to create new resources. 

Saturday, May 11, 2024

Role based Access control using Spring Security and MVC, Mapping LDAP Groups to Authorities for Authorization

Authentication and Authorization is an integral part of any Java enterprise or web application. Since most of the company uses LDAP Active directory for authentication, authorization, and Role-based access control (RBAC), it's good to know How to implement Role-based access control using Spring MVC and Spring Security. This is the second part of my articles on using Spring Security for authentication and authorization in Spring MVC based Java application. In the last part, we have learned about doing LDAP authentication against Windows active directory, and in this Spring Security tutorial, we will learn How to map LDAP groups to authorities for implementing Role-based access control or authorization.

Friday, May 10, 2024

3 ways to solve java.lang.NoClassDefFoundError in Java J2EE

I know how frustrating is to see "Exception in thread "main" java.lang.NoClassDefFoundError" while running your Java application. This is one of the dreaded problem in Java  which is also a manifestation of NoClassDefFoundError in Java. I have seen it a couple of times and spent quite a lot of time initially to figure out what is wrong, which class is missing etc. The first mistake I did was mingling java.lang.ClassNotfoundException and NoClassDefFoundError, in reality, are totally different, and my second mistake was using the trial and error method to solve this java.lang.NoClassDefFoundError instead of understanding why NoClassDefFoundError is coming, what is the real reason behind NoClassDefFoundError and how to resolve this.

10 Examples of JdbcTemplate in Spring Framework

Hello Java programmers, If you have been using the Spring framework then you may know that the JdbcTempalte is one of the most useful classes of the Spring framework. The JdbcTempalte class provides lots of convenient methods for performing database-related tasks that take the pain away from using the JDBC API. If you have worked in any real-life Java project which connects to a Database using JDBC then you know that JDBC API is not very convenient to use as it requires a lot of boilerplate code. For example, to execute a simple SELECT query, you first need to create a Connection and Statement object to execute the query and iterate through a ResultSet Object to get the result of the query. Finally, you need to close all of these resources to prevent resource leaks in Java.

How to Solve java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener in Spring? [Example]

If you have worked in Spring MVC then you may be familiar with  
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
which is common problem during deployment. Spring MVC throws  java.lang.ClassNotFoundException:                           org.springframework.web.context.ContextLoaderListener ,
when its not able to find org.springframework.web.context.ContextLoaderListener class which is used to load spring MVC configuration files like application-context.xml and other Spring Framework configuration files defined in context-param element of web.xml in an Spring MVC web application as:

Thursday, May 9, 2024

How to Consume JSON from RESTful Web Service and Convert to Java Object - Spring RestTemplate Example

So far, I have not written much about REST and RESTful web service, barring some interview questions like REST vs. SOAP, which is thankfully very much appreciated by my readers, and some general suggestions about the best books to learn REST and best REST courses in the past. Today I am going to write something about how to consume JSON from a RESTful Web Service in Java using Spring Framework? I will also talk about how to convert the JSON to Java objects using Jackson. You will also learn about the RESTTemplate class from the Spring MVC framework, and how you can use it to create a REST client in Java in just a few lines of code.

Wednesday, May 8, 2024

Spring Boot + Kafka Example (Single and Multiple Consumer) in Java

Hello guys, if you want to use Apache Kafka with Spring Framework or Spring Boot and looking for an example then you have come to the right place. In the past, I have shared the best Spring Boot courses as well as best Apache Kafka courses for Java developers, and in this article, I am going to share how to use Apache Kafka with Spring Boot. You will learn both, to publish and consume messages from Apache Kafka topics in your Spring boot application. By the way, if you don't know, Apache Kafka is an open-source stream-processing software platform developed by LinkedIn and later they donated to Apache software foundation, king of open source development in Java world. 

Monday, May 6, 2024

How to set an "Accept:" header on Spring RestTemplate request? Example Tutorial

Hello Java programmers, if you have been using Spring for REST API development, both creation and consumption then you know that RestTemplate is one of the most commonly used tools for REST service invocations. So one of the major problems you might have in this RestTemplate is that how to set an "Accept" header on Spring RestTemplate request.  In the last article, I have shown you how to POST and Consume JSON using RestTemplate in a Spring Based Java application and In this tutorial, we will go through some important points on how to add headers to RestTemplate and fix the errors related to them. 

Saturday, May 4, 2024

Top 133 Java Interview Questions Answers for 2 to 5 Years Experienced Programmers

Time is changing and so is Java interviews. Gone are the days, when knowing the difference between String and StringBuffer can help you to go through the second round of interview, questions are becoming more advanced and interviewers are asking more deep questions. When I started my career, questions like Vector vs Array and HashMap vs Hashtable were the most popular ones and just memorizing them gives you a good chance to do well in interviews, but not anymore. Nowadays, you will get questions from the areas where not many Java programmer looks e.g. NIO, patterns, sophisticated unit testing or those which are hard to master e.g. concurrency, algorithms, data structures and coding.

Top 22 Spring Interview Questions Answers for Java Programmers [UPDATED]

Hey Java Programmers, if you are preparing for a Java developer interview then you should pay special attention to Spring framework-related questions. Spring framework interview questions are on the rise on Java web development and core Java interviews.  This is obvious given Spring Framework is the best most popular framework available for Java application development and now Spring IOC container and Spring MVC framework are used as a de-facto framework for all new Java development. Because of its popularity,  interview questions from the spring framework are top on any list of Java Interview questions and you should also prepare different Spring topics like Spring Boot, Spring Data JPA, Spring Security, Testing and Spring Cloud, etc to do well on Java developer interviews. 

How to fix @Autowired - No qualifying bean of type found for dependency in Spring Boot? [Solved]

Hello guys, if you are working in a Java and Spring Boot project and you are getting errors like "@Autowired - No qualifying bean of the type found for dependency " then you have come to the right place. Earlier, I have shared how to solve error creating bean with name in Spring framework and In this tutorial, we are going to discuss how to fix @Autowired - No qualifying bean of the type found for dependency. When we come across the org.springframework.beans.factory, we need to be careful. Whether there isn't a qualifying bean of type XXXX accessible, we should see if there is a spring bean called XXXX in the runtime. In most cases, we simply try to inject a bean that isn't defined.

Is "Java Concurrency in Practice" still Valid in the Era of Java 21?

Hello guys, one of my reader Shobhit asked this question on my blog post about 12 must-reads advanced Java books for intermediate programmers - part 1. I really like the question and thought that many Java programmers might have the same doubt whenever someone recommends them to read Java Concurrency in Practice. When this book came first in 2006, Java world was still not sure of about new concurrency changes made in Java 1.5, I think the first big attempt to improve Java's built-in support for multi-threading and concurrency. Many Java programmers were even not aware of new tools introduced in the API like CountDownLatch, CyclicBarrier, ConcurrentHashMap, and much more. The book offered them the seamless introduction of those tools and how they can use them to write high-performance concurrent Java applications.

Friday, May 3, 2024

Difference between @Component, @Service, @Controller, and @Repository in Spring

Before you learn the difference between @Component, @Service, @Controller, and @Repository annotations in the Spring framework, it's important to understand the role of @Component annotation in Spring. During the initial release of Spring, all beans are used to be declared in an XML file. For a large project, this quickly becomes a massive task, and Spring guys recognize the problem rather quickly. In later versions, they provide annotation-based dependency injection and Java-based configuration. From Spring 2.5 annotation-based dependency injection was introduced, which automatically scans and registers classes as Spring bean which is annotated using @Component annotation.

Wednesday, May 1, 2024

Top 20 Spring Framework Annotations Java Developers Should Know

Hello guys, annotations are quite important when working in modern Java application as almost all frameworks and libraries nowadays use annotations, including Spring Framework. There was time when we need to remember classes and methods to make effective use of JDK or any open source library but now we also need to remember annotations. For example, to use JUnit you must know about annotations like @Test, @BeforeEach, @AfterEach, @Disabled and so on. Similarly for Spring framework you need to know annotations like @Configuration, @Bean, @Component, @Service, @Value, @Autowired, @Repository, @Qualifier, @Required and more. 

Tuesday, April 30, 2024

Top 10 Java and Web Development Courses from Udemy in 2024 - Best of Lot

Hello guys, I am sure you all have made your goals and resolutions for this year, like what to learn in 2024. If you haven't, then check out my post 10 Things Java programmers should learn in 2024 for some ideas. If you have already made your goal, then it is time to think about how you are going to achieve them. For example, my top 5 goals in 2024 are to learn Java 17, AWS, Microservices, Spring 5, and Spring Security 5, but how am I going to learn them? Well, I like books and online courses, and that's why I have been searching for some excellent courses on Java, Spring Boot, Microservices, Docker, Web development, and Spring. 

Sunday, April 28, 2024

Top 17 Spring AOP (Aspect-Oriented Programming) Interview Questions Answers

If you are preparing for Java and Spring Developer interviews or Spring professional certification then a good knowledge of Aspect-oriented Programming or AOP is required. It's a boring and tough topic but important from a Spring interview and Spring certification point of view and that's where these 15+ AOP interview questions come really handy. You can use them to revise key AOP concepts before any telephonic or face-to-face interview as well as to learn and explore more about Aspect-Oriented ProgrammingIn this article, I am going to share frequently asked AOP interview questions and also tried to answer AOP questions give on the official Spring certification exam guide.

20 Design Patterns and Software Design Interview Questions for Programmers

Design patterns and software design questions are an essential part of any programming interview, no matter whether you are going for a Java interview or a C#  interview. In fact, programming and design skills complement each other quite well, people who are good programmers are often good designers as well as they know how to break a problem in to piece of code or software design but these skills just don’t come. You need to keep designing, programming both small-scale and large-scale systems, and keep learning from mistakes. 

Saturday, April 27, 2024

Top 5 Spring Boot Features for Java Development

You might have heard about Spring Boot and its magical powers about creating a Spring Web application in just under 140 characters which can be written in a tweet, but what does that really mean? What are those features which provide Spring Boot such power and make Spring application development so easy? Well, that's what you will learn in this article, but if you are in hurry let me tell you that you will learn about Spring Boot's auto-configuration, Starter dependencies, Spring Boot CLI, Actuator, and Spring Initializer feature in detail. These are the feature that takes away most of the pain and friction associated with writing a Spring-based Java web application.

Friday, April 26, 2024

What is bean scope in Spring Framework? Example Tutorial

Java classes or POJO which are managed by Spring Framework are called Bean or Spring Beans and Bean scope in Spring framework or Spring MVC is scope for a bean managed by Spring IOC container. Bean scope refers to the lifecycle and visibility of a bean instance in spring container. The scope determines how long the bean instance will live and how it will be shared with the other parts of application. You may know that Spring is a framework that is based on Dependency Injection and Inversion of Control and provides bean management facilities to Java application. In Spring-managed environment bean (Java Classes) are created and wired by the Spring framework. Spring allows you to define how those beans will be created and the scope of the bean is one of those details. Scope are similar to access modifiers in Java which specifies visibility of a particular class. 

Thursday, April 25, 2024

Difference between @RequestMapping and @GetMapping in Spring MVC? Example

Hello Java programmers, if you are wondering what is the difference between @RequestMapping and @GetMapping annotation in Spring MVC and when and how to use them then you have come to the right place. Earlier, I have shared the best Spring MVC courses and books, and In this tutorial, we are going to discuss about Spring MVC and spring boot web services. In there, most of the interviewers asked about the difference between @RequestMapping and @GetMapping annotations in spring applications. Before going to discuss the difference between these annotations, first, understand what is @RequestMapping?, How do we use the @RequestMapping?, What is a request? and types of them.

Wednesday, April 24, 2024

Spring Boot @Transactional Annotation Example - How to Manage Transactions using Spring Framework?

One of the most essential parts of Spring MVC is the @Transactional annotation, which provides support for transaction management and allows developers to concentrate on coding business logic rather than worrying about data integrity in the event of system failures. In other words, @Transactional annotation  simplifies the process of transaction management and it allows you to specify transactional behavior directly within your code, typically at the service layer. You can put @Transactional annotation both at the class level and method level. When you put the @Transacational at the class level, it applies to all the public method of the class but when you put the @Transacational annotation at the method level. It only applies to that method. 

Tuesday, April 23, 2024

4 Ways to take Heap dump in Tomcat and Java and 3 Tools to Analyse .hprof files

The heap dump is a great source of information on identifying memory related issues on Java application e.g. web and application servers like Tomcat, WebLogic, JBoss, WebSphere and IDEs like IntelliJIDEA and Eclipse. When you take heap dump all live objects of heap with their count and other details are written into a huge file (the .hprof file) for analysis. The name and location of heap dump file is provided by command you use to take the heap dump. There are many command line tools in JDK e.g. jmap and jcmd which can be used to take the heap dump in Java. 

Monday, April 22, 2024

Top 50 Java 8 Stream, Lambda, and Functional Programming Interview Questions

Hello guys, if you are preparing for Java interviews and looking for some Java 8 Stream, Lambda Expression, and other Java 8 features then you have come to the right place. Earlier, I have shared 140+ Core Java interview questions, 50 Java Programs from Interviews and 20+ Spring Boot questions and in this article, I am going to share Stream, Lambda expression, and other Java 8 feature-based questions.  Java 8 features are now not remained as good to know features. They have been increasingly adopted by many organizations and most of the new development encourage developers to write code in Java 8 style to take full advantage of massive CPU power available in modern servers like HP 380 Gen 8 servers, also known as G8. 

Sunday, April 21, 2024

Top 3 Design Patterns and Best Practices Java Developers Can Learn From Spring Framework

There is no doubt that the Spring Framework is one of the most popular Java frameworks and makes it really easy to create real-world, enterprise-grade Java applications easy by providing features like dependency injection and inversion of control. But, to be honest, Spring is much more than just another DI and IOC framework. It goes one more level to simplify many Java APIs like JDBC, JMS, Java Mail, etc by providing a useful layer of abstraction. It's much more comfortable to work with JDBC with Spring's JdbcTempalte and other utility classes. They remove most of the friction Java developer faces with respect to executing SQL statements and processing ResultSet to get the Java object they want.

2 Reasons of org.springframework.beans.factory.BeanCreationException: Error creating bean with name [Solution]

The Spring framework is one of the most popular frameworks for developing Java applications. Apart from many goodies, it also provides a DI and IOC container that initializes objects and their dependencies and assembles them together. The Java classes created and maintained by Spring are called Spring bean. At the startup, when the Spring framework initializes the system by creating objects and their dependencies depending upon @Autowired annotation or spring configuration XML file, it throws "org.springframework.beans.factory.BeanCreationException: Error creating a bean with name X" error if it is not able to instantiate a particular Spring bean.

Top 21 Spring Framework and Spring Boot Testing Interview Questions Answers for 2 to 5 Years Experienced

Testing is an important part of Software development but many people don't pay attention to it only to find bugs in the later stages of development that can be easily avoided by unit testing. When it comes to Java and Spring Boot development, we are lucky to have JUnit, Mockito, JsonPath, AssertJ, and some in-built testing facilities on Spring Framework and Spring Boot for our testing needs. Since the advent of DevOps, there is an increased focus on automation testing and that's why unit testing and integration testing has become important topics on Java Interviews and it's essential for Java developers to have in-depth knowledge about how to test a Spring framework and Spring Boot based Java application.

Saturday, April 20, 2024

10 Example of find command in UNIX and Linux

The find command is one of the most versatile commands in UNIX and Linux, and I used it a lot in my day-to-day work. I believe having a good knowledge of find command in UNIX and understanding of its different options and usage will increase your productivity a lot in UNIX based operating systems, e.g. Redhat Linux or Solaris. If you are a QA, support personnel, and your works involve lots of searching text on Linux machine or if you are a Java or C++ programmer and your code resides in UNIX, find command can significantly help you to look for any word inside your source file in the absence of an IDE.

Friday, April 19, 2024

Differences between @RequestParam and @PathVariable annotations in Spring MVC?

The Spring MVC framework, one of the most popular frameworks for developing a web application in Java world also provides several useful annotations to extract data from the incoming request and mapping the request to the controller, like @RequestMapping, @GetMapping, @RestController, @RequestParam, and @PathVariable. Even though both @RequestParam and @PathVariable are used to extract values from the HTTP request, there is a subtle difference between them, which makes them a useful question from a Spring Framework interview and spring certification point of view. We'll examine the subtle difference between @RequestParam and @PathVaraible in this article.

Top 25 Spring Security Interview Questions Answers for Java Developers

Hello guys, Spring Security is one of the most popular security frameworks in the Java world and I strongly believe that every experienced Java developer should learn it. Because of its popularity, there is always some question on Spring Security on Java interviews but there are not enough resources to prepare for that. That's why when  I shared the Spring MVC questions and spring boot interview question last year, a lot of you asked me to share similar interview questions on Spring Security, Spring Cloud, and Microservices. I listen to those requests and have been doing some research since then to write those articles. 

Thursday, April 18, 2024

How Spring MVC Framework works? How HTTP Request is processed?

Hello guys, one of the frequently asked Spring MVC Interview questions is about explaining the flow of web requests i.e. how an HTTP request is processed from start to end. In other words, explaining the flow of requests in Spring MVC. Since many of my readers ask this question time and again, I thought to summarize the flow of request processing in a short article. It all starts with the client, which sends a request to a specific URL. When that request hits the web container like Tomcat it looks into web.xml and finds the Servlet or Filter which is mapped to that particular URL. It the delegate that Servlet or Filter to process the request. Since Spring MVC is built on top of Servlet, this is also the initial flow of requests in any Spring MVC based Java web application.

Friday, April 12, 2024

Top 7 Spring and Hibernate Training Courses for Java JEE Programmers in 2024 - Best of Lot

Spring and Hibernate are two of the hottest and most in-demand web frameworks in the Java world and also two of the most essential skill for any Java programmer to get a job in the web development space. The Spring framework is in around 2004 and established itself as the leading framework to develop Java applications both in core Java and web development areas. The Spring framework comes with a lot of modules to support different kinds of developments like Spring Security to address the security requirements of most web and enterprise Java applications. It supports single sign-on, LDAP authentication, Role-based access control, and much more such essential features. Spring also supports the development of REST services which is now become a standard way to provide web services.

Thursday, April 11, 2024

10 Examples of @RequestMapping Annotation in Spring MVC and REST

The @RequestMapping annotation is one of the most important annotation of Spring MVC which provides mapping of HTTP requests to controller methods, I mean Java methods on Controller class for processing. If you wonder, how Spring handles a particular request and which method from controller class is called for a particular request, answer lies on @RequestMapping annotation. This annotation maps web request to methods on controller class. You can apply @RequestMapping on class or method level of your controller. This is a powerful annotation and give you a lot of option to sophistically map a web request e.g. you can narrow down mapping by using HTTP headers, HTTP methods e.g. PUT or POST, and by using Query parameters.

Top 10 Java Programming Courses for Beginners to Learn Online in 2024 - Best of Lot

If you are a computer science graduate or someone who wants to learn Java and looking for some awesome resources like books, tutorials, and online courses then you have come to the right place. In the past, I have shared some great books, websites, and tutorials to learn Java and in this article, I am going to share some of the best Java courses beginners can join to learn Java in 2024. One of the main problems with learning Java is keeping pace with the increasing number of releases. For example, Java 8 release completely changed how Java is written and after that, we have many Java releases in the form of Java 9Java 10, Java 11, 12, 13, 14, 15, 16, and now Java 17. But the good thing is that the core of Java is still the same and all its releases are backward compatible.

Top 5 Courses to learn Microsoft Azure Cloud in 2024 - Best of Lot

Hello guys, if you want to learn about the Microsoft Azure Cloud Platform, you have come to the right place. In the past, I have shared the best courses to pass Azure FundamentalsAzure Administrator, and Azure Architect certifications. Today, I will share the best online course to learn the Azure platform for Beginners. These are top-quality courses from expert trainers and instructors and are picked from Udemy, Coursera, and edX. You can use these courses to learn Microsoft Azure core services and prepare for different Microsoft Azure certifications like AZ-900, AZ-303, and AZ-20 Azure developer associate certification.

Top 3 Books to Learn Java for C and C++ Programmer?

In the last 2 decades, many Java programmers started programming with C and C++, but the situation is changed now, you have more choices like you can choose Python, or you can even start with Java. It seems Academia prefers Python in the USA and Java in India, but there are still many programmers who know C and C++ and want to learn Java for one or other reasons. I often receive emails from my readers about book recommendation, and recently, a couple of them asked me to suggest the best Java books for C and C++ programmers. I can relate those beginners to myself because I have also gone through the same phase, but those days, the university textbooks are our only source to learn new things. We didn't have broadband, and unlimited access to the Internet and eBooks was not popular at that time, but things have changed.

Wednesday, April 10, 2024

How to limit Concurrent Login Sessions in a Java web application using Spring Security? Example

If you don't know, Spring security can limit the number of sessions a user can have in a Java web application. If you are developing a web application especially a secure web application in Java JEE then you must have come up with the requirement similar to many online banking portals have like only one session per user at a time or no concurrent session per user. If the user tries to open a new session then either an alert is shown or his previous session is closed. Even though you can also implement this functionality without using spring security but with Spring security, it's just a piece of cake with coffee :). 

2 Ways to setup LDAP Active Directory Authentication in Java - Spring Security Example Tutorial

The LDAP authentication is one of the most popular authentication mechanism around the world for enterprise application and Active directory (an LDAP implementation by Microsoft for Windows) is another widely used LDAP server. In many projects, we need to authenticate against active directory using LDAP by credentials provided in the login screen. Sometimes this simple task gets tricky because of various issues faced during implementation and integration and no standard way of doing LDAP authentication in a Java web application. Even though Java provides LDAP support but in this article, I will mostly talk about spring security because of it's my preferred Java framework for authentication, authorization, and security-related stuff.

Entuware or Whizlabs? Which Exam Simulator Should you Buy for Java Certifications (OCAJP, OCPJP, and Others)?

I often receive queries from Java certification aspirants about exam simulators like whether should I go for Whizlabs or Enthuware, which one is better? If I have to buy just one exam simulator, which one would you recommend, Whizlabs or Enthuware? I thought to answer all those questions in a blog post and here you go. To be honest with you both of them are really high-quality test simulators and whichever you buy, you will do well on actual exams. But, as a programmer, I really like to analyze the situation, I compare pros and cons of each of them before I buy one of them. Since I have used both of them in the past I am sure about that in quality, they are neck to neck there, but here are couple of things which you can consider before buying Java certification simulator from Whizlabs or Enthuware?

Monday, April 8, 2024

How HTTP Basic Authentication works in Spring Security? Explained

In the last article, I have taught you how to enable Http basic authentication in Spring security-based Java application, and now we'll go one step further to understand how exactly http basic authentication works in Spring security. If you remember, when you use HTTP Basic for authentication purposes, the client, like a browser or a rest client sends login credentials in the http request header. The header is aptly named "Authorization," and it contains a Base64 encoded string, which is created by concatenating username and password using a colon. For example, if the username is "johnsmith" and the password is "JOHN3214" then they will be concatenated as "johnsmith:JOHN3214" before encoded using base 64 encoding algorithms.

Top 5 Software Development and Project Management Books - Best of Lot, Must Read

Hello guys, if you are looking for Software development and Project management books then you have come to the right place. Earlier, I have shared Software development and project management courses and today I am going to share best books you can read on Software development and project management. You may be wondering, Why software development project managers should read books? Isn't they are experienced enough to become a project manager and handle software development and manage Programmers? A genuine question, but Software management is harder than any other management purely because every Software or Project is different than the previous one. Many other streams of engineering, like Civil or Mechanical, got better in terms of estimation and management with the help of software, but software development is still run on experience.

How to send HTTP request using curl and wget command from Linux and UNIX? Example Tutorial

You can use either curl or wget command to send HTTP requests from UNIX or Linux operating system. Both commands allow you to send GET and POST requests, which means you can also call REST web services.  I have a Java web application, which runs on Linux and exposes WebServices. I was writing a UNIX script to download In some data from that web service when I hit by the question, how do I make an HTTP call from UNIX? What is the UNIX command should I use? If you are also facing the same problem, then you have come to the right ht place. Basically, you can use two UNIX commands to make the HTTP request, wget, and curl.

How to Prepare for Java 8 Certifications - Oracle Java SE 8 Programmer 1 (1Z0-808) and II (1Z0-809)

Today one of my readers asked about what is the latest OCPJP or Oracle Java exams available and is there a Java certification available for Java SE 19 and Java SE 17?. This prompted me to browse through Oracle's certification website. During my casual browsing, I noticed that even though it's almost a year since Java SE 9 was released and 6 months since Java SE 20was released the latest Java certification is still the Java SE 17 certification. I know, you might be thinking about Java SE 11 certification, which is the latest Java certification available, but still many programmers are going for Java 8 because that's what they use in their production environment. 

How to Fix Exception in thread "main" java.util.ConcurrentModificationException in Java? [Solved]

Hello guys, if you are struggling to solve Exception in thread "main" java.util.ConcurrentModificationException" error in Java and wondering why this error comes even if you are not using multiple threads then you have come to the right place. In this tutorial, I will tell you everything about this error like why it comes and how you can solve it. One of the common problems while removing elements from an ArrayList in Java is the ConcurrentModificationException. If you use classical for loop with the index or enhanced for loop and try to remove an element from the ArrayList using remove() method, you will get the ConcurrentModificationException but if you use Iterator's remove method or ListIterator's remove() method, then you won't get this error and be able to remove the element. 

How to fix java.lang.numberformatexception for input string null - Cause and Solution

The java.lang.NumberFormatException comes when you try to parse a non-numeric String to a Number like Short, Integer, Float, Double etc. For example, if you try to convert . "null" to an integer then you will get the NumberFormatException. The error "Exception in thread "main" java.lang.NumberFormatException: For input string: "null" is specifically saying that the String you receive for parsing is not numeric and it's true, "null" is not numeric. Many Java methods which convert String to numeric type like Integer.parseInt() which is used to convert String to int, Double.parseDoble() which convert String to double, and Long.parseLong() which convert String to long throws NumberFormatException to inform that the input String is not numeric.

How to fix java.net.SocketException: Software caused connection abort: recv failed

Out of many client servers related socket errors here is one more interesting socket related error from the Java program, "java.net.SocketException: Software caused connection abort: recv failed". The key point in this error message is "abort" and "recv", which means is someone (client or server) is trying to read from a closed connection. This error usually comes at the client socket end, when the server closed the connection before the client has read the response, but, in general, it can come to an end of the TCP socket, so you must check the log files for both clients and server to find out who is complaining. If the Server is complaining then it's fine and the client has closed the TCP connection may be due to timeout or any RuntimeException at the client end.

Top 7 Online Courses to learn AWS (Amazon Web Services) in 2024 - Best of Lot

With the growth of Cloud computing in recent years, Amazon Web Services (AWS) has become one of the most in-demand technology skills nowadays. This is not a surprise because AWS is the oldest and most significant public cloud provider, and many companies, both big and small, have hosted their solution on AWS.  It has the most extensive collection of Services on the AWS marketplace, which provides individuals and organizations innovative tools and techniques to deploy or migrate their entire infrastructure onto the AWS platform. The demand for AWS Certified Professionals will only grow because migration to the cloud is now the key priority for many organizations.

How to Sort an HashMap by values in Java 8 - Example Tutorial

In the last article, I have shown you how to sort a Map in Java 8 by keys, and today, I'll teach you how to sort a Map by values using Java 8 features e.g. lambda expression, method reference, streams, and new methods added into the java.util.Comparator and Map.Entry classes. In order to sort any Map, like HashMap, Hashtable, LinkedHashMap, TreemMap, or even ConcurrentHashMap, you can first get a set of entries by using the entrySet() method and then you can get the stream by calling the stream() method. The entrySet()  method returns a Set which inherit the stream() method from the java.util.Collection class. Once you got the stream, you can just call the sorted() method which can sort all Map.Entry objects available in Stream using a Comparator.

10 Example of lsof commands in Linux and UNIX

It's been a long time since I have written anything on UNIX or Linux commands. Still, today, I'll talk about the lsof command, a utility command every system admin and developers love. The lsof command stands for list open file descriptors, and as the name suggests, it is used to find open files by the process. Since almost everything in UNIX are file, you can use lsof command to find an open regular file, a directory, a symbolic link, a special block file, an NFS mounted file, a socket stream, a shared library, a special character file, a regular pipe, a named pipe, an internet socket, a UNIX domain socket, and many others. I have mostly used it to find all the files opened by a particular process, which I will show you in the next section.

How to Convert a Lambda Expression to Method Reference in Java 8?

If you have been coding in Java 8 then you may know that using method reference in place of lambda expression makes your code more readable, hence it is advised to replace lambda expression with method reference wherever possible. But, the big question is, how do you find whether you can replace a lambda with method reference? Yes, it's not that easy, especially if you have been using Java 8 only for a couple of months and struggling to get the functional programming concepts and idioms sorted in your head. Sometimes, IDEs like IntelliJ IDEA and Eclipse does offer some hints to convert lambda expression to method reference but it does make sense to learn the logic behind it, otherwise, it won't make sense.

Does Oracle's Java Certifications is Good to Start your Career as Java Developer?

Being the author of a Java blog and a certified Java programmer, I receive lots of questions about the usefulness of Java certifications like SCJP, now known as OCJP or OCPJP. Questions like, does getting a Java Certification help to land a job, or does certified Java developers earn more or gets better offers, are quite common to Java developers, especially freshers. In this post, I will try to answer a few of these questions based on my own experience as a Java blogger and a certified Java developer. Well, I did my first Java Certification, SCJP (Sun Certification for Java Programmers) along back when SCJP 1.4 was hot and after scoring 100% on that I did two more Java certifications i.e. my SCWCD (Sun Certification for Web Component Developer) and SCMAD (Sun Certified Mobile Application Developer). 

4 Ways to find Nth highest salary in SQL - Oracle, MSSQL and MySQL

One of the most common SQL interview questions is to find the Nth highest salary of employees, where N could be 2, 3, 4 or anything e.g. find the second highest salary in SQL. Sometimes this question is also twisted as to find the nth minimum salary in SQL. Since many Programmers only know the easy way to solve this problem e.g. by using SQL IN clause, which doesn't scale well, they struggle to write the SQL query when the Interviewer keeps asking about the 4th highest, 5th highest and so on. In order to solve this problem effectively, you need to know about some key concepts like a correlated subquery, window functions like ROW_NUMER(), RANK(), and DENSE_RANK()etc. Once you know the generic logic to solve this problem, you can tackle all those variations by yourself.

Sunday, April 7, 2024

Review - Is Grokking Algorithms book by Aditya Bhargava worth it?

Hello guys, I have read many books on data structures and algorithms like Introduction to Algorithms by Thomas H. Corman and Algorithm design manual by Steve S. Skiena, so when I come to know about this book, I thought, just another book on algorithms, but I was wrong. This is not just another book on algorithms but one of the most interesting books you will ever read on Algorithms and Data structure. It doesn't cover all the data structure and algorithms you see in Computer Science but whatever it covers, it does really well and that's what matters most for beginner programmer or Computer Science students.

Top 5 Books to Learn Docker for Beginners - Best of Lot

Hello guys, if you are a developer or software engineer then you might have heard about Docker and containers. Being an author of a Java and Programming blog, I daily receive a lot of questions about Docker like what is Docker? what is Docker compose, which Docker commands should I learn, what is Docker Hub, How can I migrate my application to Docker and how can I deploy Docker container on AWS, Azure, and GCP. These are also some of the common doubts of programmers across the world. Let's start with What is Docker and why a Programmer should learn Docker? Simply speaking, Docker programming language makes project management and deployment seem easy.

Top 5 Books to Learn Core Java for Beginners - Best of Lot

Hello guys, I have shared a lot of books related to Java and related technologies in the past, like books and online courses to learn Spring, Hibernate, JVM internals Java Performance tuning, Multi-threading, and Concurrency, Design patterns, Data structure, and Algorithms, etc., but I haven't shared books for core Java books for beginners yet. Even though I have mentioned a couple of popular titles every now and then, I really didn't have a complete compilation of essential core Java books for beginners. Since Java is one of the most popular programming languages and very useful for getting a job as a Software developer, it has become a choice of programming language to start learning coding and application development, it makes sense to start well with core Java.

SQL Self Join Example - SQL Query to Find Employees Earning More Than Managers - LeetCode Solution

Hello guys, are you looking for a simple example of how to use SELF JOIN in SQL? If yes, then you have come to the right place. This article will show you how to use Self join in solving interesting SQL problems from LeetCode. Along the way, you will also learn this useful SQL concept. So, what are you waiting for? Let's first check the problem, and then we'll write an SQL query using SELF Join to solve this problem.

Write an SQL Query to Find Employees Earning More Than Managers
The Employee table holds all employees, including their managers. Every employee has an Id, and there is also a column for the manager Id, as shown below:

+----+-------+--------+-----------+
| Id | Name  | Salary | ManagerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | NULL      |
| 4  | Max   | 90000  | NULL      |
+----+-------+--------+-----------+

Given the Employee table, write a SQL query that finds employees who earn more than their managers. For the above table, Joe is the only employee who earns more than his manager because Henry's Manager is Max, who earns 90000, which is more than Henry's salary of 80000.

Difference between row_number(), rank() and dense_rank() window functions in SQL

Though all three are ranking functions in SQL, also known as a window function in Microsoft SQL Server, the difference between rank(), dense_rank(), and row_number() comes when you have ties on ranking i.e. duplicate records. For example, if you are ranking employees by their salaries then what would be the rank of two employees of the same salaries? It depends on which ranking function you are using like row_number, rank, or dense_rank.

Top 8 Courses to Learn Software Architecture for Experienced Programmers in 2024 - Best of Lot

Every Programmer or Software developers wants to grow in their career, but it's not easy, and if you don't pay attention to your job, you will likely to remain in the same position for many years. The growth in the initial few years is generally fast, especially if you are switching companies, and I do recommend that to increase your pay. Though, once you reach the barrier of 5 years, you need to decide which direction you want to move like - people management, product management, or software architecture. For tech guys, who don't want to go on people and product management, software architecture or solution architecture is the final position, which is not surprising. If you want to be close with coding and technical discussions, like to try new technologies, and want to use them in your organization to solve a challenging problem, software architect and solution architect is an excellent position to be in.

Saturday, April 6, 2024

Top 10 Java map() and flatMap() Functional Programming Coding Problems with Solutions

Hello friends, in last a couple of years, I have seen an increase in coding problems where interviewer expect you to solve using functional programming concepts and particularly map() and flatMap(). They do this because they want to know whether you know about these methods or not and whether you can use them in real world scenarios like solving coding problems. I have been collecting such coding problems and today, I am ready with 10 such map and flatMap related coding questions which I am going to share with you. The beauty of these coding interview questions is that you can easily solve them using Stream API and map() and flatMAp() method but if you try to solve them without using Stream API, it could be little tricky.  

Friday, April 5, 2024

Top 10 Free Courses for System Design Interviews in 2024 - Best of Lot

Hello guys, if you are preparing for System Design Interview or just want to improve your Software design skills and looking for best free resources like tutorials and free online courses then you have come to the right place. In the past, I have shared best System design coursesbookswebsites, and popular System design questions but a lot of you asked for free resources and that's why I am going to share best free System design courses I found online. These online System Design training courses are completely free and provides a diverse knowledge about different System design concepts and process. They are also created by experienced trainers and teacher who has gone through the same process and available on trusted online platforms like Udemy and YouTube. You can join one or more of these free System design courses to not only improve your Software design skill but also to prepare for your next System Design Interview

Thursday, April 4, 2024

DesignGuru.io Review - Is Grokking Advanced System Design Interview Course Worth it?

Hello guys, Before I give my review of DesignGuru's Grokking Advanced System Design Interview course, let me tell you a little bit more about this course so that we are on the same page. As you must already know if you have ever gone through for a software engineering interview, system design questions are an integral part of the process. System design plays a very important part as it is considered more important than solving coding problems. And in order to impress your potential employers, you have to be able to show your real design skills and convince them that you are able to work with complex design systems.

Wednesday, April 3, 2024

Top 7 Courses to learn PostgreSQL Database in 2024 - Best of Lot

PostgreSQL is one of the most popular databases after the big three - Oracle, SQL Server, and MySQL. PostgreSQL is commonly known as Postgres and is often referred to as the world's most advanced open source database. If you are looking to learn PostgreSQL in 2024 and looking for some useful resources like books, tutorials, and courses then you have come to the right place. In this article, I am going to share some of the best PostgreSQL online courses for beginners. These courses will cover topics ranging from installations to writing basic queries and retrieving data from tables. you will also explore the logic of SQL Joins, and a few best practices which are essential while working in a real-world, production PostgreSQL database.

How to Crack System Design Interview in 2024? [The Ultimate Guide]

Hello guys, if you are preparing for Software Engineer Interviews, or Software developer interview then you may know that how difficult it is to prepare for System Design interviews given its open ended nature and vastness but at the same time you cannot ignore it. In Software Engineering world, if you are applying for a Senior Engineer / Lead / Architect / or a more senior role, System Design is the most sought-after skill, and hence one of the most important rounds in the whole process. If you mess this up, nothing else would matter. If you get it right though, you’re looking at a raise of at least tens of thousands of dollars annually. 

Tuesday, April 2, 2024

Top 6 Courses to learn Django Framework in 2024 - Best of Lot

Hello folks, If you are learning Python Programming language for Web Development, then you may have heard about the Django framework. Django is one of the popular web development frameworks to create modern web applications using the Python programming language. Django is also the most popular and most mature Python web development framework around. It makes it easier to build better Web apps more quickly and with less code. Building websites with Django is not just smart and efficient, but fun too! Learning Django can also boost your CV as it's a very in-demand skill.

[Udemy Course Review] - Is Java 17 Masterclass: Start Coding in 2024 by Tim Buchalka Worth it?

Hello guys, if you want to learn Java Programming from scratch and looking for the best Java course to join then you have come to the right place. Earlier, I have shared the best Java Programming courses, and today, I am going to review Java Programming Masterclass for Software Developers by Tim Buchalka, one of the highest-rated Java courses from Udemy. This course was also known as The Complete Java Masterclass before and now its known as Java 17 Masterclass: Start Coding in 2024. I have mentioned this course multiple times throughout different articles because it's currently the best course to learn Java. It's both comprehensive and up-to-date and most importantly it's very cost-effective. You can buy this 80-hour comprehensive course for just $10 which is just amazing. 

Monday, April 1, 2024

Educative Review - Is Grokking Modern System Design for Software Engineers and Managers worth it?

Hello guys, System Design Interview is one of the hardest part of any coding or programming job interview and it requires a lot of preparation and knowledge to crack system design interview. You need to know a lot of System design concepts like API Gateway, Load Balancer, Microservices vs Monolithic architecture, SQL vs NoSQL, Horizontal vs Vertical scalability and much. If you are preparing for System design interview then you may have come across that Educative.io has one of best System design courses like this one and Grokking the System Design Interview.  Before I give you my verdict on whether you need to choose Educative's Grokking Modern System Design For Software Engineers And Managers course, let me tell you a little bit about what system design really is.

Top 10 System Design Interview Courses in 2024 - Best of Lot

Hello guys, if you are preparing for System Design Interviews and looking for best resources then you have come to the right place. Earlier, I have shared best System design bookcourses, websites, and System design interview questions and in this article, I am going to share in-depth System design courses from Educative.io, a text based online learning platform for developers and engineers. These are the best online courses to prepare for System Design Interviews in 2024.  If you have been doing Software development then you know that System design is one of the most important skill for developers and managers. System Design and Software Design are not just a tool to pass interviews but it's the way we build modern Software and that's why a good knowledge of System design is required to become a better Software Engineer.