Further Interview Questions on Java

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.

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.

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.)

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."

What you know about Corba implementation in Java? 
A: Java 1.2 promises full CORBA IDL support. 

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.

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. 

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.

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. 

Why are Java ARchive (JAR) files important? 
A: JAR files bundle .class files and optimize applet downloads. 

Describe what happens when an object is created in Java.
A: 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. 

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?
A: 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.

Do you have a Java Problem?
Ask It in The Java Forum

Java Books
Java Certification, Programming, JavaBean and Object Oriented Reference Books

Return to : Java Programming Hints and Tips

All the site contents are Copyright © www.erpgreat.com and the content authors. All rights reserved.
All product names are trademarks of their respective companies.
The site www.erpgreat.com is not affiliated with or endorsed by any company listed at this site.
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.
 The content on this site may not be reproduced or redistributed without the express written permission of
www.erpgreat.com or the content authors.