Core Java Study guide and interview questions - Part 6

This
is the 6th part of the 500+ Core JAVA interview questions and answers.
These questions can also be used as a quick study guide for preparing
for an interview or for any Core JAVA concepts revision. These questions
cover all the topics in core JAVA from basics to advanced concepts.

51 What is constructor chaining ?

When a constructor of a class is executed it will automatically call the default constructor of the super class (if no explicit call to any of the super class constructor) till the root of the hierarchy.

52.What is a void return type ?

A void indicates that the method will not return anything.

53 What is the difference between static and non static variables ?

A static variable is associated with the class as a whole rather than with specific instances of a class. There will be only one value for static variable for all instances of that class. Non-static variables take on unique values with each object instance.

54 What are the restrictions placed on overriding a method ?

The overridden method have the exact signature of the super class method, including the return type. The access specified cannot be less restrictive than the super class method. We cannot throw any new exceptions in overridden method.

55 What is the difference between notify and notifyAll method ?

notify wakes up a single thread that is waiting for object's monitor. If any threads are waiting on this object, one of them is chosen to be awakened. The choice is arbitrary and occurs at the discretion of the implementation. notifyAll Wakes up all threads that are waiting on this object's monitor. A thread waits on an object's monitor by calling one of the wait methods.

56 What is casting ?

Casting means converting one type to another. There are mainly two types of casting. Casting between primitive types and casting between object references. Casting between primitive numeric types is used to convert larger data types to smaller data types. Casting between object references is used to refer to an object by a compatible class, interface, or array type reference.

57 What is a ResourceBundle class?

The ResourceBundle class is used to store locale-specific resources that can be loaded by a program to create the program's appearance to the particular locale in which it is being run.

58 When does a compiler supplies a default constructor for a class?

If there is no other constructor exist in a class, the compiler will supply a default constructor.

59.What is the difference between == and equals ?

The equals method can be considered to perform a deep comparison of the value of an object, whereas the == operator performs a shallow comparison. If we are not overriding the equals method both will give the same result. == will is used to compare the object references. It is used to check whether two objects are points to the same reference.

60. What are the different ways in which a thread can enter into waiting state?

There are three ways for a thread to enter into waiting state. By invoking its sleep() method, by blocking on I/O, by unsuccessfully attempting to acquire an object's lock, or by invoking an object's wait() method.

61. What is the difference between the prefix and postfix forms of the ++ operator?

The prefix form first performs the increment operation and then returns the value of the increment operation. The postfix form first returns the current value of the expression and then performs the increment operation on that value.

62. What is numeric promotion?

Numeric promotion is the conversion of a smaller numeric type to a larger numeric type. In numerical promotion, byte, char, and short values are converted to int values. The int, long and float values are converted to the desired types if required.

63.What is the difference between RandomAccessFile and File?

The File class contains information the files and directories of the local file system. The RandomAccessFile class contains the methods needed to directly access data contained in any part of a file.

64.What is the difference between a switch statement and an if statement?

If statement is used to select from two alternatives. It uses a boolean expression to decide which alternative should be executed. The expression in if must be a boolean value. The switch statement is used to select from multiple alternatives. The case values must be promoted to an to int value.

65.What is hashCode?

The hashcode of a Java Object is simply a number (32-bit signed int) that allows an object to be managed by a hash-based data structure. A hashcode should be, equal for equal object (this is mandatory!) , fast to compute based on all or most of the internal state of an object, use all or most of the space of 32-bit integers in a fairly uniform way , and likely to be different even for objects that are very similar. If you are overriding hashCode you need to override equals method also.

66.What is an I/O filter?

An I/O filter is an object that reads from one stream and writes to another, usually altering the data in some way as it is passed from one stream to another.

67.What is final ?

A final is a keyword in jav If final keyword is applied to a variable, then the variable will become a constant. If it applied to method, sub classes cannot override the method. If final keyword is applied to a class we cannot extend from that class.

68.How can we create a thread?

A thread can be created by extending Thread class or by implementing Runnable interface. Then we need to override the method public void run().

69.What is class loader in java ?

A class loader is a class that is responsible for loading the class. All JVM contains one class loader called primordial class loader.

70 What is the difference among JVM Spec, JVM Implementation, JVM Runtime ?

The JVM spec is the blueprint for the JVM generated and owned by Sun. The JVM implementation is the actual implementation of the spec by a vendor and the JVM runtime is the actual running instance of a JVM implementation

71.What are synchronized methods and synchronized statements?

