Monday, December 31, 2018

Top 10 Pluralsight Courses For Java and Web Developers to Learn in 2019 - Best of Lot

Since last week, I have been sharing about my 2019 learning goals and what Java programmers should learn in 2019 but I haven't shared with you how will I learn those new technologies e.g. Git, Angular JS, React JS, Spark, and Machine learning etc. Well, there are many ways to learn a new technology or programming language, 10 of them I have shared in my earlier post about how to learn new technologies but two of the best ways to learn any new technology is by using online courses and reading books. I have been learning from books since my childhood but ever since I have tried learning from online courses, I found them more interactive and useful.

Saturday, December 29, 2018

Does Standard Column Width of 80 On Coding Make Sense in 2019?

One of the oldest coding practice is to keep line width 80, and many of us follow it blindly but have you ever thought why we have this practice in first place? I believe it was to make your code more readable in the age of small monitors so that whole content can fit in the screen, or it might have originated from the age of punch card, which was used to be 80 column wide. This sounds reasonable when we think about those old days but do you think this rule makes sense in 2019? We are now living in the age where most of the developers have got large monitors, which can show up-to 180 characters, doesn't this is wastage of precious monitor space? It also makes your code unnecessary long, then it actually is.

Thursday, December 27, 2018

Top 5 Big Data and Apache Spark Courses for Java Developers to Learn Online in 2019

Slowing economy and the recent trend of job cuts in India and elsewhere have made many programmers anxious about their job security. I receive a lot of emails and Facebook chats about suggestions to improve IT skills to remain competitive and marketable. So, if you are in the same boat, you can learn Big Data and IT Automation to remain marketable. These two skills are in great demand and will generate a lot of jobs in future. I have suggested many Java developers around the world to learn Big Data Technologies e.g. Apache Spark to give their CV a new boost. Since it's not easy to learn a new technology and at a certain age, you feel a lot of restriction and resistance from both your body and mind. In order to overcome that I found a combination of books and online courses works great.

Monday, December 24, 2018

10 Things Java Programmers Should Learn in 2019

It's 24th December now and only a few days have left in the year 2018. It's a good time to look back and retrospect what you have achieved in 2018 and what you could have done better. This will help you to create your goals for 2019. As a programmer, our biggest challenge is to keep ourselves up-to-date. Technology changes very fast and you will see a new version of programming language and framework coming to every couple of year. This year has plentiful changes with keeping up-to-date with new Java version every 6 months, Spring 5, Spring Security 5 and Spring Boot 2, it's probably the busiest year in terms of changes for Java developers.

10 Tools Every Software Developer/Programmer should know

Every trade has their tools and software development is no different. A good programmer or software developer generally know their tools better than others and also have access to more powerful and advanced tools than a average programmer, but there are certain tools which you expect every software developer should know and this list is all about such tools. In this list, I am going to share 10 essential tools, which I believe every programmer or software developer should know and know well.

Saturday, December 22, 2018

Top 10 Gift Ideas for Programmers, Software Engineers, and IT Professionals

My friend circle has a lot of programmers and non-programmers and when it comes to buying gifts for birthdays, anniversary or holidays, I receive a lot of queries from my non-programmer family and friends about what to buy for a programmer? Well, buying a gift is easy but choosing or finding the right gift for someone is really really tough. I have had this experience when it comes to buying gifts for kids. I know they like toys but my wife told me to buy something more valuable, which not only keep them engaged but also provide value, help them in learning and they appreciate every time they use. That's a lot to cater in one gift, but that's the perfect gift, isn't it?

Sunday, December 2, 2018

How to fix invalid target release: 1.7, 1.8, 1.9, or 1.10 Error in Maven Build

If you are building your Java project using Maven, maybe in Eclipse or from the command prompt by running mvn install and your build is failing with an error like "invalid target release: 1.7" or "invalid target release: 1.8" then you have come to the right place. In this article, I'll show you the reason why this error occurs and how you can deal with these errors even with higher Java version like Java 9, 10 installed on your machine, or maybe with Java 11 in the coming month. The root cause of the problem is that you have specified a higher Java version in your pom.xml file for Maven compiler plugin then what Maven knows in your system, and that's why it's saying invalid target release.

Saturday, December 1, 2018

Top 5 Free Java Courses for Beginners to Learn Online - Best of Lot

We all love free resources, don't you? There was a time when I buy a lot of books when I was preparing for my engineering entrance exam but I only ended up buying books not reading them. Afte that I changed my habit to first try to read a book on loan or trying free resource and only buying when I really need. When I started my programming journey, mostly I learn from free resources e.g. free courses and books and there I developed the passion to collect free resources as well.  I agree that paid resources are often better than free resources e.g. books and courses but if you are just starting your journey, it's the free resource which you should try first. Once you have some background and interest, you should consider buying a proper book or courses for comprehensive learning.

Friday, November 30, 2018

Top 5 Websites to Learn Coding in Java Online for FREE - Best of lot

Begin an author of a Java blog, I often receive questions like how to improve my coding skills?,  or how do I learn to code in Java?, or I am having difficulty solving programming problems, please help etc. This is mostly from programmers, who has just started programming or a graduate with programming degree or even some programmers with a year or two in Job. Like many other things in the world, to improve coding you need to code, code, and code - and to improve programming you need to write a program, and that's where many of these programmers fail. In 90% cases, they simply don't write enough program to develop programming logic and code sense and if without too much experience at data structures and algorithms, if they attempt problems given on sites like TopCoder, or Project Euler, they fail miserably.

