Hello guys, if you are preparing for coding interview and wondering whether the classic Cracking the Coding Interview book by Gayle Laakmann McDowell still worth it in 2023 then you have come to the right place. In the past, I have shared best books and courses for coding interviews where I mentioned this book and today, I am going to review this book in depth. I first come across this book many years ago when there was no online courses for coding interviews. At that time this book was holy grail for coding interview preparation but things have changed a lot from then and now days you have top notch online courses on coding interviews like this Master the Coding Interview: Big Tech (FAANG) Interviews by Andrei Negaoie or Grokking Coding interview courses on DesignGuru, and many others, so the big question comes whether Cracking the Coding Interview book still worth it or not?
Is DesignGuru 's Grokking Advanced System Design Interview Course Worth it? [Review]
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.
Labels:
course review
,
DesignGuru
,
System Design
Top 5 Udemy Courses to Learn System Design and Software Design in 2023 - Best of Lot
Hello guys, 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.
If you are also preparing for programming job interview and looking for best
System design and Software design resources then you are at the right place.
Labels:
courses
,
online resources
,
System Design
,
Udemy
ByteByteGo Review - Is ByteByteGo worth it in 2023?
Hello guys, if you are preparing for System Design Interview then you may have come across names like ByteByteGo, Alex Xu or System Design Interview – An insider's guide book by Alex Xu, and if you are wondering what they are or you know about them but thinking whether ByteByteGo is worth it or not? then you have come to the right place. In this article, I will provide my detailed review and opinion on ByteByteGo and his popular System Design Interview - An Insider's guide book. Though, if you are in hurry and just need a second opinion, I suggest you to go for it.
Labels:
ByteByteGo
,
course review
,
System Design
10 Exception handling Best Practices in Java Programming
Exception handling is an important part of writing robust Java
applications. It’s a non-functional requirement for any application, to
gracefully handle any erroneous condition like resource not available, invalid
input, null input, and so on. Java provides several exception handling features,
in built-in the language itself in form of try, catch, and finally keyword. Java programming language also
allows you to create new exceptions and throw them using throw and throws keyword. In
reality, Exception handling is more than knowing the syntax. Writing a robust code
is an art more than science, and here we will discuss few Java best practices
related to Exception handling.
Labels:
best practices
,
core java
,
error and exception
How to Fix Exception in thread "main" java.lang.ExceptionInInitializerError in Java Program? Example
JVM throws java.lang.ExceptionInInitializerError, when there is an Exception inside static initializer block. If you know about static variables in Java, then you may know that they are initialized at the time of class loading. If there is an Exception during that initialization of static variables, you will see ExceptionInInitializerError in Java. This could be any exception e.g. java.lang.ArrayIndexOutOfBound or java.lang.NullPointerException. Java developers are often confused with this error because they think that they have not defined any static initializer block, then how come they are getting ExceptionInInitializerError; well, by default Java combines all static variable initialization inside a static initializer block and initialize them in the order they are declared in the source file.
Labels:
core java
,
error and exception
,
programming
How to fix java.io.FileNotFoundException: (Access is denied)? Example
Earlier my impression was that java.io.FileNotFoundException: (Access is denied) comes when you try to read a text or binary file for which you don't have permission from the Java program but this can also come while you are using the jar command. jar command internally uses java.util.zip.ZipFile class to open any jar or war file which can throw java.io.FileNotFoundException: (Access is denied). I was trying to see the contents of the war file which was created using a recent build when I stumble upon this error, see the exact command below:
test@dev454:war-store/target jar -tvf maven-eclipse-web-demo
java.io.FileNotFoundException: maven-eclipse-web-demo (Access is denied)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.zip.ZipFile.<init>(ZipFile.java:88)
at sun.tools.jar.Main.list(Main.java:979)
at sun.tools.jar.Main.run(Main.java:224)
at sun.tools.jar.Main.main(Main.java:1149)
java.io.FileNotFoundException: maven-eclipse-web-demo (Access is denied)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.zip.ZipFile.<init>(ZipFile.java:88)
at sun.tools.jar.Main.list(Main.java:979)
at sun.tools.jar.Main.run(Main.java:224)
at sun.tools.jar.Main.main(Main.java:1149)
Labels:
core java
,
error and exception
How to resolve java.lang.UnsupportedClassVersionError:Unsupported major.minor version 49.0 to 65 with example
The java.lang.UnsupportedClassVersionError is a quite common error after NoClassDefFoundError or ClassNotFoundException they all seems to related to class files but they all are different and there cause and resolution are different. In this java tutorial, we will see what is UnsupportedClassVersionError in Java? Why UnsupportedClassVersionError comes in Java? What are a class file format and version numbers associated with it and finally how to resolve UnsupportedClassVersionError in Java?
Labels:
core java
,
error and exception
How to fix java.lang.NoSuchMethodError: main Exception in thread "main" in Java? Example
How to solve java.lang.NoSuchMethodError: main Exception in thread "main"
java.lang.NoSucMethodError comes when Java code tries to call a method that does not exist on a class, this could be either static or non-static method. a most common manifestation of java.lang.NoSuchMethodError is running a class that doesn't have the main method in Java. In this article, we will see what is "java.lang.NoSuchMethodError: main Exception in thread "main"", Why does java.lang.NoSuchMethodError comes and how to solve java.lang.NoSuchMethodError in Java.
Labels:
core java
,
error and exception
Polymorphism and Inheritance Example in Java
Hello guys, If you are new to Java or Object oriented programming and wondering what is Polymorphism and Inheritance and what are their use then you have come to the right place. Polymorphism and Inheritance are two fundamental concepts in object-oriented programming that allow for flexibility and reusability of code. In Java, these concepts are closely related and often go hand in hand. Java Programming provides a couple of way to implement Inheritance like extending a class or implementing an interface. Similarly they provide overloading and overriding for Polymorphism. In the past, I have shared 40 object oriented questions as well as 23 design patterns and In this article, we'll explore these concepts with a practical example.
Labels:
core java
,
object oriented programming
How to deal with NullPointerException in Java with Examples - java.lang.NullPointerException Guide
The java.lang.NullPointerException or NullPointerException
in Java is probably the first error or exception you will face in Java. It is a true nightmare for beginners in Java but pretty easy to solve once
you get familiar with Exception handling in Java. What makes NullPointerException a little bit tricky to solve is its name which has a pointer in
itself and Java does not support pointers like C++ or C, just like you
don't have multiple inheritances in Java. As a Java developer with 20 years of experience, I have solved
countless amount of NullPointerException and now I have developed a coding
and debugging sense through which I can spot what causing a particular
NullPointerException and how to fix it.
Labels:
core java
,
error and exception
Fixing java.net.BindException: Cannot assign requested address: JVM_Bind in Tomcat, Jetty
One of the most dreaded errors in Java-based client server-based applications is a networking-related error, e.g. java.net.BindException: Cannot assign requested address: JVM_Bind. I have faced this issue while working with web servers like Tomcat, Jetty, and Weblogic before, but yesterday it came again when one of my colleagues faced this issue in Windows. As soon as Java programmers see java.net.BindException, they come to the conclusion that it's an issue with two processes listening on the same port and often mistook it for Java.net.BindException: Address already in use: JVM_Bind:8080, which is slightly different than this.
Labels:
core java
,
error and exception
,
java networking tutorial
How to Fix java.net.ConnectException: Connection refused: connect in Java
java.net.ConnectException: Connection refused: connect is one of the most common networking exceptions in Java. This error comes when you are working with client-server architecture and trying to make a TCP connection from the client to the server. Though this is not as cryptic as java.lang.OutOfMemoryError: Java heap space or java.lang.UnsupportedClassVersionError, it’s still a frequent problem in distributed Java applications. java.net.ConnectException: Connection refused: connect also comes in the case of RMI (Remote Method Invocation) because RMI also uses TCP-IP protocol underneath. While writing client socket code in Java, You should always provide proper handling of this exception.
Labels:
core java
,
error and exception
,
programming
How to solve java.util.NoSuchElementException in Java? Example
How to fix java.util.NoSuchElementException in Java
java.util.NoSuchElementException is a RuntimeException that can be thrown by different classes in Java like Iterator, Enumerator, Scanner, or StringTokenizer. All of those classes have a method to fetch the next element or next tokens if the underlying data structure doesn't have any element Java throws "java.util.NoSuchElementException". The most common example of this is iterating over hashmap without checking if there is an element or not and that's why it's advised to use hashNext() before calling next() on Iterator. In this Java tutorial we will what causes NoSuchElementException in Java and how to avoid it completely.
Labels:
core java
,
error and exception
How to fix java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory or "Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory" exception comes when you don't apache commons-logging-1.1.1.jar in your Classpath. I have faced this exception many times while using open-source frameworks like Struts, Spring, and Displaytag which uses a commons-logging framework for logging. commons-logging is not an actual java logging framework but provides a wrapper so that you can use log4j, java logging, or any other Java logging framework.
Labels:
core java
,
error and exception
,
logging
Top 10 DevOps Certifications for Experienced IT Professionals in 2024
Hello guys, DevOps, a combination of software development and IT operations, has become a widely adopted approach in the modern software industry. It emphasizes collaboration, automation, and continuous integration and delivery to streamline software development and deployment processes. To excel in the field of DevOps, professionals can pursue certifications that validate their knowledge and skills in various DevOps practices and tools. In the past, I have shared best Cloud Computing Certifications and best Certification for Java developers and in this article, we will explore the top 10 DevOps certifications for 2024 that can help bridge the gap between development and operations.
Labels:
best of javarevisited
,
DevOps
,
IT Certifications
,
Job and Careers
[Solved] How to find and Print Armstrong number between 0 and 9999 in Java? Example
An Armstrong number of three digits is an integer such that the sum of the cubes of its digits is equal to the number itself. For example, 153 is an Armstrong number, since 1**3 + 5**3 + 3**3 = 153, 371 is an Armstrong number since 3**3 + 7**3 + 1**3 = 371. Along with usual beginner exercises like calculating factorial, reversing a string, or calculating prime numbers, this is a good exercise to build programming logic. It teaches you basic programming techniques of how to use the operator for something which is not obvious.
Java Program to Multiply Two Matrices - Matrix Multiplication Example
How to write a Java program to multiply two matrices in Java is a very good programming exercise to get familiar with the two-dimensional array in Java. this example teaches about how to multiply arrays, how to access elements from a multi-dimensional array, how to pass them to a function etc. Since the matrix is a natural representation of a multi-dimensional array in Java, they are often used to illustrate real word matrix exercises e.g. the calculating sum of two matrices or calculating the difference of two matrices, etc. It's also one of the popular Matrix based coding problems you can find on coding interviews.
Labels:
Coding Interview Question
,
Coding problems
,
core java
,
programming
[Solved] How to Implement Binary Search in Java without Recursion? Iterative Algorithm Example Tutorial
Hey Java programmers, if you want to implement a binary search in Java, and looking for both iterative and recursive binary search algorithms then you have come to the right place. Earlier, I have shared the free courses to learn Data Structure and algorithms in Java, and today, I am going to teach you an important algorithm. In computer science, a binary search or half-interval search is a divide and conquer algorithm which locates the position of an item in a sorted array. Binary search works by comparing an input value to the middle element of the array. The comparison determines whether the element equals the input, less than the input or greater.
Labels:
Coding Interview Question
,
Coding problems
,
core java
,
programming
Top 20 Amazon and Google Programming Interview Questions for Software Developers
Hello, In this article I am going to sharing some frequently asked programming job interviews from technical giants and startups. If you are going for a programming job interview with Microsoft, Google, or Amazon, you better be prepared for all kinds of questions. These companies are known to ask tough questions, tricky puzzles, and lots of data structure and algorithm questions. Since it's hard to prepare all these in a short time, it makes sense to at least have a good idea of frequently asked programming questions in Microsoft, Google, or Amazon.
Labels:
Coding Interview Question
,
programmers
How to find the largest and smallest number in given Array in Java? Example Tutorial
Hello guys, today I am going to discuss one of the frequently asked programming interview questions to find the largest and smallest number from an integer array. This question is commonly asked on telephonic interviews and the first round for screening candidates. This coding problem is in the same league of other frequently asked algorithmic questions like Fibonacci, Palindrome, Prime, and Power of two checks. They are easy but you will find them difficult during the interview because of the pressure, particularly if you have not solved them before. Sometimes even if you have solved the problem one time, you tend to do mistakes because you haven't understood them properly. So, always take your time to understand the question.
Labels:
Array
,
Coding Interview Question
,
core java
,
data structure and algorithm
What are AtomicInteger and AtomicLong in Java? How it works? compareAndSet() Example Tutorial
Concurrency is a fundamental aspect of modern software development, and Java provides a variety of tools and classes to help developers manage shared resources and coordinate the behavior of multiple threads. Among these tools one is atomic variables, which ensure that certain operations on shared data are performed atomically, I mean in one shot, without the need for explicit synchronization. In the past I talked about difference between atomic, synchronized, and volatile in Java and In this article, we'll explore atomic variables in Java, with a focus on AtomicInteger and AtomicLong, and explain how they work and how to use them effectively in Java.
Labels:
concurrency
,
core java
,
Java multithreading Tutorials
How to Implement Stack data structure in Java? Example Tutorial
The stack is one of the popular data structures which supports LIFO (Last In First OUT) operation. Due to the LIFO advantage, you can use a stack data structure to convert a recursive algorithm to an iterative one. The stack data structure is very easy to implement using an array or linked list, but you don't have to implement it on your own because Java already provides a Stack implementation in java.util.Stack class. This class is a subclass of the Vector class and you should use it whenever you need Stack for your production code, there is no point in inventing the wheel again when the focus is on developing your application.
How to check if a given Number is Binary in Java? [Solved] Example
Today we will take a look at another simple programming exercise, write a program to check if a number is binary in Java. A number is said to be binary if it only contains either 0 or 1, for example, 1010 is a binary number but 1234 is not. You can not any library method to solve this problem, you need to write a function to check if the given number is binary, you can use basic constructs of Java programming language e.g. operators, keywords, control statements, etc. If you are a regular reader of Javarevisited, then you know that I love to share simple programming problems here.
Labels:
Coding Interview Question
,
core java
,
programming
How to find Middle Element of Linked List in Java in Single Pass
ow do you find the middle element of LinkedList in one pass is a programming question often asked Java and non-Java programmers in telephonic Interview. This question is similar to checking palindrome or calculating the factorial, where the Interviewer sometimes also asks to write code. In order to answer this question candidate must be familiar with the LinkedList data structure i.e. In the case of the singly LinkedList, each node of Linked List contains data and pointer, which is the address of the next Linked List and the last element of Singly Linked List points towards the null. Since in order to find the middle element of the Linked List you need to find the length of the linked list, which is counting elements till the end i.e. until you find the last element of the Linked List.
How to find the 3rd (Kth) Node from end of linked list in Java? Fast and Slow Pointer Example [Solved]
Hello guys, the problem to find the 3rd element from the end in a singly linked list or Kth node from the tail is one of the tricky but frequently asked linked list problems in Programming job interviews. I know you can easily solve this problem by moving from tail to head or in the reverse direction but the main challenge here is to solve the problem in just one pass. That means, you can not traverse the linked list again and you cannot traverse backward because it's a singly linked list. So what do you think? Isn't this problem challenging? Well, I did struggle when I saw this problem very first time but once you understand the logic and some tricks to solve a linked list based problem like Recursion then it would be easy for you, and that's what you will learn in this article.
How to Remove a character from String in Java ? Recursion Example [Solved]
Hello guys, if you are wondering how to remove a given character from a String in Java then you have come to the right place. In the past, we have solved many common String coding problems like String anagram check, String Palindrome check, and String permutation and in this article, you will learn how to remove a given character from a String in Java. Basically, you need to write a program to remove a given character from String in Java. Your program must remove all occurrences of a given character. For example, if given String is "aaaaa" and String to remove is "a" then the output should be an empty String. Similarly, if input String is "abc" and character to remove is "b" then your program must return "ac" as output.
Labels:
Coding Interview Question
,
Coding problems
,
String
How to Print Pyramid Pattern of Alphabet Characters in Java? Example Tutorial [Solved]
In earlier programming tutorials, I have taught you how to print a pyramid pattern of stars and numbers in Java, and in this tutorial, you will learn the printing pyramid patterns of alphabets. If you understand the logic of previous programs then this one won't be difficult for you because we will use the same logic of printing rows and columns using the nested loop in Java. Actually, a pyramid pattern is nothing but a matrix where you need to print rows and columns. Though, you need to learn where to print those values and when to move to the next row.
Labels:
Coding Interview Question
,
core java
What is LongAdder, AtomicLong, and LongAccumulator in Java? How it works? Example Tutorial
Hello guys, Concurrency in Java can be a challenging aspect of software development. As applications become more multithreaded and concurrent, Java developers often face issues related to thread safety, contention, and performance bottlenecks. To address these concerns, Java provides various tools and classes, one of which is LongAdder. In this article, we will explore what LongAdder is, when to use it, how to use it, and some best practices. You will be surprised to see how useful this little unknown class can be when multiple threads need to atomically update a shared counter like running count.
Labels:
concurrency
,
Java multithreading Tutorials
How to calculate large factorial using BigInteger in Java? Example Tutorial
Factorial of numbers greater than or equal to 13 cannot be found using primitive int data type as shown in our earlier factorial solution due to overflow. These factorials are too large to fit in an int variable, whose maximum value is just 2147483647 (2^31 -1). Even if we use the long data type, factorials greater than or equal to 21 will generate an overflow. To find the factorial of anything above 21, you need to use the BigInteger class from java.math package. As the name suggests, BigInteger class is designed to hold a really large integer value, something which is even bigger than the maximum value of long primitive like 2^63 -1 or 9223372036854775807L.
Labels:
Coding Interview Question
Subscribe to:
Posts
(
Atom
)