Synchronized methods are methods that are declared with the keyword synchronized. A thread executes a synchronized method only after it has acquired the lock for the method's object or class. Synchronized statements are similar to synchronized methods. It is a block of code declared with synchronized keyword. A synchronized statement can be executed only after a thread has acquired the lock for the object or class referenced in the synchronized statement.

72.What do you mean by immutable ? How to create an immutable object ?

Immutability means an object cannot be modified after it has been initialized. There will not be any setter methods in an immutable class. And normally these classes will be final.

73.What is the difference between Vector and ArrayList ?

Vector is synchronized, ArrayList is not. Vector is having a constructor to specify the incremental capacity. But ArrayList don't have. By default Vector grows by 100% but ArrayList grows by 50% only.

74.What is the difference between Hashtable and HashMap ?

Hashtable is synchronized . but HashMap is not synchronized. Hashtable does not allow null values , but HashMap allows null values.

75.Why java is said to be pass-by-value ?

When assigning an object to a variable, we are actually assigning the memory address of that object to the variable. So the value passed is actually the memory location of the object. This results in object aliasing, meaning you can have many variables referring to the same object on the heap.

76.How is the difference between thread and process?

A process runs in its own address space. No two processes share their address space. Threads will run in the same address space of the process that owns them.

77.What is object pooling?

Creating a large number of identical short lived objects is called object pooling. This helps to minimize the need of garbage collection and makes the memory use more effective.

78.What is object cloning?

It is the process of duplicating an object so that two identical objects will exist in the memory at the same time.

79.What are the access modifiers available in Java ?

Access modifier specify where a method or attribute can be used. Public is accessible from anywhere. Protected is accessible from the same class and its subclasses. Package/Default are accessible from the same package. Private is only accessible from within the class.

80.What is garbage collection?

Garbage collection is the process of releasing memory used by unreferenced objects. It relieves the programmer from the process of manually releasing the memory used by objects .

81.What is a weak reference ?

A weak reference is the one that does nor prevent the referenced object from being garbage collected. The weak reference will not keep the object that it refers to alive. A weak reference is not counted as a reference in garbage collection. This will make the memory use more effective.

82.What is a Dictionary?

Dictionary is a parent class for any class that maps keys to values., In a dictionary every key is associated with at most one value.

83.What is the disadvantage of garbage collection?

It adds an overhead that can affect performance. Additionally there is no guarantee that the object will be garbage collected.

84.What is a marker interface ?

An interface that contains no methods. Eg: Serializable, Cloneable, SingleThreadModel etc. It is used to just mark java classes that support certain capability.

85.What are tag interfaces?

Tag interface is an alternate name for marker interface.

86.What are the restrictions placed on static method ?

We cannot override static methods. We cannot access any object variables inside static method. Also the this reference also not available in static methods.

87.What is JIT?

JIT stands for Just In Time compiler. It compiles java byte code to native code.

88.What is java byte code?

Byte code is an sort of intermediate code. The byte code is processed by virtual machine.

89.What is method overloading?

Method overloading is the process of creating a new method with the same name and different signature.

90.What is method overriding?

Method overriding is the process of giving a new definition for an existing method in its child class.

91.What is finalize() ?

Finalize is a protected method in jav When the garbage collector is executes , it will first call finalize( ), and on the next garbage-collection it reclaim the objects memory. So finalize( ), gives you the chance to perform some cleanup operation at the time of garbage collection.

92.What is JAR file ?

JAR stands for Java Archive. This is a file format that enables you to bundle multiple files into a single archive file. A jar file will contains a manifest.mf file inside META-INF folder that describes the version and other features of jar file.

93.What is deadlock?

Deadlock is a situation when two threads are waiting on each other to release a resource. Each thread waiting for a resource which is held by the other waiting thread.

94.What is internationalization?

Internationalization is the process of designing an application so that it can be adapted to various languages and regions without changes.

95.What is classpath?

Classpath is the path where Java looks for loading class at run time and compile time.

96.What is path?

It is an the location where the OS will look for finding out the executable files and commands.

97.What is the difference between Iterator and Enumeration?

Iterator differ from enumeration in two ways Iterator allow the caller to remove elements from the underlying collection during the iteration with well-defined semantics. And , method names have been improved.

98.Why Java is not fully objective oriented ?

Due to the use of primitives in java, which are not objects.

99. What is multi-threading?

Multi-threading is the scenario where more than one threads are running.

100. What is the difference between URL and URLConnection?

A URL represents the location of a resource, and a URLConnection represents a link for accessing or communicating with the resource at the location.

101. What are the two important TCP Socket classes?

ServerSocket and Socket. ServerSocket is useful for two-way socket communication. Socket class help us to read and write through the sockets. getInputStream() and getOutputStream() are the two methods available in Socket class.