Top 5 Free Git Courses for Programmers to Learn Online - Best of Lot

One of my goals in 2018 is to learn and master Git and I have been searching some good tutorials and courses to start with. The Internet is full of git tutorials and a simple Google search will leave you thousands of tutorials but the big question mark is where do you start? It's easy to pick a tutorial or a blog post if you have some background about what is Git, what it does? and how to use it but if you don't have much background then you need a course which can tell you all the information from the ground up. I personally like learning from a book or an online course before moving to blog posts as they were often well structured. When you search for Git courses in popular online course websites e.g. Udemy, Pluralsight or Coursera, you will find some good courses e.g. Git Complete: The Definitive Guide on Udemy and Git Fundamentals from Pluralsight which will teach you everything about Git step by step. These are excellent resources to start with Git.

Thursday, November 29, 2018

Spring Framework Certification FAQ - Frequently asked Questions Answers for Java Developers

If you are a Java developer, working in Spring framework and thinking to become a certified Spring professional but couldn't to do it in the past due to expensive mandatory training provided by Pivotal and its partners then there is a good news for you. From 10th May 2017, Pivotal made the Spring Core training optional for appearing to Spring certification exam, which means, now, it's not mandatory to take Spring training for Spring certifications (see here). Similar to Oracle's Java certifications, you can become a Pivotal certified Spring Professional by just buying the exam vouchers and scheduling your exam online using examlocal.com from anywhere in the world.

Wednesday, November 28, 2018

Top 5 books to learn Agile and Scrum for Programmers - Best of lot, Must Read

When I started my career, it was all waterfall model. You try, fail, and then with every version you get an improved version of a software. I pretty much used to this model of software development until I was introduced to Agile development methodologies in my next company. I was confused about Agile as some people say its Scrum and Sprint, other ways its XP and Kanban etc. The confusion lasted for a long time because I was afraid of asking questions (afraid of being perceived as dumb and someone who wastes time on meetings) and only getting information in bits and pieces and I wasn't good at searching books at that time. From that experience, I learned that, when you have confusion and want to learn more about a new technology, nothing is better than a book or online training courses to start with.

Monday, November 26, 2018

How to delete a key value pair from a HashMap during Iteration in Java - Example tutorial

Suppose you have a Map or Dictionaries like HashMap or Hashtable, which contains key-value pairs like books and their prices, and you want to delete all books whose prices are greater than 40 USD, how do you that in Java? This is one of the most common scenarios while developing Java application and many Java programmer, will say that they will iterate over Map and check each entry and then use the remove(Object key) or remove(Object key, Object value) methods from java.util.Map to delete any mapping where the value is greater than 40 USD. Though the approach is right, the answer is wrong.

Sunday, November 25, 2018

How Http Basic Authentication works in Spring Security?

In the last article, you have learned 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 purpose the client e.g. browser or a rest client sends login credentials in http request header. The header is aptly named as "Authorization" and it contains based 64 encoded string which is created by concatenating username and password using a colon. For example, if the username is "johnsmith" and password is "JOHN3214" then they will be concatenated as "johnsmith:JOHN3214" before encoded using base 64 encoding algorithms.

Wednesday, November 21, 2018

How to avoid deadlock in Java Threads?

How to avoid deadlock in Java? is one of the popular Java interview question and flavor of the season for multi-threading, asked mostly at a senior level with lots of follow up questions. Even though question looks very basic but most of the Java developers get stuck once you start going deep.

Interview questions start with "What is a deadlock?"
The answer is simple when two or more threads are waiting for each other to release the resource they need (lock) and get stuck for infinite time, the situation is called deadlock. It will only happen in case of multitasking or multi-threading.

Tuesday, November 20, 2018

How to convert float to long or int data type in Java?

Yesterday one of the new joiner Java Trainee Engineer from our team came to me and asked about how do you I convert a float variable into long or int data type? He was storing some values coming from another system in the database and only wanted to store value before the decimal point e.g. he was getting "3.144" and he wants to convert it to "3" to store into database. The good thing was that API was returning a float primitive value and you don't need to convert a String to float etc. I asked him whether he needs routing or not, which he wasn't sure but it turns out that he didn't need that. I explained to him how to do that and that's what you will find in this article as well. In short, there are 3 ways to convert a float value into long or int in Java, but we will only focus on long data type part.

Top 15 Java Multithreading, Concurrency Interview Questions Answers asked in Investment banks

Multi-threading and concurrency questions are an essential part of any Java interview. If you are going for any Java interview on any Investment bank e.g. Barclays, Citibank, Morgan Stanley etc for Cash Equities Front Office Java Developer position, you can expect a lot of multi-threading interview questions on your way. Multi-threading and concurrency are favorite topics on Investment banking interviews,  especially on electronic trading development jobs and they grill candidate on many tricky java thread interview questions. They just want to ensure that the guy has solid knowledge of multi-threading and concurrent programming in Java because most of them are in the business of performance which provides them a competitive advantage and it's hard to write correct and robust concurrent code.

Sunday, November 18, 2018

