HTML

How to remove duplicates from Stream in Java 8 - Stream.distinct() Example

You can use the Stream.distinct() method to remove duplicates from a Stream in Java 8 and beyond. The distinct() method behaves like distinct clause of SQL which removes duplicate rows from the result set. The distinct() is also an intermediate method which means it will return a new Stream without duplicates, which can be used for further processing. Like other methods of Stream class e.g. map() or filter(), distinct() is also lazy and it will not remove duplicate elements until you call a terminal method on Stream.  The actual processing of Stream pipeline starts only after calling terminal methods like collect() or forEach().

Top 5 Books to Learn Grails Framework for Java and Groovy Developers.

Earlier, I have shared some of the must-read Groovy books and today, I'll share some of the best books to learn Grails for Java developers. Grails is a web application development framework completely written in Groovy. The Grails and Gradle framework are built using Groovy language. Grails is the framework to develop a web application using Groovy. The concepts within Grails, like interceptors, tag libs, and Groovy Server Pages (GSP) are very similar to what we have in Java. You'll be amazed at how quickly you can have a first-class web application up and running from ground zero. Grails includes everything you need in a single zip file on a web server (Jetty), a database (HSQLDB), Spring, Hibernate, even a Groovy version of Ant called GANT.

3 Books to learn Java from Scratch in 2018 - Best of Lot Must Read

I receive half a dozen emails every day asking about which is the best to learn Java from scratch? Which book should I read in 2018 to learn Java? or Which is the best Java for beginners? When I receive such email, before giving my recommendation I ask two questions, first do you have any programming experience? e.g. Are you coming from C, C++ or Python background? Or you are a fresher with no experience in programming, just a couple of classes on data structure and algorithm and operating system on college. If the guy some prior experience I recommend him the book like Core Java for the Impatient which teaches basics of Java programming language and API and also how to use Java in right way.

3 Ways to Convert String to Short in Java - Example Tutorial

In last a couple of examples, I have taught you how to convert String to Integer, Long, Double, Float, Boolean, and Byte in Java and today I will show you how to convert String to Short in Java, but before that let's revise what is short data type in Java. The short is an integral data type similar to the int but it only takes 2 bytes to store data as compared to 4 bytes required by an int variable. Since it takes only 2 bytes or 16 bits to store data, the range of short is also shorter than int. It ranges from -32,768 to 32767 (inclusive) or -2^15 to 2^15 -1. You might be wondering why upper bound is 255 and lower bound is -256 but that's because we have included zero in between.

7 Free Selenium Web Driver Courses with Java and C# to Learn Automation Testing

Testing is an integral part of software development and we have long been relied on manual testing by testers and QA professional to ship quality software and find bugs, but that's not sustainable anymore. There is an increased focus on automation testing nowadays and Selenium is leading the way with its web driver. If you don't know what is a selenium, here is a quick intro. Selenium is a free automation testing tool for web applications. It can work with different web browsers like Chrome, Firefox, Internet Explorer, Opera and simulate human-like behavior. By using Selenium you can programmatically interact with all the different elements in a webpage. You can click on them, input text, extract text and so much more.

Difference between Abstract class and Interface in Java 8

Ever since JDK 8 has allowed concrete (non-abstract) methods on the interface like default and static methods, many of my readers have asked me how should they answer the classical abstract class vs interface questions. Earlier, an interface cannot have any concrete methods and that was the main difference between abstract class and interface but now that is not the case. In this post, I'll revisit this hugely popular Java interview question in light of Java 8 changes. As I said, before JDK 8, the level of abstraction was the clear-cut difference between abstract class and interface i.e. interface was the purest form of abstraction which only defines what interface is supposed to do without specifying how they should be implemented, in other words, it only declares API methods and leaves implementation to its subclasses.

Top 10 Java 8 Stream and Functional Programming Interview Questions Answers

The JDK 8 release has changed the way we write Java. With new functional programming idioms and a powerful Stream API, most of the new Java code is written in functional style. This also means that Stream and Functional programming related questions are increasing on Java interviews. If you are not familiar with Java 8 changes then it's difficult to crack a Java interview nowadays. Though it's not stated anywhere most of the companies now expect Java developers to know at least Java 8, which is also good right? Java 11 is already out and we are looking forward to Java 12 in a couple of months, it makes sense to know at least Java 8 changes.  Since more and more of my readers are asking about Java 8 interview questions to me, I have started a series where I take one or two topics and share 15 to 20 interview questions.

Java - String charAt Example - How to get first and last characters

The charAt(int index) method of java.lang.String class can be used to retrieve a character from given index. The method returns a character, you can see its return type is char. The index starts from zero and ranges to length() - 1 where length() return the length of String. It's similar to an array where the first element is stored at zeroth index and the last element is stored at length -1 index because String is nothing but backed by a character array. If the value of the index is invalid i.e. it's lower than zero or negative or higher than length - 1 then this method throws an IndexOutOfBoundsException. In this article, I'll show you a couple of example of how to use the charAt() method to retrieve a character from String in Java.

Why you should not use SELECT * in SQL Query

I have read many articles on the internet where people suggest that using SELECT * in SQL query is a bad practice and you should always avoid that. Instead, you should always use an explicit list of columns. That's a good suggestion and one of the SQL best practice I teach to junior developers, but many of them don't explain the reason behind it.  Unless you explain some reasons why one should not use SELECT * in queries, it's difficult to convince many SQL developers,  many of whom have started learning SQL by doing SELECT * from EMP in Oracle database. In this article, I will try to bridge that gap by giving some practical reasons of why using SELECT * in Query is not a good idea.

Top 5 Java 9 Courses to Learn Online - Best of Lot

It's been a couple of months since JDK 9 went GA. The new release of Java is packed with some powerful features e.g. modules, API enhancements e.g. factory methods for an immutable list, set, and map, some changes on stream API and optional class, new features on process API etc. Since it's always good to keep yourself up-to-date, its time to spend some time to learn those new features and make use of them to write better code in Java.

Java 8 - Stream.collect() Example

