Scheduling Task using Timer in Java

Java provides class called Timer using which you can schedule task at specific intervals.

Signature of Schedule method of Timer class follows as 
schedule(TimerTask task, Date firstTime, long period)

Here, task is the task to be executed
firstTime is firstTime at which task to be executed first
period is interval time in milliseconds at which task will be executed automatically at this interval.

Creating Thread using Extend and Runnable in Java

In Java, You can create thread using 2 ways.

1. Using extend Thread
  •  MyThread t1 = new MyThread("Thread t1"); 
  • where MyThread is class which extends Java's Thread Class.
2. Using implements Runnable
  •    MyRunnable runnable = new Runnable();
  •    Thread t1 = new Thread(runnable,"Thread t1");   
  •     where MyRunnable is class which implements Runnable Interface.

Implement your own LinkedList using Java

LinkedList consist of Nodes where each Node represent two things. One is Data and other is reference to Next node.

Let's check How you can create your own LinkList Implementation :)
  1. Create Node class containing two things. Object (basically data which node will hold) and Node which is reference to Next Node
  2. Create Your Own linkedList class which will have following methods.
    1. add(Object data) - add element to tail of LinkedList
    2. add(Object data,int index) - create new Node and add that new node containing given data at specific index.

Immutable Collections Vs Unmodifiable Collections in Java

Unmodifiable Collection is kind of collection which is readonly view of Collections. You can not do modification into this kind of collections. They always present Latest Value. If any of source collection changes then unmodifiable collection contains those changes.

While Immutable Collections are such kind of Collection which is readonly copy of Collections. They can not be modified. if any of source collection changes then immutable collections will not reflect with changes.

Runtime Polymorphism in Java

Polymorphism means ability to take more than one form. In RunTime Polimorphism resolution to call to method is determined at runtime rather than compile time.
  • Method are overriden but data member are not so runtime polymorphism is not applied to data members

Insertion Sort Algorithm using Java

Insertion Sort is simple sort algorithm. In insertion sort, we pickup element and find correct place of element where it needs to be inserted and insert that element at correct place by moving elements to right side.We will keep doing same until we have all sorted elements available on left side.

Quick Sort Algorithm using Java

Quick Sort works on Divide and Conquer algorithm. Here, given array is divided into two parts, left and right. and both array are being sorted individually. After then we combine and will have sorted array.

How it works:
  1. Pick up any element in Array. ex. middle element of array. we called this one as Pivot.
  2. All elements which are smaller than Pivot are placed in one array and All elements which are larger than pivot are placed in another array
  3. Using recursion sort both array using quicksort
  4. Combine array as mentioned below.

Bubble Sort Algorithm using Java

In Bubble Sort, smaller elements bubbles to top of list in ascending sorting hence it's called Bubble Sort.

How it works :
  1. In Bubble Sort, You take first element and second element initially and compare both elements.
  2. If second element is smaller than first element then you swipe places. how? using temp :) as below
  3. You keep doing same meaning stepping through array and comparing element with pair of adjacent elements until no swapping required and you have sorted array

Binary Search Algorithm using Java

Binary search works faster than sequential search.It search on sorted elements.
In Binary Search, Let's say You have an array and you want to search specific item in array

How it Works :
  1. Initialize low=0 and high as max length of search array - 1.
  2. while low<=high each item you, take middle element of array and if given searchItem is less than middle element then you need to search in array of elements array which are less than middle element. Hence, high = middle - 1

Sequential Search Algorithm using Java

Sequential Search is simplest algorithm. You try to search given element in given collections sequentially and return only if you found element.

Building Application with Spring Boot

Spring Boot makes very easy to build standalone as well as production grade Spring based application. I found features like "Embedded Tomcat and Jetty. no need to deploy war. also XML based configuration eliminated" - interesting !

Spring Boot Features :
  • Create Stand Alone Spring based Application
  • No need for XML Configuration
  • Embedded Tomcat and Jetty (no need to deploy war)
  • Configure Spring Automatically whenever possible
  • Maven Configuration simplified
  • Provide production ready features like health check and externalized Configuration.

Hibernate Named Queries Example

Hibernate provides @NamedQueries template using which you can associate unique query name to query.
Since Named Queries are global access , their name should be unique. You can use Named Queries in XML Mappings or using Annotation.

If You are using XML instead of annotation then you can add Named Queries as below in Hibernate hbm.xml file. It should be after Class tags.

       <![CDATA[from Customer cust where cust.customerType = :customerType]]>


What is Javaassist?

Javaassist stand for Java Programming Assistance. It's java library providing means to manipulate java bytecode. 
  • It enables java program to create new java classes at runtime and to modify classes before JVM loads it.
  • It's sub project of Jboss.