Java Interview Questions asked in Citibank

Java Interview Questions asked in Citibank
Download Java Interview Questions asked in Citibank PDF

Below are the list of Best Java Interview Questions asked in Citibank and Answers


It is a process in java through which multiple threads can be executed simultaneously. A thread can be explained as a lightweight sub-process, it is the smallest unit of processing. Both multiprocessing and multithreading are done to achieve multitasking in java. The reason why most of the developers use multithreading over multiprocessing is that the threads use a shared memory area. Because they don’t allocate a separate area in the memory and they save a lot of space in the memory because of that.

Differences between overloading and overriding

Overloading is performed at compilation time.Overriding is performed at runtime
Overloading is also called static binding.Overriding is also called dynamic binding.
Overloading is done within the class.Overriding occurs in between two classes that have an IS-A (inheritance) relationship.
It is an example of compile-time polymorphism.It is an example of run time polymorphism.

Overloading Example:

class ExampleClass{  
static int sum(int a,int b){return a+b;}  
static int sum(int a,int b,int c){return a+b+c;}  

Overriding Example:

class Animal{  
	void eat(){System.out.println("eating...");}  
class Dog extends Animal{  
	  void eat(){System.out.println("eating bread...");}  

The Transient variable is a modifier that is used in the process of serialization. If the developer doesn’t want to store the value of a particular variable in a file at the time of serialization then they use the Transient keyword. JVM ignores the original value of the variable and saves the default value of that variable data type when it comes across the Transient keyword. It also plays an important role to meet security constraints.

Executor Design pattern can be defined as a particular type of design pattern that serves the purpose of decoupling the execution of a task from the real task taken by the user with the help of executors. Executors are specially designed to provide factory methods. These methods can be further used in the creation of ThreadPools of worker threads. It decouples the submission of a command from the execution of that very command.

Difference between HashSet and HashMap are given below:

The set interface is implemented by the HashSet class.The map interface is implemented by the HashMap class.
Objects like elements or values are stored inside the HashSet. For example, if there is HashSet of string elements then it can portray a set of HashSet elements.Key and value pairs are stored in HashMap. In other words, the mapping of Key and value is maintained by HashMap.
Duplicate elements are not allowed in HashSet, i.e., no duplicate values can be stored in it.Duplicate Key is not allowed in HashMap, but duplicate values can be stored.

The externalizable interface is a special type of interface that enables the user to define personalized rules and mechanisms for the purpose of serialization. Users can create their own contracts as well as protocols for serialization. This gives the power of deciding what to store and what not to store in the stream. Here, the user has to mention what they can put in the program as fields and variables explicitly.

The enhancement of HashMap in Java is known as ConcurrentHashMap. Both of the Java classes have lots of similarities but ConcurrentHashMap works more effectively during runtime when you are trying to modify. One can also say that it is an alternative to HashMap in Java 1.5. It provides more safety and security in a multithreaded environment along with better performance. Unlike HashMap it doesn't lock the whole map instead it goes with a portion of the map. You can operate multiple threads without any complication on a single object. The Default level of concurrency in it is 16 and as per the concurrency level, there is a division of object into segments.


Autoboxing is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes. For example, converting an int to an Integer, a double to a Double, and so on. If the conversion goes the other way, this is called unboxing.

Here is the simplest example of autoboxing:

Character ch = 'a';

There are mainly three types of database indexes, they are:

  • Clustered Indexing
  • Non-Clustered or Secondary Indexing
  • Multilevel Indexing

JavaFX is a platform upon which different desktop applications or software are created and delivered. It is also a rich Internet application in short RIAs running over many types of devices. JavaFX is designed to be a perfect replacement for Swing as the standard Graphics User Interface library for Java SE. Nevertheless, the two software platforms are part of the future. JavaFX supports Linux, Web browsers, macOS, desktop computers and Microsoft Windows. After the launching of JDK 11 in the year, 2018, this software platform is part of OpenJDK. The OpenJDK is open-source under the OpenJFX project.