The collect() method of Stream class can be used to accumulate elements of any Stream into a Collection. In Java 8, you will often write code which converts a Collection e.g. List or Set to Stream and then applies some logic using functional programming methods like the filter, map, flatMap and then converts the result back to the Collection e.g. List, Set or Map. In this last part, the collect() method of Stream helps. It accepts a Collector to accumulate elements of Stream into specified Collection. The Collector class provides different methods e.g. toList(), toSet(), toMap(), and toConcurrentMap() to collect the result of Stream into List, Set, Map, and ConcurrentMap in Java.

10 ways to learn a New Technology, Programming language, Frameworks, or Libraries

One of the main challenges of being a programmer or software engineer is the constant learning. Yes, that's true. As a programmer or developer, we always need to learn new things, sometimes every year. Thanks to C, Java, Linux, and SQL, we still have some ground but the way these technologies are used changes every year. For example, we have a new JDK 9 release in 2017, even though many Java developers are still learning Java 8. We also have a Spring Framework 5.0 release in 2017, combined with Spring Security 5.0 and Spring Boot 2.0 release, which many of us need to learn in 2018.

Java 8 Optional Example - isPresent(), OrElse() and get()

The Optional class in Java is one of many goodies we have got from the Java 8 release. If you use correctly, Optional can result in clean code and can also help you to avoid NullPointerException which has bothered Java developer from its inception. Even though many of us have used null to indicate the absence of something, the big problem is that if you call a method or access a field on the null object (except static fields), you will get a NullPointerException and your whole program may crash. The bigger problem is to find the faulty code or root cause because NullPointerException only indicates the line when you try to access field or variable from a null object but how does that null is get created on the code is unknown.

2 Ways to Add Binary Numbers in Java - Coding

In the last article, I have shown you how to subtract binary numbers in Java and today, you will learn the opposite i.e. how to add binary numbers in Java. You can do binary addition in Java either by writing your own logic or by taking advantage of the Java API, which allows you to convert a binary String into a binary number. Though, if you want you can also use the logic I have shared in my earlier post about how to check binary numbers to verify input before converting it to a binary number. In this article, we'll take a look at both methods of adding two binary numbers in Java.

Top 10 Web, Mobile, and Big Data Technologies Programmers should learn in 2018

Hello Guys, we are already in the second week of 2018 now and many of you have made your goals about what to learn in 2018, but if you haven't then you have come to the right place. In this article, I am sharing some of the best framework and libraries for web development, mobile app development, and big data, an application developer can learn in 2018. The New Year will be all about the mobile and next-generation web with a greater focus on big data technologies like Hadoop and Spark, but you can still learn the popular Java and Web development frameworks like React, Node.js, Spring Boot to take your career to next level. These frameworks are tried and tested and will be here for at least next 5 years to come.

5 Best Courses to Learn Spring Boot in 2018

Hello guys, if you remember, one of my goals was to learn Spring Boot in 2018 and I have started working towards it. As I have talked about my 3 point action plan to learn a new technology, the first step is to attend some online courses and start building from that. If you are not sure what is Spring Boot and why should you learn Spring Boot then let me tell you that it should be the first Java framework you should learn in 2018. The Spring Boot makes it really easy to work with Spring framework by removing all the starting hurdles with respect to setup and configuration. In one word, it makes it possible to write Spring-based Java application and run them like core Java application e.g. from the main method.

JDBC - How to get Row and Column Count From ResultSet in Java

One of the common problem in JDBC is that there is no way to get the total number of records returned by an SQL query. When you execute a Statement, PreparedStatement, or CallableStatement using execute()or executeQuery() they return ResultSet and it doesn't have any method to return the total number of records it is holding. The only way to find the total number of records is keeping the count while you are iterating over ResultSet while fetching the result. This way, you can print the total number of rows returned the SQL query but only after you have processed all records and not before, which may not be the right way and incur significant performance cost if the query returns a large number of rows.

How to Convert a List or Set of String to comma separated String (CSV) in Java 8

Before Java 8, it was not straightforward to convert a list of String to a comma separated String. You have to loop through the collection or list and join them manually using String concatenation, which can take up more than 4 lines of code. Of course, you could encapsulate that into your own utility method and you should but JDK didn't provide anything useful for such a common operation. Btw, things have changed. From Java 8 onwards you can do this easily. JDK 8 has provided a utility class called StringJoiner as well as added a join() method into String class to convert a List, Set, Collection or even array of String objects to a comma separated String in Java.

Top 20 System Design Interview Questions for Java Programmers

System design questions are an important part of programming job interviews and if you want to do well, you must prepare this topic. In the past, when I shared my list of programming interview questions, I have shared a couple of System design questions but my readers kept asking me for more questions, as it is a hard topic to master and more and more practice is needed. I had my own list of questions which I have collected from various interviews with friends and colleagues but I needed more questions for this article and my own preparation then I stumbled upon Grokking System Design Interview course. It's an excellent resource because it not only gives you a lot of System design question but also provide all the knowledge and tools you need to solve those questions.

JDBC - Difference between PreparedStatement and Statement in Java

If you have worked with database interfacing with Java using JDBC API then you may know that the JDBC API provides three types of Statement for wrapping an SQL query and sending for execution to the database, they are aptly named as Statement, PreparedStatement, and CallableStatement. First one, Statement is used to execute normal SQL queries e.g. select count(*) from Courses. You can also use it to execute DDL, DML and DCL SQL statements. The second one, PreparedStatement is specialized to execute parameterized queries e.g. select * from Courses where courseId=?, you can execute this SQL multiple times by just changing the course parameters. They are compiled and cached at database end, hence quite fast for repeated execution.

Top 5 Free Angular Courses for Web Developers to Learn Online

Angular is one of the most popular JavaScript frameworks for creating web apps. It helps you in creating complex web applications in less time. It's maintained by Google so you can also rest assured that this powerhouse of a framework is built with speed and purpose and here for a long run.  Angular is also the most popular framework in the world for building single page applications.  The framework was first launched as Angular JS which allowed building a web application using Model View Controller concept and it was hugely popular but it was later re-written completely, which is now known as simply Angular or Angular 2. Even though many web developers use Angular and Angular JS interchangeably they are very different and don't share anything expect Angular in their Name.

How to change date format of String in Java 8

