Most frequent questions In Java Part 1
0) Q: Java and C ++
A: Some of the similarities and differences are in the table:
Features Java | C/C++ |
Pointer No | Yes |
Operator Overload No Typedef, Define, | Yes |
Preprocessors No | Yes |
Structures, Unions No | Yes |
Enums No | Yes |
Functions No (only methods within classes) Yes
Goto statement No Yes
Automatic CoercionsNo( types should be converted explicitly) Yes
Global Variables No. Variable is part of a class Yes
Templates No Private, Protected, Public | Yes |
Inheritance No | Yes |
Default parameters No | Yes |
Garbage Collection Yes | No |
Multi-thread support Yes | No |
Multiple Inheritance
Yes. Supports only interface inheritance and not implementation inheritance!
Yes
Exception Handling
Yes. try/catch must be defined if the function declares that it may throw an exception.
Yes. You may not include the try/catch even if the function throws an exception.
Function Overload Yes Yes
Internationalization Yes Yes
Include of other Objects #import #include
Comments "//","/* */,/** */ "//","/* */"
1) Q: What is the purpose of the toolkit in the Abstract Window Toolkit (AWT)? How does AWT work ?
A: The AWT toolkit is an interface between the abstract window layer and a specific windowing implementation.
2) Q: What is layout manager ? How does it work ?
A: A layout manager is an object that positions and resizes the components in a Container according to some algorithm; for example, the FlowLayout layout manager lays out components from left to right until it runs out of room and then continues laying out components below that row.
3) Q: Advantages and disadvantages of layout manager ?
4) Q: Compare SWING components to standard AWT.
A: Swing is an extension of, and not a replacement for the AWT. There is some overlap between AWT and Swing (for example a Swing JButton component might be viewed as an improved functional replacement for an AWT Button component.) One of the advantages of Swing components is that because the components are not rendered on the screen by the operating system, the look and feel of a component does not change as the application or applet is executed on different platforms running under different operating systems. Furthermore, it is possible to cause Swing components to mimic the look and feel of a specific platform no matter what platform the program is running on. This is known as pluggable look and feel.
Swing components support the JDK 1.1
Delegation Event Model. From an event handling viewpoint, Swing components operate the same as AWT components (except that Swing provides a number of new event types). Many Swing components don't have an AWT counterpart. A number of new and exciting components are included in the Swing library that don't exist in the AWT (tooltips, progress bars, trees, etc.)
5) Q: What is Java Beans ?
A: According to JavaSoft, "A Java Bean is a reusable software component that can be manipulated visually in a builder tool."
6) Q: What you know about Corba implementation in Java ?
A: Java 1.2 promises full CORBA IDL support.
7) Q: What do you know about networking support in Java ?
A: Java supports "low-level" and "high-level" classes. "Low-level" classes provide support for socket programming: Socket, DatagramSocket, and ServerSocket classes. "High-level" classes provide "Web programming": URL, URLEncoder, and URLConnection classes. Networking programming classes ease the programming of network applications, but do not substitute your knowledge of networking. Java networking like anything else in Java is platform-independent.
8) Q: What is it object serialization ?
A: Serialization is a way to convert objects (including complex data structures such as lists and trees) into a stream of bytes.
9) Q: How to make application thread-safe ?
A: You should use the word synchronized to mark the critical section of code. You may also use other methods of thread synchronization (see wait(), notify(), notifyAll() etc.
10) Q: What is it reflection (introspection) ? Why is reflection possible in the Java language?
A: Reflection (introspection) is querying a class about its properties, and operating on methods and fields by the name for a given object instance. Reflection is possible in the Java language because of late binding.
11) Q: Why are Java ARchive (JAR) files important?
A: JAR files bundle .class files and optimize applet downloads.
Following answer may not be correct
12) Describe what happens when an object is created in Java
Several things happen in a particular order to ensure the object is constructed properly:
1. Memory is allocated from heap to hold all instance variables and implementation-specific data of the object and its superclasses. Implemenation-specific data includes pointers to class and method data.
2. The instance variables of the objects are initialized to their default values.
3. The constructor for the most derived class is invoked. The first thing a constructor does is call the consctructor for its superclasses. This process continues until the constrcutor for java.lang.Object is called, as java.lang.Object is the base class for all objects in java.
4. Before the body of the constructor is executed, all instance variable initializers and initialization blocks are executed. Then the body of the constructor is executed. Thus, the constructor for the base class completes first and constructor for the most derived class completes last.
13) In Java, You can create a String object as below : String str = "abc"; & String str = new String("abc");
Why cant a button object be created as : Button bt = "abc" Why is it compulsory to create a button object as: Button bt = new Button("abc"); Why this is not compulsory in String's case.
The main reason you cannot create a button by
Button bt1= "abc";
is because "abc" is a literal string (something slightly different than a String object, by-the-way) and bt1 is a Button object. That simple. The only object in Java that can be assigned a literal String is java.lang.String. Important to not that you are NOT calling a java.lang.String constuctor when you type String s = "abc";
For example
String x = "abc";
String y = "abc"; refer to the same object. While
String x1 = new String("abc"); String x2 = new String("abc"); refer to two different objects.
14) What are the main differences between Java and C++?
Everything is an object in Java( Single root hierarchy as everything gets derived from java.lang.Object)
Java does not have all the complicated aspects of C++ ( For ex: Pointers, templates, unions, operator overloading, structures etc..)
The Java language promoters initially said "No pointers!", but when many programmers questioned how you can work without pointers, the promoters began saying "Restricted pointers." You can make up your mind whether it’s really a pointer or not. In any event, there’s no pointer arithmetic.
There are no destructors in Java. (automatic garbage collection)
Java does not support conditional compile (#ifdef/#ifndef type). Thread support is built into java but not in C++.
Java does not support default arguments. There’s no scope resolution operator :: in Java. Java uses the dot for everything, but can get away with it since you can define elements only within a class. Even the method definitions must always occur within a class, so there is no need for scope resolution there either.
There’s no "goto " statement in Java.
Java doesn’t provide multiple inheritance (MI), at least not in the same sense that C++ does. Exception handling in Java is different because there are no destructors.
Java has method overloading, but no operator overloading. The String class does use the + and += operators to concatenate strings and String expressions use automatic type conversion, but that’s a special built-in case.
Java is interpreted for the most part and hence platform independent.
15) What are interfaces?
Interfaces provide more sophisticated ways to organize and control the objects in your system.
The interface keyword takes the abstract concept one step further. You could think of it as a “pure” abstract class. It allows the creator to establish the form for a class: method names, argument lists, and return types, but no method bodies. An interface can also contain fields, but The interface keyword takes the abstract concept one step further. You could think of it as a “pure” abstract class. It allows the creator to establish the form for a class: method names, argument lists, and return types, but no method bodies. An interface can also contain fields, but
An interface says: “This is what all classes that implement this particular interface will look like.” Thus, any code that uses a particular interface knows what methods might be called for that interface, and that’s all. So the interface is used to establish a “protocol” between classes. (Some object-oriented programming languages have a keyword called protocolto do the same thing.)
15) How can you achieve Multiple Inheritance in Java?
Java's interface mechanism can be used to implement multiple inheritance, with one important difference from c++ way of doing MI: the inherited interfaces must be abstract. This obviates the need to choose between different implementations, as with interfaces there are no implementations.
16) What is the difference between StringBuffer and String class?
A string buffer implements a mutable sequence of characters. A string buffer is like a String, but can be modified. At any point in time it contains some particular sequence of characters, but the length and content of the sequence can be changed through certain method calls.
The String class represents character strings. All string literals in Java programs, such as "abc" are constant and implemented as instances of this class; their values cannot be changed after they are created.
17) Describe, in general, how java's garbage collector works?
The Java runtime environment deletes objects when it determines that they are no longer being used. This process is known as garbage collection.
The Java runtime environment supports a garbage collector that periodically frees the memory used by objects that are no longer needed. The Java garbage collector is a mark-sweep garbage collector that scans Java's dynamic memory areas for objects, marking those that are referenced. After all possible paths to objects are investigated, those objects that are not marked (i.e. are not referenced) are known to be garbage and are collected.
18) What's the difference between == and equals method?
The equals method can be considered to perform a deep comparison of the value of an object, whereas the == operator performs a shallow comparison.
The equals() method compares the characters inside a string object. == operator compares two object references to check whether they refer to the same instances or not.
19) What are abstract classes, abstract methods?
Simply speaking a class or a method qualified with "abstract" keyword is an abstract class or abstract method.
You create an abstract class when you want to manipulate a set of classes through a common interface. All derived-class methods that match the signature of the base-class declaration will be called using the dynamic binding mechanism.
An abstract method is an incomplete method. It has only a declaration and no method body. Here is the syntax for an abstract method declaration: abstract void f();
20) How can you force all derived classes to implement a method present in the base class?
Creating and implementing an interface would be the best way for this situation. Just create an interface with empty methods which forces a programmer to implement all the methods present under it. Another way of achieving this task is to declare a class as abstract with all its methods abstract.
21) What is the difference between an Applet and an Application?
1. Applets can be embedded in HTML pages and downloaded over the Internet whereas Applications have no special support in HTML for embedding or downloading.
2. Applets can only be executed inside a java compatible container, such as a browser or appletviewer whereas Applications are executed at command line by java.exe or jview.exe.
3. Applets execute under strict security limitations that disallow certain operations(sandbox model security) whereas Applications have no inherent security restrictions.
4. Applets don't have the main() method as in applications. Instead they operate on an entirely different mechanism where they are initialized by init() ,started by start(),stopped by stop() or destroyed by destroy ().
Category: Interview Questions in Core Java
0 comments