The @SpringBootApplication Annotation Example in Java + Spring Boot

Hello guys, today, we'll learn about the @SpringBootApplication annotation, one of the most important annotations from popular Spring Boot framework, which has changed the way Java developers use Spring framework for writing Java applications. In this article, I'll explain you the meaning of @SpringBootApplication and it's used in a simple Spring Boot application. We use @SpringBootApplication annotation on our Application or Main class to enable a host of features e.g. Java-based Spring configuration, component scanning, and in particular for enabling Spring Boot's auto-configuration feature.

Saturday, November 17, 2018

How to Schedule Spring Professional Certification Exam using Voucher Online - Step by Step Guide

So, you have been preparing for Spring certification for quite a sometime and now you feel you are ready to take the exam and it's time to buy the Spring certification voucher and schedule your exam. In this article, I'll show you how to buy the Spring certification voucher online. But, before purchasing a voucher, I would like to remind you that Spring certification voucher is only valid for 90 days, after that it will expire. So, it's best to buy the voucher only if you are ready for the exam i.e. you have gone through several Spring Mock tests and practice tests given in Spring study guides and you are consistently scoring over 80% on them.

Friday, November 16, 2018

Do you Need to Pass OCAJP before taking OCPJP - Java Certification for SE 8 (1Z0-808 and 1Z0-809)

Even though we are now waiting for Java 11, the latest Java certification you can do is Java SE 8 Programmer 1 and 2, also known as OCAJP 8 and OCPJP 8 with exam code 1Z0-808 and 1Z0-809. Even though Oracle split Java certification into 2 after acquiring Sun Microsystem on 2010, there is still confusion among Java developers whether they need to pass just one OCAJP exam, or both OCAJP and OCPJP exam to become a certified Java developer. Well, The short answer is Yes, if you want to become a Java certified engineer than you need to pass both OCAJP and OCPJP but the long answer depends upon your situation e.g. whether you hold any previous Java certification or not, which we'll discuss in the second section.

Tuesday, November 13, 2018

Top 5 Soft Skill and Career Development books and Courses for Programmers

Most of the software developers, programmers, and coders spend a considerable amount of their time and energy on learning technologies which get obsolete in few years e.g. a new framework or a new programming language but they neglect something more important e.g. soft skills. Unlike technical stuff, soft skills will not only serve you good in your job and career but also in your life and it won't get obsolete as quickly as the new web application development framework you have just learned. Similarly, most of us put a lot of effort to get a job but after that, we don't put much effort to grow on that job, the result is many programmers and software developer stuck in their career.

Monday, November 12, 2018

5 Must Read Books to become Software Architect or Solution Architect

I receive a lot of queries from senior Java developers, who aspire to become software architect or solution architect e.g. what can they do to become a software architect? Which books, resources, or certifications can help? and general queries like how much experience you need to become software architect etc. In the past, I have been suggesting them individually about some books to read to expand their knowledge base and look at the software from architecture and design perspective and this article is a compilation of many of such suggestions. Since a lot of books can confuse, I have only select 5 best and must-read books from software architect perspective.

Thursday, November 8, 2018

3 Ways to convert String to Boolean in Java? Examples

You can convert a String object to Boolean object or boolean primitive by using the Boolean.valueOf() and Boolean.parseBoolean() method. The steps are similar rot converting to String to other data types e.g. String to Integer and String to Long. You can use valueOf() method to convert String to Boolean object and parseBoolean() method to convert given String to boolean primitive value. Internally, valueOf() also uses parseBoolean() for parsing String but on top of that it also provides caching e.g. it can return Boolean.TRUE and Boolean.FALSE cached value for "true" and "false" string.  In fact, the Boolean.TRUE is returned only when String is equal to true ignoring case e.g. "True", "true", "TRUE" will evaluate into boolean true, hence Boolean.TRUE will be returned. For string like "Yes", Boolean.FALSE will be returned. We'll discuss the rules of String to boolean conversion in next section.

Sunday, November 4, 2018

How to Remove Leading/Trailing White Space from a String in SQL Server? LTRIM, RTRIM Example

Unlike Java, Microsoft SQL Server 2008, 2012, 2014,  and even the latest version don't have a built-in trim() function, which can remove both leading and trailing space from the given String. But, SQL Server does have two built-in functions LTRIM() and RTRIM() to remove leading and trailing space. The LTRIM() function removes space from the left side of String so you can use it to get rid of leading space, while RTRIM() removes white-space from the right side of String so you can use it to delete trailing space. You can even combine these two methods to create your own TRIM() method in SQL SERVER e.g. LTRIM(RTRIM(column)) will act as a TRIM() method because it removes both leading and trailing space.

Saturday, November 3, 2018

The best Course to Learn Spring Security 5 for Experienced Java Developers

If you are a Java Spring developer and working with Spring Security then you may be familiar with the "Learn Spring Security" course by Eugen Paraschiv of Baeldung.com. It is one of the most advanced and comprehensive courses on Spring Security and the best part of this course is that Eugen always keeps it up-to-date with new Spring Security release. Now that version Spring Security 5 is out - he has updated his course to use new features of Spring Security 5. Btw, there is some really cool new functionality coming in Spring Security 5 for the reactive programming model, and many other improvements and new features. But, the most important one is the release of OAuth2.