One of the common programming task in Java is to change the date format of a given Date or String. For example, you have something like "2017-01-18 20:10:00" and you want to convert it that date into "2017-01-18", or you want to convert from dd-MM-YY to MM-dd-YY or to any other format of your choice and need, but a valid date format as per Java specification. How will you do that? Well, it's not that difficult. It's just a two-step process. In the first step, you need to parse String to create an equivalent date using current format and then once you got the date, you need to again convert it back to String using the new format. The same process is repeated in both Java 8 and before, only corresponding API and classes changes.

3 Books and Courses to Learn RESTful Web Services using Spring and Java

Even though the Spring in Action 4th Edition is a good book to learn Spring framework, its not enough to learn intricacies of developing RESTful Web Service using Spring Frameowrk. It does have a chapter on developing RESTful Web Services and nicely explains concepts like @RestController, @ResponseBody, @ResponseStatus, HTTP message converters, content negotation but that barely touch the surface of developing a production quality RESTFul Web Service. There are many other things e.g. filtering, pagination, error handling, and security of RESTful Web services using Spring and Spring security which is not covered.

Mergesort in Java - Algorithm Example and Tutorial

The Merge sort algorithm is a divide and conquers algorithm. In the divide and conquer paradigm, a problem is broken into small problems where each small problem still retains all the properties of the larger problem -- except its size. To solve the original problem, each piece is solved individually; then the pieces are merged back together. For example, imagine you have to sort an array of 200 elements using the selection sort algorithm. Since selection sort takes O(n^2) time, it would take about 40,000-time units to sort the array. Now imagine splitting the array into ten equal pieces and sorting each piece individually still using selection sort. Now it would take 400-time units to sort each piece; for a grand total of 10*400 = 4000.

How to Implement a Power Function in Java - Coding Interview Problems

Even though the Java library has a power function, Math.pow() to calculate the power of a given number in Java, it's a common programming exercise for Java programmer to implement a power function. If you have used the Math class then you know that the java.lang.Math.pow(double a, double b) returns the value of the first number raised to the power of the second number and you need to do the same. In other words, you need to write a Java function to calculate the power of integer numbers for simplicity. The original method accepts a double value but you are allowed to use just integer but beware that power function may overflow.

Top 5 Free Big Data Courses to learn Hadoop, Spark Online - Best of Lot

If you want to learn Big Data technologies in 2018 e.g. Hadoop, Apache Spark, and Apache Kafka and you are looking for some free resources e.g. books, courses, and tutorials then you have come to the right place. In this article, I am going to share some of the best free online courses to learn Hadoop and Spark from Udemy and Pluarlsight at your own pace. I personally like to start with FREE resources before I have enough knowledge to choose the right book or enroll in a little expensive course. It's also my passion to surf web to find great free resources and share with you guys.

Top 5 Free C++ Courses to Learn Programming Online - Best of Lot

C++ is one of the most popular and powerful object-oriented programming languages and if you want to do low-level stuff then it's the best language to start with. Most of the complex software e.g. Operating Systems, Database Management Systems, and Powerful trading systems are written in C++. While many of us have learned to program by using C and C++, let me honest with you learning C++ is challenging. There are many areas which are tough to grasp e.g. points but you will learn them slowly and that's where these free C++ course will help you.

Java - Convert String to Boolean Example

There are two ways to convert a String to boolean in Java, first, by using Boolean.parseBoolean() method and second, by using Boolean.valueOf() method.The parseBoolean() method returns an equivalent boolean value of given String, for example, if you pass "true" it will return the primitive boolean value true. Similarly, if you pass "false" it will return false. The good thing about this method is that it is case insensitive, which means if you pass "true", "TRUE", or "True" you will still get a true boolean value.

Top 5 Free JDBC Courses for Java Programmers - Best of Lot

If you are a Java programmer and looking for some free JDBC courses to start learning database access in Java then you have come to the right place. In this article, I am going to share some of the free online JDBC (Java Database Connectivity) courses from popular sites like Udemy and Pluarlsight to give you a head-start in your long journey of writing real-world Java application which interacts with the database. Since Data is the utmost important part of any Java application, it's imperative to have a good knowledge of how to interact with the database from Java application and JDBC is the first step in that direction.

How to use CallabeStatement in JDBC to call Stored Procedure in Java? Example

The CallableStatement of JDBC API is used to call a stored procedure from Java Program. Calling a stored procedure follows the same pattern as creating PreparedStatment and than executing it. You first need to create a database connection by supplying all the relevant details e.g. database URL, which comprise JDBC protocol and hostname, username, and password. Make sure your JDBC URL is acceptable by JDBC driver you are using to connect to the database. Every database vendor uses different JDBC URL and they have different driver JAR which must be in your classpath before you can run the stored procedure from Java Program.

Top 5 Free JavaScript Courses to learn Online - Best of Lot

Hello guys, If you want to learn JavaScript by yourself and looking for some free resources like books, sites, and tutorials then you have come to the right place. In this article, I am going to share some of the best free JavaScript online courses you can join to learn JavaScript by yourself, on your own schedule and at your own place. A lot of people are learning JavaScript and the number is only increasing by each passing day, and why not? It's the #1 web development language. It got tons of useful frameworks and libraries like Angular, React , Node.js, and jQuery which makes web development really easy.

5 Free Blockchain Technology Courses for Programmers

Hello guys, how are you doing? hope you all are having a great time and working towards your goal in 2018. I have been sharing a lot of courses and tutorials in this blog about what to learn in 2018, starting from tools to frameworks, from libraries to programming languages, but one of the most important technology, you can learn in in 2018 is the Blockchain technology. It's one of most talked about technology at the moment and considered to be the next big thing after the invention of the internet as they provide a way to attain digital trust on the Internet.

Difference between OCAJP7 and OCAJP8 Certification - 1Z0-803 vs 1Z0-809

One of the frequently asked questions asked by most of the OCAJP certification candidates is, what are the differences between OCAJP 8 and OCAJP 7? And,  Which one Java developers should go for in 2018? OCAJP7 or OCAJP8? The obvious answer to this question is the latest Java version of the exam i.e. OCAJP 8. Since it's already more than 5 months since Java 9 is out but there is no OCAJP 9 certification, the OCAJP 8 should be the exam, Java developer should pursue in 2018. The question is more for those who are looking to become certified Java developer in quick time and doesn't know Java 8 yet e.g. experienced Java developers who have extensively worked in Java SE 6 and prior version but don't have any Java certification yet.

