Core Java interview questions
Best Core Java interview questions And Answers
Here are some of the most important Java 10 features:
- Local-Variable Type Inference
- Consolidate the JDK Forest into a Single Repository
- Garbage-Collector Interface
- Parallel Full GC for G1
- Application Class-Data Sharing
- Thread-Local Handshakes
- Heap Allocation on Alternative Memory Devices
- Experimental Java-Based JIT Compiler
- Root Certificates
- Time-Based Release Versioning
|1.||Stands for Java Development Kit||Stands for Java Virtual machine|
|2.||Provides environment for developing and running Java programs.||Interprets byte code into the machine code|
|3.||Includes development Tools||Allows platform-independent coding|
|1.||Provides runtime environment for Java apps and programs||Stands for Java Runtime Environment|
|2.||An integral part of JDK and JRE||Provides an environment to run java programs only|
|3.||Responsible for executing a java program||Part of JRE distribution|
Java does not support multiple inheritances because it may lead to overriding of methods when extended classes have the same method names.
Also, supporting multiple inheritances through classes may give rise to ambiguity errors. However, multiple inheritance is possible through the interface.
Java is not a pure OOP language as it uses primitive datatypes such as int float char double. A pure OOP language should use nothing but objects, and everything should be a class. But in Java, not everything is a class, such as byte, int, float, char, etc. This is the reason Java is a not a pure OOP language.
|1.||Used to find path of classes||Used to find executables|
|2.||Refers to environment||Refers to system|
From version JDK6 onwards, the main method is mandatory to start code execution. If your program does not contain "main" method, you will get a run-time error. Please note that in the absence of "main" method your entire program will successfully compile but it will throw an error at runtime.
The static import feature allows the static member of a class to be accessed directly without using the qualified name. The biggest advantage of this feature is that less coding will be required if you have access to a static member.
It is a reference type that is similar to a class in Java. It is a collection of abstract methods that is used for full abstraction. An interface may have methods and variables but the methods in interface are abstract by default.
|1.||Can have members, constants, defined methods and method stubs||Can only have methods stubs and constants|
|2.||Methods and members can be defined with any visibility||Methods must be defined as public|
|3.||May contain non-final variables.||Variables declared are by default final|
It is an interfaces that has no field or methods (empty interface). It helps in conveying to the JVM that the class that is implementing the interface of a category will have special behavior. It is also known as tag interface.
There are 4 major marker interfaces:
- Searilizable interface
- Cloneable interface
- Remote interface
- ThreadSafe interface
Annotation is a tag in Java that represents metadata attached with a class, method, interface, or field. It provides supplement information to be used by compiler and JVM. Annotations do not change a compiled program's action and they are not pure comments.
If you are preparing for interviews, you can check core java interview questions and answers for more insight.
It is a class that is a member of another class.
There are 4 types of inner classes:
- Nested Inner class
- Method Local inner classes
- Anonymous inner classes
- Static nested classes
Class loaders help in loading classes during runtime to the Java Virtual Machine. In addition, they are part of the Java Runtime Environment. Hence, due to class loaders, JVM is not required to know the underlying files for running programs.
There are 3 types of built-in Class Loaders:
- Bootstrap Class Loader: Loads internal classes
- Extensions Class Loader: Loads classes from extensions directory
- System Class Loader: Loads classes from the current classpath
Java will automatically create default constructors if there are no default constructors written by you.
The default constructor will call parent default constructor and initialize member data variable to default values.
It is the process through which Java programs perform memory management. When the Java programs run on JVM, objects get created in a part of the memory that is dedicated to program. When objects are no longer needed, the garbage collector finds and deletes them to free up program memory.
The process of converting an object into byte sequence that can be persisted to a disk or can be sent through streams is called Serialization.
The reverse process of Serialization, i.e. creating objects from a sequence of bytes is called deserialization.
Java is pass by value because variables are references and their value is passed to the methods.
This question was asked in a lot of latest core java interview questions.
When the break statement is inside a loop, the loop gets terminated and the program resumes at the next statement after the loop.
The continue statement can be used in the loop control structure. It causes the loop to jump to the next iteration.
It is the only conditional operator that can take three operands and assists in evaluating Boolean expressions. It is a replacement for if-then-else statement and is used a lot to replace the switch. Its goal s to decide what value should the variable be assigned.
It is the design technique for implementing has-a relationship in a class. You can use java inheritance or Object composition for reusing the code. You can achieve Java composition by using instance variables that are referring to other objects.
Encapsulation is one of the four OOP concepts. It is a way of wrapping variables and code on data as a single unit. The class variables are hidden from other classes, and can be accessed only through their current class. Therefore, this method is also called data hiding.
|2.||For logic operations, it is slow||Thread-safe||Faster and more efficient|
|3.||Use it when immutable structure is required.||Use it for creating mutable character sequence but string changes must be synchronized||Use it for creating mutable character sequence|
Java Access Specifiers regulate access to field, class, and method. Also called as visibility specifiers, they determine if a method or field can be used by another method in some other class. An important part of OOP, they are also used to restrict access.
There are four types of Access Specifiers:
In an ordered collection, the elements have a specific order, which is independent of the value. For example a List.
In the sorted collection, the collection has an order, and the order depends on the value of the element. For example a SortedSet.
Developers should know everything about core java programs before their next interview.