Java Interview Questions : Series 1



1. What is the difference between

JDK and JRE?

JDK stands for Java Development Kit. It contains the tools and

libraries for development of Java programs. It also contains

compilers and debuggers needed to compile Java program,

JRE stands for Java Runtime Environment. This is included in JDK.

JRE provides libraries and JVM that is required to run a Java

program.


2. What is Java Virtual Machine

(JVM)?

Java Virtual Machine (JVM) is an abstract machine that executes

Java Bytecode. There are different JVM for different hardware and

software platforms. So JVM is platform dependent. JVM is

responsible for loading, verifying and executing the Bytecode on a

platform.


3. What are the different types of

memory areas allocated by JVM?

In java, JVM allocates memory to different processes, methods and

objects. Some of the memory areas allocated by JVM are:

1. ClassLoader: It is a component of JVM used to load class

files.

2. Class (Method) Area: It stores per-class structures such as

the runtime constant pool, field and method data, and the

code for methods.

3. Heap: Heap is created a runtime and it contains the runtime

data area in which objects are allocated.

4. Stack: Stack stores local variables and partial results at

runtime. It also helps in method invocation and return

value. Each thread creates a private JVM stack at the time

of thread creation.

5. Program Counter Register: This memory area contains the

address of the Java virtual machine instruction that is

currently being executed.

6. Native Method Stack: This area is reserved for all the

native methods used in the application.


4. What is JIT compiler?

Just In Time compiler also known as JIT compiler is used for

performance improvement in Java. It is enabled by default. It is

compilation done at execution time rather earlier.

Java has popularized the use of JIT compiler by including it in

JVM.


5. How Java platform is different

from other platforms?

Java is a platform independent language. Java compiler converts

Java code in to byte code that can be interpreted by JVM. There are

JVM written for almost all the popular platforms in the world.

Java byte code can run on any supported platform in same way.

Where as other languages require libraries compiled for a specific

platform to run.


6. Why people say that Java is 'write

once and run anywhere' language?

You can write Java code on Windows and compile it in Windows

platform. The class and jar files that you get from Windows

platform can run as it is on Unix environment. So it is a truly

platform independent language.

Behind all this portability is Java byte code. Byte code generated by

Java compiler can be interpreted by any JVM. So it becomes much

easier to write programs in Java and expect those to run on any

platform.

Java compiler javac compiles java code and JVM java runs that

code.


7. How does ClassLoader work in

Java?

In Java, ClassLoader is a class that is used to load files in JVM.

ClassLoader loads files from their physical file locations e.g.

Filesystem, Network location etc.

There are three main types of ClassLoaders in Java.

1. Bootstrap ClassLoader: This is the first ClassLoader. It

loads classes from rt.jar file.

2. Extension ClassLoader: It loads class files from jre/lib/ext

location.

3. Application ClassLoader: This ClassLoader depends on

CLASSPATH to find the location of class files. If you

specify your jars in CLASSPATH, then this ClassLoader

will load them.


8. Do you think ‘main’ used for main

method is a keyword in Java?

No, main is just a name of method. There can be multiple methods

with same name main in a class file. It is not a keyword in Java.


9. Can we write main method as

public void static instead of public

static void?

No, you cannot write it like this. Any method has to first specify the

modifiers and then the return value. The order of modifiers can

change.

We can write static public void main() instead of public static void

main().


10. In Java, if we do not specify any

value for local variables, then what

will be the default value of the local

variables?

Java does not initialize local variables with any default value. So

these variables will be just null by default.


11. Let say, we run a java class without

passing any arguments. What will be

the value of String array of

arguments in Main method?

By default, the value of String array of arguments is empty in Java.

It is not null.

Comments

Popular posts from this blog

3 Lines of Code And You Can Download Your Favourite Youtube Video.

Leetcode Problem(Easy) Roman to Integer

Leetcode : (Find Minimum in Rotated Sorted Array)