Difference between @SpringBootApplication vs @EnableAutoConfiguration annotations in Spring Boot

Even though both @SpringBootApplication and @EnableAutoConfiguration can be used to enable the auto-configuration feature of Spring Boot there is a subtle difference between them. The @SpringBootApplication does much more than what @EnableAutoConfiguration do. It's actually a combination of three annotations: @Configuration which is used in Java-based configuration on Spring framework, @ComponentScan to enable component scanning of components you write e.g. @Controller classes, and @EnableAutoConfgiuration itself, which is used to enable auto-configuration in Spring Boot application. Spring Boot designers realize that these three annotations are frequently used together so they bundled them into @SpringBootApplicaiton. Now, instead of three annotations you just need to specify one annotation on your Main class.

Top 5 Free R Programming Courses for Data Scientists and ML Programmers

More and more people are learning R programming language to become a Data Scientist, one of the hottest and high paying technical jobs on the planet. Though, I am from Python camp when it comes on choosing between Python and R for Data Science, Machine Learning, and Artificial Intelligence, mainly because of the awesome libraries Python offers, I had tried R for a short time. If you are also on the same boat and want to try or learn R programming for Data Science and machine learning purpose and looking for some awesome free courses to start your journey then you can take some ideas from this article.

Top 10 Free Java Courses for Beginners and Experienced Programmers

The Internet is full of useful resources and no matter what you want to learn there is something useful available for free. You just need to commit your time and effort. But at the same time, it's difficult to choose in the huge sea of free tutorials and courses on the internet. If you are not careful, you will spend most of your time browsing and changing courses without learning anything. That's where a curated list helps. Curation is my hobby and passion. I love to read books and courses which allows me to curate useful resources and share with you guys.

How to Subtract two Binary Numbers in Java - Solution

Binary subtraction is very similar to binary addition which we have learned in the last article. In this tutorial, you will learn how to subtract two binary numbers. Similar to the last article, we'll see two ways, first by converting binary String to a binary number and then doing subtraction. You can use the Java API Integer.toString(number, radix) for that. On second solution you will learn to develop the logic to perform binary subtraction in Java program by using rules you might have learned in your computer classes. Here is a little summary of how binary subtraction works.

Top 5 Free TypeScript Courses to Learn Online - Best of Lot

If you are interested in learning TypeScript or Angular, one of the popular JavaScript framework for developing front-end, which uses TypeScript and looking for some resources e.g. books, tutorials and courses then you have come to the right place. In this article, I am going to share some of the best, free TypeScript online courses you can use to learn this powerful programming language. For those who don't know TypeScript, it's a new dynamically typed programming language from Microsoft which augments JavaScript's programming syntax by adding some new features which help in object-oriented application development, particularly introduction of Types.

5 Free Apache Spark Course for Java, Scala, and Python Programmers to learn Online

Hello guys, if you are thinking to learn Apache Spark to start your Big Data journey and looking for some awesome free resources e.g. books, tutorials, and courses then you have come to the right place. In this article, I am going to share some of the best, free online Apache Spark courses for Java, Scala and Python developers. If you don't know what is Apache Spark? and Why it's so important in Big Data world then let me give you a brief overview first. Apache Spark is another cluster computing framework like Hadoop which is used to analyze a huge data set, but it's much faster as compared to Hadoop which makes it ideal for today's high computing needs e.g. processing huge amount of data.

Java String 101 - Everything You Want to Know about String in Java

someone might question that why do we need another article about string in Java, haven't we had enough about the string is already written? Yes, I agree there are a lot of articles related to Java string covering topics like how to use Java String, an example of Java string and almost everything you can do with string in Java. But, I wanted to document my experience of using String in Java and some nasty and little-known things I discovered about the Java String class, which may not be obvious to many Java developers. A string is available in almost every programming language and its probably the most used data structure or a data type, hence a good knowledge of String is very important for every Java developers.

5 Free Docker Courses for Java and DevOps Engineers

If you are an application developer working in Java or C# or any other language and wants to become a DevOps engineer or someone who wants to learn Docker then you have come to the right place. In this article, I am going to share some of the free Docker courses you can use take online to learn Docker by yourself. These courses are great for both beginners and intermediate developers who have basic ideas about Docker. If you don't know what is a Docker and how it works then let me give you a brief introduction. Before starting just look at the Docker's logo which is a whale carrying containers, does that strike something? Well, if you add this image with the name Docker you might think about shipping companies, which carry containers from one part of the world to another.

How to convert List into Map in Java 8 - Example Tutorial

One of the common tasks in Java programming is to convert a list to map and I have written about this in past and today we'll see how Java 8 makes this task easier. Btw, be it Java 7 or Java 8, you need to keep something in mind while converting a list to map because they are two different data structure. For example, the list allows duplicate elements but keys in a map must be unique, the value can be duplicated but a duplicate key may cause a problem in Java 8. Similarly, another concern is order. A list is an ordered collection but the map doesn't guarantee any order unless you decide to use LinkedHashMap, which keeps insertion order or TreeMap which keeps mapping in the sorted order of keys. This is one of the important details which many Java beginners forget and then spend hours to chase subtle bugs.

Top 5 Free jQuery Courses for Web Developers - Best of Lot

Hello guys, if you are thinking to learn jQuery and looking for some awesome free resources e.g. books, tutorials, and online courses then you have come to the right place. In this article, I am going to share some of the best free jQuery courses from Udemy and Pluarlsight which you can take to learn this awesome JavaScript library. In the past, I have also shared some free books and tutorials on jQuery, which complements these courses. You can also take a look at then while learning different parts of jQuery.
Before I share these free courses, let me brief you about what jQuery is and why you should learn it? Well, jQuery is a JavaScript library but unlike any other library it is very powerful and makes the client side scripting really easy.

5 Free PHP and MySQL Courses for Web Developers

