11) What is meant by JVM ?
JVM(Java Virtual Machine) is a run time environment for the compiled java class files. Main function of JVM is to convert byte code(.class file) to machine code and send appropriate commands to underlying machine for execution.
|Compiler translates source code to JVM byte code.||Executes the byte code by running the program.|
|Compiling happens when programmers invoke compiler after the program is writtem.||Interpretation happens at run time|
|For compilation, use command "javac Employee.java". Compilation of java file will generate class file (ex: Employee.class).||Command java Employee, executes the class file (i.e Employee.class)|
13) Can abstract class implements another interface ?
Yes. It's just a special case of implementation by which subclasses are forced to implement the methods.
14) Can abstract class extend another abstract class?
Yes. It is perfectly valid for an abstract class to extend another abstract class.
15) Can a interface extend another interface?
Yes. An interface can extend another interface in Java.
16) What Is Stack?
- Each Java thread have a private JVM stack, created along with thread.
- Stack stores frames. Frames are used for storing data (Variable and Object Data as well as partial results) and to perform operations such as
- Dynamic linking
- Dispatch exceptions when error occurs
- Return values when methods are invoked. Since the stack can't be accessed directly, it push and pop frames.
- It is not mandatory that the Java virtual machine stack had to be continuous.
- JVM throws StackOverflowError, if any computation inside a thread needs larger JVM stack than allocated .
17) What Is Heap?
- When JVM starts, heap is created
- Heap is the runtime data area of the JVM
- It is shared by all the threads inside the JVM
- It allocates memory for all class instances and arrays
- Heap storage for objects is reclaimed by garbage collector when it is not used.
- JVM throws OutOfMemoryError, If a computation needs more heap than what can be supplied by the automatic storage management system.
18) Can you explain about Upcasting and Downcasting in Java ?
- Upcasting : Casting a Sub class to Super class. Upcasting is called as widening.
- Downcasting : Casting a Super class to Sub class. Downcasting is called as narrowing.
19) Can you explain about Implicit and Explicit type casting ?
Implicit casting (widening conversion) :
When JVM encounters a data type of lower size which occupies less memory, it is assigned to a data type of higher size implicitly by the JVM. This is also known as automatic type conversion. For Example
int i = 1; // 4 bytes
double d = i; // 8 bytes
When a data type of higher size which occupies more memory, needs to be assigned to a data type of lower size, it is called explicit casting. This type of casting won't be done implicitly by the JVM. This casting operation should be performed by the programmer. For example
double d = 1.0;
int i = (int) d;
20) Can you explain about markable interface in Java ?
Interfaces with no methods are known as Marker interface. Some of the markable interfaces are