Tuesday, October 30, 2018

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.

Tuesday, October 23, 2018

How to do group by in Excel - COINTIF function example

The Microsoft Excel is one of the best tools to analyze data and I think every programmer should be familiar with this tool. There are a couple of genuine reasons for why I am asking you to learn and master Excel. Since most of us work in Windows and Excel is almost always available, knowing how you can use it for your data analysis and reporting can really make a difference. Managers, Directors, Clients, and People at a higher level just love reports and once your experience grows, your responsibility also grows and you need to create many reports or work on Excel sheet generated by others. It automatically becomes part of your life, especially if you are progressing on project management space.

Saturday, October 20, 2018

Top 30 Java Phone Interview Questions Answers for Freshers, 1 to 2 Years Experienced

Hello guys and ladies, in this article, I am sharing 30 core Java technical questions, from screening and phone round of interviews. In telephonic interviews, questions are short, fact-based and Interviewer expects a to-the-point reply and some keywords in answers. Accordingly, I have given very short answers of all these questions, only the main points; just to make this a revision post and not the main source for preparation. For thorough preparation, my master list of 140+ Java questions is a better one to start with. I am also expecting every Java programmer to know answers to all these Java technical questions if he has more than 4 to 5 years experience. it's only freshers and junior developers who need to do a bit of research to understand topics well.

Friday, October 12, 2018

How to use jQuery Class and Id Selector to find DOM elements

One of the best things about jQuery is there selectors, which gives the jQuery enormous power to find and select DOM elements so easily. If you are coming from JavaScript background then you might love those classical methods to find DOM elements like getElementById() and getElementByName(). They have served very well in the old days of JavaScript coding,  but once you start using jQuery selector, which is quite similar to CSS selector, I am sure you will forget them. Searching and finding HTML elements using jQuery selectors are natural, intuitive and super easy and that's why I love them.

Wednesday, October 10, 2018

Why become a Certified Java Programmer? Does Oracle Certified Professional Earn more?

I have seen many Java programmers in doubt whether to go for Java certifications or not? Whether getting Java certified will help them to earn a better salary? or after becoming Java certified from Oracle will help them to get a Job. In this article, we will see what are the benefits of getting Java certified. I know higher income, better Job prospects, and a better chance of promotion is at the top of the benefits of becoming a certified Java professional, but this certification provides much more value than that. Apart from all those tangible benefits, the most important thing is that you learn Java better which help you everywhere like in your day job as well as on interviews.

Friday, October 5, 2018

How to deal with ConcurrentModificationException in Java? Beware while removing elements from ArrayList in loop

One of the common problem 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. It's an unwritten rule in Java that while looping through the list, you should not add() or remove() elements until the collection supports fail-safe Iterator e.g. CopyOnWriteArrayList, which operate on a copy of list rather than the original list.

Wednesday, October 3, 2018

Top 5 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. A good knowledge of data structure and algorithm is the foundation of writing good code. If you are familiar with essential data structures e.g. array, string, linked list, tree, map and advanced data structure e.g. 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 hashtable, given every major programming SKD provides them e.g. JDK or C++ STL library, you will need to understand them so that you can use them in right place. Using a right data structure can drastically improve the performance of an algorithm.

Book Review - Clean Architecture by Uncle Bob Martin - Must read for Programmers

Hello Guys, today, I am very excited to talk about a new book (Clean Architecture: A Craftsman's Guide to Software Structure and Design) from one of my favorite author of programming books, you guessed it right, Uncle Bob. The same Uncle Bob (aka Robert Martin) who brought you the Clean Code and Clean Coder has been at it again. It's been a long time since I last read an Uncle Bob and somehow I wasn't aware of this book. It comes to me as a surprise yesterday when one of the colleagues mentioned it and I didn't take time to realize that I need to buy and read this book. I just cursed myself that why I didn't know about this book before, it is still new but given I love to read his books, it's just a miss for me.

Friday, September 28, 2018

Top 4 Books to learn Oracle PL/SQL Programming - Best, Must Read

In last summer, I had to work on a Java project which was using Oracle database at their backend. The project was a mix of Java code with Oracle PL/SQL stored procedures, where Stored procedures were quite big and complex to read. I had not worked on Oracle for a couple of years and almost forget whatever I knew before. So, to revise, update and re-learn and I looked over some of the books and online courses like The Complete Oracle SQL Certification Course which helped me a lot. In my quest to revise and re-learn Oracle SQL, I also find lots of their used books on Oracle PL/SQL which are both interesting to read as well as provides a great wealth of information to any programmer.

Wednesday, September 26, 2018

How to Remove all Unused imports in a Java file - Eclipse Shortcut

How to remove all unused imports in Eclipse
Eclipse IDE gives warning "The import XXX is never used" whenever it detects unused import in a Java source file and shows a yellow underline. Though unused import in Java file does not create any harm, it's unnecessary increase length and size of Java source file and if you have too many unused imports in your Java source file, those yellow underline and Eclipse warning affect readability and working. In my last post on Eclipse, we have seen some Java debugging tips on Eclipse and in this post, we will see Eclipse shortcut to remove all unused imports in Eclipse. There are many options to tackle this problem e.g. you can collapse import section of code in Eclipse or you can altogether remove all unused imports from Java file, and we'll see them in this short tutorial.

How to find Length of String in SQL Server? LEN() Function Example

One of the most common task while writing SQL queries or stored procedure is to find the length of String. Since most of the columns are VARCHAR, you often need to find the length before taking any action. In Java, you can find the length of String by using the length() method but how about SQL Server? How will you find the length of String in Microsoft SQL Server in general and Microsoft SQL Server 2016 in particular? Well, you can use the LEN() function to find the length of a String value in SQL Server, for example, LEN(emp_name) will give you the length of values stored in the column emp_name. This method exists from SQL Server 2008 onwards which means you can use this function in SQL Server 2012, 2014, 2016 and latest version of Microsoft SQL Server i.e. SQL Server 2017.

Tuesday, September 25, 2018

How to Solve UnrecognizedPropertyException: Unrecognized field, not marked as ignorable - JSON Parsing Error using Jackson

While parsing JSON string received from one of our RESTful web services, I was getting this error "Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "person" (class Hello$Person), not marked as ignorable". After some research, I found that this is one of the common error while parsing JSON document using Jackson open source library in Java application. The error messages say that it is not able to find a suitable property name called "person" in our case, let's first take a look at the JSON we are trying to parse, the class we are using to represent the JSON document and the error message itself.

Error Message:
Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "person" (class Hello$Person), not marked as ignorable (4 known properties: , "id", "city", "name", "phone"])