If you want to build web applications in quick time then PHP and MySQL is a good choice. PHP and MySQL are incredibly powerful open source technologies that allow programmers and web developers to create functional websites and apps that go way beyond basic HTML. PHP is specially created to generate interactive and dynamic websites and also known as server-side scripting language while MySQL is one of the leading relational databases along with Oracle and Microsoft SQL server. While it may seem intimidating to create a website using PHP and MySQL, especially for someone who has no experience in coding, it's not that difficult. With the right guidance and resources e.g. books and courses you can put together a PHP MySQL website in a week or so.

Difference between OCAJP and OCPJP Certification Exams for Java Programmers

Earlier when Sun Microsystems was in charge of Java, the popular Java certifications were called "Sun Certified Java Programmer" or "SCJP" and that time there was just one exam, you need to pass to become a certified Java Developer, but when Oracle took over Sun Microsystems on 2010, the SCJP goes away and OCAJP and OCPJP born. Since Oracle already has his certifications for database administrations e.g. OCA which stands for Oracle certified associates and OCP, which stands for Oracle Certified Professional, it introduces new Java certifications to match their existing hierarchy and they are known as OCAJP and OCPJP in the Java world.

How to implement Radix Sort in Java - Algorithm Example

The radix sort, like counting sort and bucket sort, is an integer based algorithm (i.e. the values of the input array are assumed to be integers). Hence radix sort is among the fastest sorting algorithms around, in theory. It is also one of the few O(n) sorting algorithm along with a bucket and counting sort. The particular distinction for radix sort is that it creates a bucket for each cipher (i.e. digit); as such, similar to bucket sort, each bucket in radix sort must be a growable list that may admit different keys.

Java 8 compute() and computeIfPresent() Example

The JDK 8 has added several useful methods in existing interfaces e.g. java.util.Map, java.util.Collection, and java.util.concurrent.ConcurrentMap. Thanks to default methods, the much-needed evolution of existing interfaces become possible. Out of many useful methods, one method which stands out to me is the compute() method, which allows you to update a value in ConcurrentHashMap atomically. As per Java documentation, The compute() function tries to compute a mapping for the specified key and its current mapped value (or null if there is no current mapping). The entire function is performed atomically.

3 ways to convert String to byte array in Java - Example Tutorial

Today, I am going to discuss one of the common tasks for programmers, converting a String to a byte array. You need to do that for multiple reasons e.g. for saving content to a file, sending over a network or maybe some other reason. Suppose you have a String "abcd" and you want to convert it into a byte array, how will you do that in a Java program? Remember, String is made of the char array, so it involves character to byte conversion, which is subject to character encoding intricacies. Thankfully, Java provides a convenient getBytes() method to convert String to byte array in Java, but unfortunately, many developers don't use it correctly. Almost 70% of the code I have reviewed uses getBytes() without character encoding, leaving it on the chance that platform's default character encoding will be same as of the source String.

5 Difference between an array and linked list in Java

The difference between an array and linked list is one of the frequently asked data structure and algorithm interview question and you might have seen it before on your telephonic or face-to-face interview. It is also a very popular question during practical exams in Computer Science degree courses e.g. B.E. and B.Tech. It's very simple and easy to answer but you just can't afford to miss this question in an interview. Both array and linked list are two of the most popular and fundamental data structure in Computer Science and Programming, and Java supports both of them. One of the traits of a good programmer is extensive knowledge of data structure and algorithm and that's why it's very important for you to learn the difference between array and linked list data structure and understand when to use an array over a linked list and vice-versa.

How to use ConcurrentHashSet from ConcurrentHashMap in Java 8 - Example Tutorial

There is no ConcurrentHashSet in JDK 8 but you can still create one for yourself by using the ConcurrentHashMap class of java.util.concurrent package. There is a new method added into ConcurrentHashMap in JDK 8, newKeySet(), which allows you to create a concurrent hash set backed by a concurrent hash map. If you remember whenever you get keys from the map they are returned in a Set e.g. for the old keySet() method because map only has unique keys. Since map doesn't allow duplicate keys, it can be used as a set, as long as you only care for keys or just one element. That's why Java designers are added newKeySet() method to convert a map to set. This is also a static method, which means you don't need a ConcurrentHashMap object to create a concurrent hash set.

How to find large files with size in Linux? find and du command example

One of the common problem while working in Linux is to find large files to free some space. Suppose, your file system is full and you are receiving an alert to remove spaces or if your host is run out of space and your server is not starting up, the first thing you do is find top 10 largest files and see if you can delete them. Usually, old files, large Java heap dumps are good candidates for removal and freeing up some space. If you are running Java application e.g. core Java-based programs or web application running on Tomcat then you can remove those heap dump files and free some space, but the big question is how do you find those? How do you know the size of the biggest file in your file system, especially if you don't know which directory it is? We'll try to find answers for some of those questions in this article.

Eclipse - Unsupported major.minor version 53.0, 52.00, 51.0 Error in Java

The UnsupportedClassVersionError is a big nightmare for Java developers, probably the next biggest after NoClassDefFoundError and ClassNotFoundException but its slightly easier to solve. The root cause of this error is that your code is compiled using higher JDK version and you are trying to run it on the lower version. For example, the Unsupported major.minor version 53.0 means your code is compiled in JDK 9 (the class version 52 corresponds to JDK 9) and you are trying to run it on any JRE lower than Java 9, probably JDK 8, 7, or 6.

Java 8 Default Methods FAQ - Frequently asked Questions and Answers

In last a couple of articles, I have to talk about default methods introduced in JDK 8. First, we have learned what is default method and why it is introduced in Java. Then we have seen the example of how you can use default methods to evolve your interface. After that we have analyzed does Java really support multiple inheritances now in JDK 8 (see here) and how will Java handle the diamond problem that will arise due to default methods. For example, what will happen if a class extend a class and implement an interface and both contain a concrete method with same method signature? Will a diamond problem arise? How will Java handle that and how you can solve it, and the difference between abstract class and interface in Java 8?  Once you went through those articles, you would have a good knowledge of default methods in Java 8.

Java 8 Stream findFirst() and filter() Example

