October 7, 2020

java.util.function.Function implementation using modern java.

In this blog, I will show you the different ways to implement java.util.function.Function interface in modern java. You can watch me code these examples on youtube. First implementation is using implementation keyword in a regular class private class FuncImpl implements Function<Person, Integer>{ @Override public Integer apply(final Person person){ return person.getAge(); } } Second way uses anonymous class for implementation. […]

Read more
February 19, 2019

Wait, notify and notifyall. What is the difference between notify and notifyall.

Q1 :- How does Java maintains a record of threads waiting on an object? Ans :- Each object has a waiting set. Every time a thread  calls wait on an object, that thread gets added in that waiting-set. So, a Set datastructure is used to maintain the record of waiting threads in java. Q2 :- What is the difference […]

Read more
February 17, 2019

Using anonymous class to implement runnable interface in java

You can read about the other ways for implementing runnable interface – using a java class, and using lambda. In this part, we will use anonymous class for doing this. In my opinion, at the time of writing this article, the anonymous class is pretty useless now. If you need an anonymus class then use […]

Read more
February 10, 2019

How to implement java.util.function.DoubleToLongFunction

java.util.function.DoubleToLongFunction is a primitive specialization of Other Functional Interfaces. What it means is , we can get the same functionality using other functional interfaces, but they are going to be slow. Because of boxing and unboxing. If you are dealing with Double and Long wrapper objects then use other functional interface. So, this functional interface is […]

Read more
February 10, 2019

Using java lambda to provide implementation for Runnable interface.

There are many ways to create a thread. One of those ways is implementin Runnable interface. Again there are several ways to provide an implementation for it. One of those ways is, using lambda to provide an implementation. If you don’t know anything about lambda, then you can read it here. You are gonna need […]

Read more
February 3, 2019

Implement runnable interface using a class in java.

Runnable is a Functional Interface. It has one abstract method called run. To make use of this class, we need to provide an implementation for this method. In practice, compiler only needs a non-abstract method. You can provide a empty body and that will be enough. The implementation need not be meaningful. Here is a simple class, […]

Read more
January 29, 2019

Extending Thread Class to create threads in java.

To create Thread, we basically need to provide an implementation for run function. We can do it in two ways. Either we can extend Thread class and override it’s run method or we can implement Runnable interface and provide an implementation for it’s abstract run method. In this article, I am extending Thread class. public class SimpleThread extends Thread { } We have […]

Read more
January 26, 2019

What are effective final variables in java, and where we can use it.

There is a final keyword, which is used to make a reference value permanent. It means – the value can not be changed once defined. Then there is effective final variable. These variables are not declared final. But, depending on the context they can be considered as final. What do i mean from a context? you should […]

Read more