Sunday, September 23, 2018

Top 5 Database design and Modelling Books for Programmers and DBAs of All level

The database design and modeling are one of those topics which rarely gets the attention they deserve, especially at the start of the project, but once things have gone out of hand then everybody talks about that. Comments like - this database are designed poorly, it is not performing well, you cannot add a new column easily etc becomes very common. The most problem with database design is that it is mainly done by application developers e.g. Java or C++ developer who knows SQL but they are not the expert of how to design tables and schema. The Database admins or DBAs know database and SQL better than application programmers but they focus on the admin part of the database rather on application part e.g. designing tables and relations between them, which is left to the application developer.

Saturday, September 22, 2018

JUnit Testing Tips - Constructor is Called Before Executing Test Methods

Even though almost all Java programmers either use JUnit or TestNG for there unit testing need along with some mock object generation libraries e.g. Mockito, but not everyone spends time and effort to learn subtle details of these testing libraries, at least not in proportion of any popular framework like Spring or Hibernate. In this blog post, I am sharing one of such detail, which has puzzled me a couple of years ago. At that time, though I had been using JUnit for a significant time, I wasn't aware that code written inside the constructor of Test class is executed before each test method.  This behavior of JUnit has caused, some of my test to failed and putting hours of investigation in my code, without realizing that this is happening because of JUnit is initializing the object by calling constructor before executing test method annotated with @Test annotation.

Wednesday, September 19, 2018

Kotlin vs Java - Which language Android Developers should Learn?

Ever since Google announced Kotlin as the official language for Android development in Google IO 2017, programmers, who want to become an Android Developer are in dilemma. Now the big questions in front of them are whether they should learn Kotlin or Java? The answer to this questions depends upon your profile. If you are a complete beginner who wants to learn Android development then my answer is Java, but if you are Java developer who wants to jump into the lucrative market of Android App development then my answer is Kotlin. I'll discuss why beginner Android programmer should start with Java and why Java developer should learn Kotlin in this article.

Tuesday, September 18, 2018

How to enable HTTP Basic Authentication in Spring Security using Java and XML Config

In the last article, I have shown you how to enable Spring security in Java application and today we'll talk about how to enable Basic HTTP authentication in your Java web application using Spring Security. I'll show you how to do that using both the Java configuration and XML configuration if you are using Spring Security 3.1 or lower version, but before that let's understand what is Http basic authentication and why do you need that? One of the most common ways to authenticate a user in a web application is by using form login i.e. you provide a login page and user will enter his username and password for authentication. This works great for human users but sometimes there are situations where you can't use a login form for authentication.

Saturday, September 15, 2018

Top 5 Java SE 8 Certification Books - Best of Lot Must Read

If you are preparing for Oracle Certified Associate, Java SE 8 Programmer, also known as Java SE 8 Programmer I or OCAJP8 exam and looking for some good resources e.g. books, study notes, and mock exams then you have come to right place. I have been sharing some of the most useful resources for Java 8 certification aspirants ever since the exam was launched. You can find a lot of this exam and essential resources in this blog. To continue that tradition, I am going to share some of the best books to crack the Java SE certification i.e. OCAJP 8 (1Z0-808)  and OCPJP 8 (1Z0-89). Yes, you need to pass two exams to become Java 8 certified professional. The OCAJP is also a prerequisite for OCPJP exam, which is a professional level exam. Alternatively, if you already hold a Java certification e.g. Java SE 6 or before then you can take one of the upgrade exams e.g. 1Z0-810 to become Java SE 8 certified professional.

Thursday, September 13, 2018

Clean Code by Uncle Bob - Book Review - Must read for Software Engineers

Even though, the Clean Code book has been released many years ago and there are lots of good reviews already available, I couldn't resist to write my own experience about this great book. I came across this book many years ago but since then I have read it multiple times and I have recommended it to my readers, students, and fellow developers. It is one of those books which make you feel that why didn't you come across it earlier, I felt the same when I first learned about this book. The Clean Code is all about writing good quality code and how do you judge the quality of code? Well, you won't appreciate good until you have seen bad code and that's what this book do.