Suppose, you have a list of prime numbers and you need to find the first prime number which is greater than a given number? How do you find it? Don't tell that you will loop through the list and check each element and return the first element which is greater than the given number. Well, that's right but that's not what you should do in Java 8. That's good for Java 7 or earlier version but Java 8 offers you many better alternatives and one of them is Stream. You can use the Stream class along with filter() and findFirst() methods to find out an element based upon a Predicate, a functional interface for defining a condition which returns a boolean.

Difference between wait() and join method in Java thread

Though both wait() and join() methods are used to pause the current thread and have a lot of similarities they have different purposes. One of the most obvious differences between the wait() and join() method is that former is declared in java.lang.Object class while join() is declared in java.lang.Thread class. This means that wait() is related to the monitor lock which is held by each instance of an object and join method is related to Thread itself. The wait() method is used in conjunction with notify() and notifyAll() method for inter-thread communication, but join() is used in Java multi-threading to wait until one thread finishes its execution.

What is difference between an int and Integer in Java?

The first and foremost difference between an int and Integer or a char and Character is that former is a primitive data type while later is a class, also known as wrapper class because they wrap primitive data type inside it. When you first start learning Java, you start with primitive data types e.g. int, long, char, byte, boolean, float, and double but slowly you learn about Object and sometime later you know about Integer, Long, Character, Byte, Boolean, Float, and Double. At this point in time, you may wonder, what is the real difference between an int and Integer? isn't both same? We can pass Integer where int is expected and vice-versa then why on the earth we have both int and Integer?

10 High Paying Technologies Programmers Can Learn in 2018

Since last a couple of the week, I have been doing some research about what to learn in 2018 when I stumbled about StackOverflow's Developer Survey for 2017. It's one of the best surveys for software developers, which provides useful insights about programming and IT world. One of the things I really like about this survey was its several lists e.g. the list of top 10 programming languages and the most loved frameworks by programmers, but the one I found most useful was the list of top paying technologies. This is a great list and allow you to choose what you can learn in 2018 to go to the next level in your career in terms of both financial and career growth.

5 Best books to learn JDBC - Java Programming

The JDBC (Java Database connectivity) is one of the important API in Java programming language which allows a Java program to connect to any database e.g. Oracle, Microsoft SQL Server, MySQL, PostgreSQL or any other. It's very importnat API to learn and master for both core Java and Java EE professional given ubiquitous nature of Database in real world application. Despite its importance, many Java developer lack essential JDBC skills e.g. they are not familiar with Connection, Statement, connection pool, calling stored procedures and executing transaction in JDBC. One reason for that is very limited or coverage of JDBC essentials in front line Java books e.g. Head First Java 2nd Edition.

10 Array Examples in Java - Tutorial

Along with the String, the array is the most used data structure in Java. In fact, String is also backed by a character array in Java and other programming languages. It's very important for a Java programmer to have good knowledge of array and how to do common things with array e.g. initialization, searching, sorting, printing array in a meaningful way, comparing array, converting an array to String or ArrayList and doing some advanced slicing and dicing operation with an array in Java. Like my previous tutorials 10 example of HashMap in Java, I'll show you some practical example of array in Java. If you think, any important operation is not included, you can suggest their examples and I'll add them to this list.

Effective Java 3rd Edition by Joshua Bloch – A Must Read Book for Java Developers

Hello guys, you might have heard about it that Effective Java 3rd Edition is finally available. After 10 years of the long wait by Java programmers from all over the world, finally, an updated version of, probably the most popular Java book on the planet is released now. This new version covers the features and paradigm introduced in JDK 7, 8, and 9.  Joshua Bloch has done a great job in also updating most of the items to keep it relevant to the newer version. Apart from that, there is a whole new chapter added to explain best practices around Java 8 features. I know you don't need any reason to read this book, given its huge popularity and acceptance. Many startups which use Java,  particularly in India, are also distributing copies of this book as a New Year Gift.

Top 5 Amazing Gifts for Programmers, Coders, and Software Developers

If you are planning for a surprise gift to your programmer boyfriend and husband on this holiday season e.g. on Christmas or New Year or maybe on his next birthday, but not sure what to gift, then you have come to the right place. In this article, I am going to share some of the best gifts every programmer wish for. To be honest with you, buying a gift is easy but finding the right gift is very tough. I have spent countless hours on the internet to find a perfect gift for one of my colleague's husband and this article is a result of that research. The general perception of programmers is that they are a nerd, they love books, gadgets, cool stuff, music, but the perfect gift is something which not only provides the enjoyment but also the value.

How to lock a File before writing in Java? Example

A file is one of the oldest ways to store data and share data but if you are working in a shared file i.e a file which can be read or write by multiple readers and writers, you need to make sure that the file is locked before you try to write on it. This is needed to ensure that someone doesn't overwrite the data you are writing. Fortunately, Java provides a mechanism to lock a file before writing using the FileLock interface. You can get the handle of FileLock by using FileChannel for writing to a file. The FileChannel class is generally used to write faster in the large file and one of the common way to write binary data in Java.

How to Send HTTP Request from Java Program - Example Tutorial

If you are thinking is it possible to send an HTTP request from a Java program and if yes, how to send a simple HTTP GET request in Java, then you have come to the right place. In this article, I'll show you how you can use the HttpURLConnection class from java.net package to send a simple HTTP request in Java. But, first let me answer your first question, is it possible to send HTTP request in Java? Yes, it's possible and you can send any kind of HTTP request e.g. GET, POST, PUT, DELETE, HEAD, or PATCH. The java.net package provides a class called HttpURLConnection, which can be used to send any kind of HTTP or HTTPS request from Java program.

How to add/remove new elements to an array in Java?

Java beginners often ask how to add new elements to an array? or how to remove elements from an array in Java? is that possible in Java? Well, no, it's not possible in Java because arrays length cannot be changed once created. Which means neither you can add new elements nor you can remove an old one. All you can do is that reassign values to the different bucket. For example, if you have a String array of length 3 e.g. {"java", "is", "great"} then you can just replace the individual index to make it like {"Python", "is", "great"} by replace "java" with "Python" at first index, but you cannot add or remove elements.

How to Create Random Alphabetic or AlphaNumeric String of given length in Java - Example

