General Questions about Java
- What is JVM? Why is Java called the Platform Independent Programming Language?
- What is the Difference between JDK and JRE?
- What does the “static” keyword mean? Can you override the private or static methods in Java?
- Can you access non-static variables in a static context?
- What are the Data Types supported by Java? What are Autoboxing and Unboxing?
- What is Function Overriding and Overloading in Java?
- What is a Constructor, Constructor Overloading in Java, and Copy-Constructor?
- Does Java support multiple inheritances?
- What is the difference between an Interface and an Abstract class?
- What is pass by reference and pass by values?
What is JVM? Why is Java called the Platform Independent Programming Language?
A Java virtual machine (JVM) is a process virtual machine that can execute Java bytecode. Each Java source file is compiled into a bytecode file, which is executed by the JVM. Java was designed to allow application programs to be built that could be run on any platform, without having to be rewritten or recompiled by the programmer for each separate platform. A Java virtual machine makes this possible because it is aware of the specific instruction lengths and other particularities of the underlying hardware platform.What is the Difference between JDK and JRE?
The Java
Runtime Environment (JRE) is basically the Java Virtual Machine (JVM) where
your Java programs are being executed. It also includes browser plugins for
applet execution. The Java Development Kit (JDK) is the full-featured Software
Development Kit for Java, including the JRE, the compilers and tools (like
JavaDoc, and Java Debugger), in order for a user to develop, compile and
execute Java applications.
What does the “static” keyword mean? Can you override the private or static methods in Java?
The static
keyword denotes that a member variable or method can be accessed, without
requiring an instantiation of the class to which it belongs. A user cannot
override static methods in Java, because method overriding is based upon dynamic
binding at runtime and static methods are statically binded at compile time. A
static method is not associated with any instance of a class so the concept is
not applicable.
Can you access non-static variables in a static context?
A static
variable in Java belongs to its class and its value remains the same for all
its instances. A static variable is initialized when the class is loaded by the
JVM. If your code tries to access a non-static variable, without any instance,
the compiler will complain, because those variables are not created yet and
they are not associated with any instance.
What are the Data Types supported by Java? What are Autoboxing and Unboxing?
The eight
primitive data types supported by the Java programming language are:
• byte
• short
• int
• long
• float
• double
• boolean
• char
Autoboxing
is the automatic conversion made by the Java compiler between the primitive types
and their corresponding object wrapper
classes. For example, the compiler converts an int to an Integer, a double to a
Double, and so on. If the conversion goes the other
way, this operation is called unboxing.
What is Function Overriding and Overloading in Java?
Method
overloading in Java occurs when two or more methods in the same class have the
exact same name, but different parameters. On the other hand, method overriding
is defined as the case when a child class redefines the same method as a parent
class. Overridden methods must have the same name, argument list, and return
type. The overriding method may not limit the access of the method it
overrides.
What is a Constructor, Constructor Overloading in Java, and Copy-Constructor?
A
constructor gets invoked when a new object is created. Every class has a
constructor. In case the programmer does not provide a constructor for a class,
the Java compiler (Javac) creates a default constructor for that class. The
constructor overloading is similar to method overloading in Java. Different
constructors can be created for a single class. Each constructor must have its own
unique parameter list. Finally, Java does support copy constructors like C++,
but the difference lies in the fact that Java doesn’t create a default copy
constructor if you don’t write your own.
Does Java support multiple inheritances?
No, Java
does not support multiple inheritance. Each class is able to extend only on one
class but is able to implement more than one interface.
What is the difference between an Interface and an Abstract class?
Java
provides and supports the creation both of abstract classes and interfaces.
Both implementations share some common characteristics, but they differ in the
following features:
• All
methods in an interface are implicitly abstract. On the other hand, an abstract
class may contain both abstract and nonabstract
methods.
• A class
may implement a number of Interfaces, but can extend only one abstract class.
• In order
for a class to implement an interface, it must implement all its declared
methods. However, a class may not implement
all
declared methods of an abstract class. Though, in this case, the subclass must
also be declared as abstract.
• Abstract
classes can implement interfaces without even providing the implementation of
interface methods.
• Variables
declared in a Java interface is by default final. An abstract class may contain
non-final variables.
• Members
of a Java interface are public by default. A member of an abstract class can
either be private, protected, or public.
• An
interface is absolutely abstract and cannot be instantiated. An abstract class
also cannot be instantiated but can be invoked if it contains the main method.
What is pass by reference and pass by values?
When an
object is passed by value, this means that a copy of the object is passed.
Thus, even if changes are made to that object, it doesn’t affect the original
value. When an object is passed by reference, this means that the actual object
is not passed, rather a reference of the object is passed. Thus, any changes
made by the external method, are also reflected in all places.
What is the Difference between JDK and JRE?
The Java
Runtime Environment (JRE) is basically the Java Virtual Machine (JVM) where
your Java programs are being executed. It also includes browser plugins for
applet execution. The Java Development Kit (JDK) is the full-featured Software
Development Kit for Java, including the JRE, the compilers and tools (like
JavaDoc, and Java Debugger), in order for a user to develop, compile and
execute Java applications.
What does the “static” keyword mean? Can you override the private or static methods in Java?
The static
keyword denotes that a member variable or method can be accessed, without
requiring an instantiation of the class to which it belongs. A user cannot
override static methods in Java, because method overriding is based upon dynamic
binding at runtime and static methods are statically binded at compile time. A
static method is not associated with any instance of a class so the concept is
not applicable.
Can you access non-static variables in a static context?
A static
variable in Java belongs to its class and its value remains the same for all
its instances. A static variable is initialized when the class is loaded by the
JVM. If your code tries to access a non-static variable, without any instance,
the compiler will complain, because those variables are not created yet and
they are not associated with any instance.
The eight
primitive data types supported by the Java programming language are:
• byte
• short
• int
• long
• float
• double
• boolean
• char
Autoboxing is the automatic conversion made by the Java compiler between the primitive types and their corresponding object wrapper classes. For example, the compiler converts an int to an Integer, a double to a Double, and so on. If the conversion goes the other way, this operation is called unboxing.
What is Function Overriding and Overloading in Java?
Method
overloading in Java occurs when two or more methods in the same class have the
exact same name, but different parameters. On the other hand, method overriding
is defined as the case when a child class redefines the same method as a parent
class. Overridden methods must have the same name, argument list, and return
type. The overriding method may not limit the access of the method it
overrides.
What is a Constructor, Constructor Overloading in Java, and Copy-Constructor?
A
constructor gets invoked when a new object is created. Every class has a
constructor. In case the programmer does not provide a constructor for a class,
the Java compiler (Javac) creates a default constructor for that class. The
constructor overloading is similar to method overloading in Java. Different
constructors can be created for a single class. Each constructor must have its own
unique parameter list. Finally, Java does support copy constructors like C++,
but the difference lies in the fact that Java doesn’t create a default copy
constructor if you don’t write your own.
Does Java support multiple inheritances?
No, Java
does not support multiple inheritance. Each class is able to extend only on one
class but is able to implement more than one interface.
What is the difference between an Interface and an Abstract class?
Java
provides and supports the creation both of abstract classes and interfaces.
Both implementations share some common characteristics, but they differ in the
following features:
• All
methods in an interface are implicitly abstract. On the other hand, an abstract
class may contain both abstract and nonabstract
methods.
• A class
may implement a number of Interfaces, but can extend only one abstract class.
• In order
for a class to implement an interface, it must implement all its declared
methods. However, a class may not implement
all
declared methods of an abstract class. Though, in this case, the subclass must
also be declared as abstract.
• Abstract
classes can implement interfaces without even providing the implementation of
interface methods.
• Variables
declared in a Java interface is by default final. An abstract class may contain
non-final variables.
• Members
of a Java interface are public by default. A member of an abstract class can
either be private, protected, or public.
• An
interface is absolutely abstract and cannot be instantiated. An abstract class
also cannot be instantiated but can be invoked if it contains the main method.
What is pass by reference and pass by values?
When an
object is passed by value, this means that a copy of the object is passed.
Thus, even if changes are made to that object, it doesn’t affect the original
value. When an object is passed by reference, this means that the actual object
is not passed, rather a reference of the object is passed. Thus, any changes
made by the external method, are also reflected in all places.
No comments:
Post a Comment