Wednesday, August 15, 2018

20 Java and Programming Quotes to Motivate Yourself

I always have a strong interest in knowing great peoples of my field like software development and programming. Knowing about them, following them, and reading about them not only gives you immense knowledge but also the motivation ,you need to excel in whatever you are doing. It's the motivation, not knowledge that will propel your career. Knowledge is almost useless without motivation because just knowing is not enough, you need to apply that knowledge, and without motivation, you just can't do that. There are times when programmers also feeling tired and bored. These are the times when you spent hours constantly looking at the computer screen, clicking here and there, surfing the net without doing anything.

Tuesday, August 7, 2018

Top 5 Hibernate Books for Java Developers - Best, Must read

Hibernate is one of the most popular, open source ORM (Object Relational Mapping) framework, which has now become a standard for developing persistence layer on Java enterprise application, along with JPA (Java Persistence API). I often receive requests to suggest which book is best to learn to hibernate or recommendation about some good books and training course on Spring and Hibernate. This motivates me to write this article about some of the best books on Hibernate currently available on the market. Earlier I have shared some of the must-read books on Spring framework for a Java developer, which is quite helpful for picking a book on Spring. Similar to Spring framework, experience in Hibernate is most sought after thing in Java JEE development roles.

Sunday, July 29, 2018

Top 5 Java Performance Tuning Books for Experienced Programmers - Best of Lot, Must read

You might be thinking, why should a Java developer read a book on Performance tuning? When I first faced this question a long time back, I thought I will do it later, but I never got back to that for a long time. I realize my mistake of having a lack of knowledge on memory measurement, JVM tuning, and finding bottleneck only when I faced serious performance and scalability issues on our mission-critical, server-side financial application written in Java. It's true that when you really need it you learn most, but those times are not the best time to learn fundamentals, in fact, those times are to apply and correct your misunderstanding.

Friday, July 27, 2018

Does Oracle's Java Certifications like OCAJP, OCEJWCD, or OCPJP helps in Job and Career?

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 helps to land a job, or does certified Java developer 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 question 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). 

Thursday, July 26, 2018

How to do Pagination in Oracle Database - SQL Query With Example

Many time we need SQL query which returns data page by page i.e. 30 or 40 records at a time, which can be specified as page size. In fact, Database pagination is a common requirement of Java web developers, especially dealing with the largest data sets.  In this article, we will see how to query Oracle 10g database for pagination or how to retrieve data using paging from Oracle. Many Java programmer also uses display tag for paging in JSP which supports both internal and external paging. In case of internal paging, all data is loaded into memory in one shot and display tag handles pagination based upon page size but it only suitable for small data where you can afford those many objects in memory.

Top 5 Best Java 8 Tutorials, Courses, and Books

It's been quite some time since the Java 8 was released but Java community is still buzzing with functional programming and lambda expression. Many developers, programmers, and bloggers have already shared lots of really good tutorial to learn lambda expressions, probably the biggest thing in Java world after Generic was introduced in Java 5. While the term "lambda expression" may sound abstract and academic, Java 8 Lambdas can have a big impact on how you program every day. Java 8 has not only introduced Lambda expressions but also Stream API, Functional interfaces, new Date and Time API and default methods, which has completely changed the way you write your Java code. As a professional Java developer, you will have to learn Java 8 one day, and it's better to do sooner than later.

Wednesday, July 25, 2018

2 Books to Prepare Oracle Java Certification Exams - OCA and OCP Java SE 6,7, 8 OCPJP 8

There was a time when Sun Certification was very hot and programmers feel proud of being Sun Certified Java Professional(SCJP). After Oracle took over Sun in early 2010, it changed names of all the examination from SCJP to OCPJP or OCJP, and now OCA and OCP for Java SE 7 and Java SE 8. I see there is a lot of confusion among certification nowadays, but essentially they are of the same level at previous SCJP. Since Java gets new language feature with every new release, subsequently a new certification title is introduced. I am not agreed with upgrading your Java certification with every release, it doesn't make much sense to me, but many programmers prefer to get certified and keep it updated.

Monday, July 23, 2018

Spring Security Concurrent Session Control Example Tutorial - How to Limit Number of User Session in Java JEE Web Application

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, its just piece of cake with coffee :).  You just need to add a couple of lines of XML in your spring security configuration file and you are done. In order to implement this functionality, you can use the <concurrency-control> tag.

Sunday, July 22, 2018

How to setup JNDI Database Connection pool in Tomcat - Spring Tutorial Example

Setting the JNDI Database Connection pool in Spring and Tomcat is pretty easy. Tomcat server documentation gives enough information on how to setup connection pool in Tomcat 5, 6 or 7. Here we will use Tomcat 7 along with spring framework for creating a connection pool in Tomcat server and accessing them in Spring using JNDI code. In our last article, we have seen how to setup database connection pool in Spring for core Java application which doesn't run on a web server or application server and doesn't have managed J2EE container. but if you are developing a web application than its better to use server managed connection pool and access them using JNDI. Spring configuration will be generic and just based on JNDI name of Datasource so it will work on any J2EE Server e.g. Glassfish, WebLogic, JBoss or WebSphere until JNDI name is same. 