Suppose, you want to generate an alphabetic or alpha-numeric string of given length in Java? How do you do it? Well, if you are like me, you probably search a library e.g. Apache commons-lang for something which can do this task. It's a good thing. There is no point on re-inventing a wheel if a tried and tested solution already exists. In fact, Effective Java, the most respected book in Java world also suggest to know and use your library. In fact, Apache commons-lang does have a class called RandomStringUtils, which allows you to generate Random alphanumeric String in just one method call as shown below:

RandomStringUtils.randomAlphanumeric(20).toUpperCase();

This works great for many practical purposes but if you are generating security sensitive identifier then this is not 100% secure.

5 Free Servlet, JSP, and JDBC Online Courses for Advanced Java Developers

If you are a Java developer working on a Java JEE projects e.g. Java web application or you want to get into that by learning server-side technologies like Servlet, JSP, and JDBC then you have come to the right place. In this article, I will share some free online courses to learn Servlet, JSP, and JDBC at your own pace. If you want to become a rockstar Java web developer then you must have a good understanding of these basic web technologies before you learn frameworks like Spring and Hibernate. These frameworks work on top of these basic technologies and if you don't know them then you would often struggle to debug and troubleshoot problems in real world.

How to deal with Files and Directories in Java

The File API is one of the important parts of any programming language or API and even though Java's file API both new and old, are powerful, they are not intuitive enough compared to other languages e.g. Python. Apart from knowing the essential classes and abstractions e.g. File, InputStream, OutputStream, Reader, Writer, Channel etc, you also need to know and remember some nitty gritty detail to avoid subtle issues. There are many articles out there on the internet which can teach you how to read and write data from the file but there are very few which will tell you to do it in right way.

5 ways to Compare String Objects in Java - Example Tutorial

here are many ways to compare String in Java e.g. you can use equals() and equalsIgnoreCase() for equality check and compare() and compareTo() for ordering comparison. You can even use the equality operator == to perform reference based comparison e.g. to check both the String reference variable points to the same object. In general, equals() is used to check whether the value of given String is same i.e. they contain same characters in the same sequence or not e.g. "Groovy".equals("Groovy") will be true if you compare them using equals() method. You can also use equalsIgnoreCase() to check if they are equal irrespective of case e.g. "Apple" and "apple" will be same if you compare them using equalsIgnoreCase() method.

5 Free Ruby and Rails Courses to Learn Online

Hello guys, welcome to this post, here you will find some of the best free courses to learn Ruby programming language and Ruby on Rails framework online. If you don't know what is Ruby and what is Rails framework then let me tell you that its one of the simplest programming language with little to no syntax. If you are new to programming or never coded before then also developing a Ruby application will be much easier than choosing any other programming language like Python or Java. When it comes to developing web development, the Ruby on Rails also makes your job easy by making several useful assumptions based upon convention, which means you can do more by writing less code.

5 Free Object-Oriented Programming Online Courses for Programmers

The OOP or Object Oriented Programming is a paradigm which allows you to write a program by modeling real-world things in terms of class and object. It not only make to represent a real-world thing in programming world easier but also allow you to manage the complexity of your program. Even though there are several programming paradigms e.g. procedural and functional, most of the code we write today is object-oriented and some of the most of popular programming languages are object-oriented e.g. Java, Python, PHP, and JavaScript all supported object-oriented programming.

3 Examples to Generate Random Integers on a Range in Java

Manytimes you need to generate random numbers, particular integers in a range but unfortunately, JDK doesn't provide a simple method like nextIntegerBetween(int minInclusive, int maxExclusive), because of that many Java progarmmers, particularly beginners struggle to generate random numbers between a range e.g. random integers between 1 to 6 if you are creating a game of dice, or random number between 1 to 52 if you are creating a game of playing cards and you need to choose a random card, or most commonly random numbers between 1 to 10 and 1 to 100. Then, the question comes, how to solve this problem? How to generate random int values between a range? Well, you need to do a little bit of work.

5 Free React Courses for JavaScript Web Developers to Learn Online

React JS is one of the most popular frameworks or Javascript library for building user interfaces. It's backed by Facebook and it's often viewed as an alternative to the Angular framework by Google. React is also very flexible, fast, easy to learn and fun to work with. It is designed to make the process of building modular, reusable user interface components simple and intuitive and that's why most of the modern GUI and web applications are build using React framework. It is developed at Facebook and focuses on the 'View' aspect of MVC in web applications. React was built for the purpose of developing applications that are large in nature and have to deal with time changing data.  So if you need fast refresh i.e. updating individual component without updating whole DOM then React is the right framework.

Java CountDownLatch Example - Multithreading and Concurrency Tutorial

The CountDownLatch is an important concurrency utility class which was added in JDK 1.5 but unfortunately, many Java developers still struggle to understand and use this powerful tool. You can use CountDownLatch if you are spawning multiple threads to do different jobs and want to know when exactly all tasks are finished so that you can move to next stage. In other words, you can block a thread until other threads complete their task. One of the good examples where you can use CountDownLatch is an application which downloads data from a database or another application. For example, we are creating a Java program to download all Udemy courses. Since Udemy has thousands of courses, you create different threads to download different categories e.g. technology, development etc.

Top 5 Spring Security Online Training Courses for Java Developers

Security is one of the most important aspects of a modern web application, be it a Java web application, .NET or writing using any other web technology. In Java world, Spring Security rule the security space. It's one of the rare frameworks which provided many security features e.g. authentication, authorization, session management, remember me and several other useful features out-of-the-box. Since there was no competition to Spring security and it does it job very well, it soon becomes the de-facto standard for implementing security in both Java web applications, REST APIs and core Java applications. The rise of Spring framework certainly helps it to cement its place as well.

6 Free Maven and Jenkins Online Courses for Java Developers

Maven and Jenkins are two of the most popular tools in the Java world. Maven helps to organize your project and provide support to build and deploy Java projects while Jenkins can provide continuous integration and delivery by completely automating build and deploy projects. As a Java developer, it's very important that you know both Maven and Jenkins because every other company is using it and not knowing these technologies will only put you behind other candidates if you go for a job. If you have yet to learn Maven and Jenkins then you have come to the right place, In this article, I will tell you 6 free course you can take to learn Maven and Jenkins online, but before that, let's understand what is Maven and Jenkins and what are their purpose.

Top 5 Free Courses to Learn Web Development in 2018 - Best of Lot