Friday, July 20, 2018

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.

Monday, July 16, 2018

Amazon Prime Day 2018 - Great Opportunity to Buy Books and Gadgets for Programmers

Many of my friends and colleagues used to wait until November to buy books, gadgets, and other computer items to get the huge discount offered on Black Friday deals, but you don't need to. Amazon is bringing Black Friday to the summer with their annual Prime Day offers. The Amazon Prime day is nothing but a one-day (precisely one and half day) shopping extravaganza, where you will get huge discounts on thousands of Amazon products including books, games, gadgets, and other computer and electronics items. So, if you are looking to buy a new laptop, a new smartphone or want to track your fitness, you can buy Fitbit and other such gadgets at a much cheaper price on Amazon prime day.

Monday, July 2, 2018

Which Programming Books Would You Buy if 100$ is Given to Spend?

Hello Guys, it's time to take a hypothetical question in Javarevisited. I love books and I have so many in my library and on my phone but this time, I am asking for your recommendations. Which programming book, would you love to buy, if you are given 100$ to spend? I know, when it comes to buying, people want to the worth of their money, and that's why I am posting this question to you guys. Suppose you are looking some books in a bookstore and suddenly salesman comes and say, at this particular minute, we are giving you 100$ FREE to buy any programming book. Now you just have 10 minutes to complete your purchase and take away those awesome Java books absolutely for FREE, what are the books you are going to buy?

Saturday, June 30, 2018

Top 8 Free Java Programming Books, EBooks and PDF for Beginners and Experienced Programmers

Who doesn't like free stuff? Well, I do like and many Java programmers like me simply love free Java books, eBooks, and PDFs. Fortunately, the Internet is full of free books and eBooks but unfortunately, many of them are of not good quality. Most of the eBooks which are freely available either are sample chapters of popular Java programming books or they are simply old and out-of-date. In my last article, I have shared a lot of such books and the feedback was that most of them, even though they are good in the past, have simply not up to the mark. The search goes on and while browsing the net a couple of days back I hit the Jackpot when I found these free Java books from OReilly.

Friday, June 29, 2018

Google Dart Hello World Example - A Java Like Programming Language to Create Web, Android, and iOS Applications

Google Datt is a general-purpose programming language from Google and used to build web applications, mobile applications, and the Internet of Things (IOT).  It's most popular application is in Flutter framework, which is Google's mobile app SDK for crafting high-quality native interfaces on iOS and Android in record time. If you haven't tried it yet then it's a good time to try it and see how much it offers to a programmer and whether it is suitable language to replace JavaScript or not. As a Java Programmer, my first impression of Google dart is great. It looks quite familiar with Java my favorite programming language and this motivates me to write this hello-world example in Google Dart and execute it, run it and see how it works.

Thursday, June 28, 2018

How to Map a Network Drive to Windows Machine - net use Command Example

Mapping network drive in Windows 10 or other versions of Windows operating system e.g. Windows 7  or Windows 8 is much easier and faster by using the command line than by doing it on Windows Explorer. If you have been working in Windows environment with a bunch of Windows Server 2016 or 2012  servers and your job requires frequent access, copy or paste from the local machine to those remote machines than mapping them as a network drive is the best option. You can use mapped network drive as any other folder which makes the job of copy paste very simple. Though windows provide multiple ways to map a network drive, I prefer to use command line i.e. "net use" command to map my windows network drives.

Monday, June 25, 2018

How to parse JSON with date field in Java - Jackson @JsonDeserialize Annotation Example

I have read many articles on parsing JSON in Java and most of them give examples where properties are either String or int, there are very few examples, where you will see the JSON string contains a date field and that's one important thing to learn. It's easy to parse JSON in Java using Jackson or Gson with just integer and string field but you need to do a little more work if your JSON contains a date field because everything in JSON is String but Java is a type based programming language, where Date is a type.

Wednesday, June 20, 2018

How to write a C like Sizeof function in Java

If you have just started learning Java and came from C background then you might have noticed some difference between Java and C programming language e.g. String is an object in Java and not a NULL terminated character array. Similarly, there is is no sizeof() operator in Java. All primitive values have predefined size e.g. int is 4 bytes, char is 2 byte, short is 2 byte, long and float is 8 byte and so on. But if you are missing sizeOf operator then why not let's make it a coding task? If you are Ok, then your next task is to write a method in Java, which can behave like sizeOf() operator/function of C and returns size in bytes for each numeric primitive types i.e. all primitive types except boolean.

Saturday, June 9, 2018

10 All-Time Great Books for Java Programmers - Best of Lot, Must Read

If you are a Java programmer and wondering what to read to improve your knowledge of Java and become a better Java developer then you have come to the right place. In this article, I am going to share some of the best Java books ever written. In fact, this is my list of all time great Java books. They have withstood the test of time and emerges as more and more popular years after years. It doesn't matter if you read them in 2018 or reading them in 2019, you are always going to learn a lot and that's why I call them all time great books.

Wednesday, May 30, 2018

Top 5 Free Agile Courses for Programmers and Software Engineers - Best of Lot

Technology is changing at a rapid pace and market conditions, tough competition, and time-to-market are some of the biggest concerns for today's organizations, especially for technology companies. In order to adapt this fast-changing environment, most of the companies are now using the Agile model of development, testing, and project management. This enables the organizations to efficiently cope with changes and deliver faster and that's why for a programmer or an IT professional, a solid knowledge of Agile methodologies and framework is important. It doesn't matter whether you know the Waterfall model of development or not but it does matter whether you have worked in an Agile environment or not. In order to educate programmers about Agile, I have shared some of the books to learn Agile in past and today I am going to share some of the free online Agile courses you can take to learn Agile methodologies at your own pace.

Saturday, May 19, 2018

Java 8 filter + map + collect + Stream Example

Hello guys, many of my readers emailed me to write a post about map and filter function of Java 8 because they found it difficult to understand and use. Even though I have previously blogged about both map() and filter(), I am writing this post again to explain the concept in more layman's language for better understanding of my readers and fellow Java developers.

The map() function is a method in Stream class which represent a functional programming concept. In simple words, the map() is used to transform one object into other by applying a function.

Tuesday, March 27, 2018

Finally, Java 10 has var to declare Local Variables - JDK 10 New Feature

Hello guys, In this series of new features of Java 10 articles, today,s I am going to talk about probably the most popular and most useful, the introduction of var keyword (well, it's not really a keyword but I'll you later about it) in Java. If I am not wrong, this feature was supposed to come on Java 9 but dropped later. Finally, Java also has var keyword to declare variables which allows you to declare a variable without their type e.g. instead of doing String str = "Java" you can now just say var str = "Java". This may not sound much gain when declaring String or an int variable but consider about complex types with generics, this will surely save a lot of typing and also improves the readability of code.

Monday, March 26, 2018

Java 10 Released - 10 New Features Java Developers Should Know

Hello Guys, while we all are talking about Java 9 and some people are yet to adopt Java 8 in their projects, here comes the new release of Java, the JDK 10. It's available to download now on Oracle's website. This is the first release in the new release schedule, where you have a new Java release every six months, I know it's quite early but that's a reality now. Apart from 6 monthly release, Every 3 years there is an LTS release, which is sort of major Java release. The next LTS release is Java 11 which should be out in September. So you can aim for that. Then you can update three years after that to the next LTS release.

Saturday, March 24, 2018

Top 10 Computer Programming and Sci-Fi Movies Programmers Should Watch

Guys, It's a fun time here, as Holidays are approaching, it's Movie time for many of us. Being a computer programmer, I love movies which are based on programmers life, work, and concept. Thankfully Hollywood is no short of movies based on computers, programming, and geeky technical stuff. Another day, I was pretty bored and when I look back to my DVD collection, I found Inception, Matrix Reloaded, and The Social Network, this all movies are in some way related to computers and technology, which strike me the idea to publish my list of Top 10 Computer programming movies.

Sunday, March 11, 2018

How to Ignore Unknown Properties While Parsing JSON in Java

One of the common problem while parsing JSON in Java using Jackson API is that it fails when your JSON contains unknown properties i.e. your Java class doesn't have all the field corresponding to all JSON properties. For example, if you are consuming JSON from a REST Web Service and tomorrow they added a new field into JSON then your code will break because Jackson will throw UnrecognizedPropertyException and stop parsing JSON. This is troublesome and can cause problems in production if you are not aware. I  have faced this issue when a developer shipped the code to consume data from REST API without proper handling unknown fields.

Monday, February 19, 2018

What is SecurityContext and SecurityContextHolder in Spring Security?

The SecurityContext and SecurityContextHolder are two fundamental classes of Spring Security. The SecurityContext is used to store the details of the currently authenticated user, also known as a principle. So, if you have to get the username or any other user details, you need to get this SecurityContext first. The SecurityContextHolder is a helper class, which provide access to the security context. By default, it uses a ThreadLocal object to store security context, which means that the security context is always available to methods in the same thread of execution, even if you don't pass the SecurityContext object around. Don't worry about the ThreadLocal memory leak in web application though, Spring Security takes care of cleaning ThreadLocal.

Sunday, February 18, 2018

How to fix Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory in Java

This error means your code or any external library you are using in your application is using the SLF4J library, an open source logging library, but it is not able to find the required JAR file e.g. slf4j-api-1.7.2.jar hence it's throwing Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory. If you look at the error, you will see that it's saying it is not able to find the class org/slf4j/LoggerFactory or org.slf4j.LoggerFactory. The package name indicates that it's part of SLF4j, hence you need SLF4j JAR files e.g. slf4j-api-1.7.2.jar in your application's classpath. So, go ahead and download the JAR file from SLFj website or from Maven Central repository and restart your application.

Monday, February 12, 2018

Top 5 Java Design Pattern Courses for Experienced Java Developers

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. 

Monday, January 22, 2018

10 reasons to Learn Scala Programming Language

One of the questions my reader often ask me is, shall I learn Scala? Does Scala has better future than Java, or why Java developer should learn Scala and so on. Well, there can be many reasons for learning Scala e.g. you are forced to learn because it been used in the new company you joined or your solution architect decided to use it, but that's a different story. Here, we'll talk about reasons which encourage Java developers to learn Scala.  Scala has emerged as one the most powerful Java alternative in recent times. It's been the JVM language of choice, leaving Groovy and Clojure way behind, and preferred as the language people want to write most code in.