Hello guys, I have been sharing a lot of free online courses and books on various technology and programming language e.g, Python, Java, C++, JavaScript, PHPReact, Angular, Spring in this blog from quite some time and today I have brought some great free courses to learn basics of web development. Web Development is an important skill for programmers in this era of Startups. As a programmer or software developer, you should know how to create a website and how to create a mobile app of your own. Though it's not easy. Coding is like art and many people born with coding sense, I mean they love coding, they love to create stuff e.g. websites, mobile apps, games etc and they love to automate things. They are a very good self-learner and almost learn anything by themselves, but don't get discouraged if you don't have those skills. By perseverance and hard work, you can also learn whatever you want. In the past, I have shared some tips to learn a new technology and books and courses are an integral part of it.

Eclipse IDE - How to Remote Debug a Java Application Running on Linux

The remote debugging of Java program is an ultimate tool in the arsenal of a Java developer, which is often become the last and only tool to investigate a bug on a Java application running on remote host e.g. on Linux server or Windows server. Almost all major Java IDE provides remote debugging e.g. NetBeans, Eclipse, and IntelliJ IDEA, but I mostly use Eclipse for Java coding and so it's my preferred tool to remote debug a Java program. In order to setup remote debugging in Eclipse, you need to do a couple of tasks e.g. you need to start your JVM with debugging parameters or arguments and then you need to create a "remote debug configuration" in Eclipse IDE itself.

5 Free Linux Courses for Programmers and IT Professionals to Learn Online

Linux is one of the most popular operating systems to run server-side applications. I have seen almost all Java applications running on Linux barring a couple of them which runs on Windows as service. If you take out standalone apps like IDEs or tools, most of the real world Java applications run on Linux e.g. payment gateways, trading systems, and other financial applications. That's why it's very important for any programmer, IT professional, or a developer to learn and understand Linux, both operating system, as well as command line.

5 Free Python Courses for Beginners to Learn Online

Hello guys, If you are a beginner looking for some Free Python resources to start your programming journey then you have come to the right place. Earlier, I have shared a couple of free Python Programming eBooks sand today I'll share a couple of good Python programming courses which are absolutely FREE!! You can take these online courses to learn Python at your own pace, at your own time, and at your place. This is a great advantage of online learning, the flexibility it provides is just awesome.  You just need a laptop or a smartphone with an internet connection and you can learn anything. Btw, before to start with the list of courses to learn Python programming I want to congratulate you for making the right decision to start your programming journey with Python.

Top 5 Free Core Spring, Spring MVC, and Spring Boot Courses for Beginners to learn Online

I have been sharing a lot of resources e.g. books and courses recently and when I published my list of Top 5 courses to learn Spring and Hibernate, many of my readers asked about a similar list of free courses to learn Spring Framework e.g. Core Spring, Spring MVC, Spring Security, and Spring Boot. That request was always back of my mind but I couldn't get time to put together a list, which I can share with you guys, but today is the day. In this list, I have compiled some of the best online free courses to learn Spring Framework from scratch, online at your own pace. You can not only learn core Spring e.g. a framework which provides dependency injection, but also Spring MVC, the most important framework for a Java Web Developer, Spring Security, and Spring Boot to take your career to next level.

Java Enum With Constructor Example

Java Enum with Constructor
Many Java developers don't know that Java Enum can have a constructor to pass data while creating Enum constants. This feature allows you to associate related data together. One example of passing arguments to enum Constructor is our TrafficLight Enum where we pass action to each Enum instance e.g. GREEN is associate with go, RED is associated with stop and ORANGE is associated with the slow down. This is really useful because it provides more context and meaning to your code. If you want, you can also provide one or more constructor to your Enum as it also supports constructor overloading like normal Java classes. This is very different from enum you have seen in C or C++, which is just a collection of fixed thing without any OOP power.

How to Randomize a List in Java using Collections.shuffle() Example

The java.util.Collections class provides shuffle() method which can be used to randomize object stored in a List in Java. Since List is an ordered collection and maintains the order on which objects are inserted into it, you may need to randomize elements if you need them in a different order. Collections.shuffle() method uses default randomness to randomize element but you also have an overloaded version of shuffle() to provide an instance of the java.util.Random object, which can be used to randomize elements. Since this method except for fora List, you can also pass it to LinkedList, VectorCopyOnWriteArrayList, and others, which doesn't implement the RandomAccess method.

Java Enum Tutorial - 10 Things Java Devs Should Know about Using Enum

Apart from the Class and Interface, Enumeration type or Enum is another popular type in Java programming language. Enum allows you to represent a fixed number of well-known things in a type-safe manner e.g. days of the week, days of the month, planets in solar system, buttons on remote control, keys on keyboard and suits on playing cards. Before Enum was introduced, prior to Java 1.5, integer and string constants are used to represent the fixed number of things, known as enum int pattern and enum string pattern as described in classic Effective Java by none other than Joshua Bloch. Though they served the purpose, they had some major drawbacks which resulted in poor quality code.

Is Java Best Programming language for Beginners?

I often receive questions like which is a good programming language to learn first, Is Java a good programming language to start with,  how good Java is as a first programming language, which is the best programming language for beginners, or shall I start with Java or Python. Well, the answer to all these questions is, Java is one of the most popular programming languages and there are the lot of reasons to learn Java, starting with Job opportunity to leverage community support. In the context of starting programming or choosing Java as the first language, my biggest reason is that it's simpler to learn. The last generation of programmers started learning to programme using languages like BASIC and then grew up learning C and C++ with Java as their second or third programming language.

Top 5 Free JavaScript Books for Beginners - Download PDF or Read Online

The internet is full of good things and one of them is free eBooks and PDF. Programmers can almost run anything by these free books. Earlier I have shared some of the free JavaScript tutorials and in this article, I am going to share 5 good books to learn JavaScript which are free to read online or allow you to download PDF for offline reading. JavaScript is probably another language I recommend someone who knows Java, Why? because it's really ubiquitous. There is almost no website which is not using JavaScript in one or other format. Some use JavaScript for client-side scripting and animation, while other use JavaScript on the server side with libraries like node.js, it forms the unique triangle with HTML and CSS.