Term
What is the difference between an Interface and an Abstract class? |
|
Definition
An abstract class can have instance methods that implement a default behavior. An Interface can only declare constants and instance methods, but cannot implement default behavior and all methods are implicitly abstract. An interface has all public members and no implementation. An abstract class is a class which may have the usual flavors of class members (private, protected, etc.), but has some abstract methods. |
|
|
Term
What is the purpose of garbage collection in Java, and when is it used? |
|
Definition
The purpose of garbage collection is to identify and discard objects that are no longer needed by a program so that their resources can be reclaimed and reused. A Java object is subject to garbage collection when it becomes unreachable to the program in which it is used. |
|
|
Term
Describe synchronization in respect to multithreading. |
|
Definition
With respect to multithreading, synchronization is the capability to control the access of multiple threads to shared resources. Without synchonization, it is possible for one thread to modify a shared variable while another thread is in the process of using or updating same shared variable. This usually leads to significant errors. |
|
|
Term
Explain different way of using thread? |
|
Definition
The thread could be implemented by using runnable interface or by inheriting from the Thread class. The former is more advantageous, 'cause when you are going for multiple inheritance..the only interface can help. |
|
|
Term
What are pass by reference and passby value? |
|
Definition
Pass By Reference means the passing the address itself rather than passing the value. Passby Value means passing a copy of the value to be passed. |
|
|
Term
|
Definition
Map is Interface and Hashmap is class that implements that. |
|
|
Term
Difference between HashMap and HashTable? |
|
Definition
The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls. (HashMap allows null values as key and value whereas Hashtable doesnt allow). HashMap does not guarantee that the order of the map will remain constant over time. HashMap is unsynchronized and Hashtable is synchronized. |
|
|
Term
Difference between Vector and ArrayList? |
|
Definition
Vector is synchronized whereas arraylist is not. |
|
|
Term
Difference between Swing and Awt? |
|
Definition
AWT are heavy-weight componenets. Swings are light-weight components. Hence swing works faster than AWT. |
|
|
Term
What is the difference between a constructor and a method? |
|
Definition
A constructor is a member function of a class that is used to create objects of that class. It has the same name as the class itself, has no return type, and is invoked using the new operator. A method is an ordinary member function of a class. It has its own name, a return type (which may be void), and is invoked using the dot operator. ------------ Constructors must have the same name as the class and can not return a value. They are only called once while regular methods could be called many times and it can return a value or can be void. |
|
|
Term
|
Definition
Some of the collection classes provide traversal of their contents via a java.util.Iterator interface. This interface allows you to walk through a collection of objects, operating on each object in turn. Remember when using Iterators that they contain a snapshot of the collection at the time the Iterator was obtained; generally it is not advisable to modify the collection itself while traversing an Iterator. |
|
|
Term
State the significance of public, private, protected, default modifiers both singly and in combination and state the effect of package relationships on declared items qualified by these modifiers. |
|
Definition
public : Public class is visible in other packages, field is visible everywhere (class must be public too) private : Private variables or methods may be used only by an instance of the same class that declares the variable or method, A private feature may only be accessed by the class that owns the feature. protected : Is available to all classes in the same package and also available to all subclasses of the class that owns the protected feature.This access is provided even to subclasses that reside in a different package from the class that owns the protected feature. default :What you get by default ie, without any access modifier (ie, public private or protected).It means that it is visible to all within a particular package. |
|
|
Term
What is an abstract class? |
|
Definition
Abstract class must be extended/subclassed (to be useful). It serves as a template. A class that is abstract may not be instantiated (ie, you may not call its constructor), abstract class may contain static data. Any class with an abstract method is automatically abstract itself, and must be declared as such. A class may be declared abstract even if it has no abstract methods. This prevents it from being instantiated. |
|
|
Term
|
Definition
Static means one per class, not one for each object no matter how many instance of a class might exist. This means that you can use them without creating an instance of a class.Static methods are implicitly final, because overriding is done based on the type of the object, and static methods are attached to a class, not an object. A static method in a superclass can be shadowed by another static method in a subclass, as long as the original method was not declared final. However, you can't override a static method with a nonstatic method. In other words, you can't change a static method into an instance method in a subclass. |
|
|
Term
|
Definition
A final class can't be extended ie., final class may not be subclassed. A final method can't be overridden when its class is inherited. You can't change value of a final variable (is a constant). |
|
|
Term
What's the difference between an interface and an abstract class? Also discuss the similarities. |
|
Definition
Abstract class is a class which contain one or more abstract methods, which has to be implemented by sub classes. Interface is a Java Object containing method declaration and doesn't contain implementation. The classes which have implementing the Interfaces must provide the method definition for all the methods Abstract class is a Class prefix with a abstract keyword followed by Class definition. Interface is a Interface which starts with interface keyword. Abstract class contains one or more abstract methods. where as Interface contains all abstract methods and final declarations Abstract classes are useful in a situation that Some general methods should be implemented and specialization behavior should be implemented by child classes. Interfaces are useful in a situation that all properties should be implemented.
Differences are as follows:
* Interfaces provide a form of multiple inheritance. A class can extend only one other class. * Interfaces are limited to public methods and constants with no implementation. Abstract classes can have a partial implementation, protected parts, static methods, etc. * A Class may implement several interfaces. But in case of abstract class, a class may extend only one abstract class. * Interfaces are slow as it requires extra indirection to to find corresponding method in in the actual class. Abstract classes are fast.
Similarities:
* Neither Abstract classes or Interface can be instantiated.
How to define an Abstract class? A class containing abstract method is called Abstract class. An Abstract class can't be instantiated. Example of Abstract class:
abstract class testAbstractClass { protected String myString; public String getMyString() { return myString; } public abstract string anyAbstractFunction(); }
How to define an Interface? Answer: In Java Interface defines the methods but does not implement them. Interface can include constants. A class that implements the interfaces is bound to implement all the methods defined in Interface. Example of Interface:
public interface sampleInterface { public void functionOne(); public long CONSTANT_ONE = 1000; } |
|
|
Term
How you can force the garbage collection? |
|
Definition
Garbage collection automatic process and can't be forced. You could request it by calling System.gc(). JVM does not guarantee that GC will be started immediately.
Garbage collection is one of the most important feature of Java, Garbage collection is also called automatic memory management as JVM automatically removes the unused variables/objects (value is null) from the memory. User program can't directly free the object from memory, instead it is the job of the garbage collector to automatically free the objects that are no longer referenced by a program. Every class inherits finalize() method from java.lang.Object, the finalize() method is called by garbage collector when it determines no more references to the object exists. In Java, it is good idea to explicitly assign null into a variable when no more in use. I Java on calling System.gc() and Runtime.gc(), JVM tries to recycle the unused objects, but there is no guarantee when all the objects will garbage collected. |
|
|
Term
Can you call one constructor from another if a class has multiple constructors |
|
Definition
Yes. Use this() to call a constructor from an other constructor. |
|
|
Term
Explain the usage of Java packages. |
|
Definition
This is a way to organize files when a project consists of multiple modules. It also helps resolve naming conflicts when different packages have classes with the same names. Packages access level also allows you to protect data from being used by the non-authorized classes. |
|
|
Term
Explain in your own words the "bottom line" benefits of the use of an interface. |
|
Definition
The interface makes it possible for a method in one class to invoke methods on objects of other classes, without the requirement to know the true class of those objects, provided that those objects are all instantiated from classes that implement one or more specified interfaces. In other words, objects of classes that implement specified interfaces can be passed into methods of other objects as the generic type Object, and the methods of the other objects can invoke methods on the incoming objects by first casting them as the interface type. |
|
|
Term
What are some advantages and disadvantages of Java Sockets? |
|
Definition
Some advantages of Java Sockets: Sockets are flexible and sufficient. Efficient socket based programming can be easily implemented for general communications. Sockets cause low network traffic. Unlike HTML forms and CGI scripts that generate and transfer whole web pages for each new request, Java applets can send only necessary updated information.
Some disadvantages of Java Sockets: Security restrictions are sometimes overbearing because a Java applet running in a Web browser is only able to establish connections to the machine where it came from, and to nowhere else on the network Despite all of the useful and helpful Java features, Socket based communications allows only to send packets of raw data between applications. Both the client-side and server-side have to provide mechanisms to make the data useful in any way. |
|
|
Term
Explain the usage of the keyword transient? |
|
Definition
Transient keyword indicates that the value of this member variable does not have to be serialized with the object. When the class will be de-serialized, this variable will be initialized with a default value of its data type (i.e. zero for integers). |
|
|
Term
What's the difference between the methods sleep() and wait() |
|
Definition
The code sleep(1000); puts thread aside for exactly one second. The code wait(1000), causes a wait of up to one second. A thread could stop waiting earlier if it receives the notify() or notifyAll() call. The method wait() is defined in the class Object and the method sleep() is defined in the class Thread. |
|
|
Term
What would you use to compare two String variables - the operator == or the method equals()? |
|
Definition
I'd use the method equals() to compare the values of the Strings and the == to check if two variables point at the same instance of a String object. |
|
|
Term
Why would you use a synchronized block vs. synchronized method? |
|
Definition
Synchronized blocks place locks for shorter periods than synchronized methods. |
|
|
Term
What access level do you need to specify in the class declaration to ensure that only classes from the same directory can access it? |
|
Definition
You do not need to specify any access level, and Java will use a default package access level. |
|
|
Term
Can an inner class declared inside of a method access local variables of this method? |
|
Definition
It's possible if these variables are final. |
|
|
Term
What can go wrong if you replace && with & in the following code: String a=null; if (a!=null && a.length()>10) {...} |
|
Definition
A single ampersand here would lead to a NullPointerException. |
|
|
Term
What's the main difference between a Vector and an ArrayList? |
|
Definition
Java Vector class is internally synchronized and ArrayList is not synchronized. |
|
|
Term
Describe the wrapper classes in Java. |
|
Definition
Wrapper class is wrapper around a primitive data type. An instance of a wrapper class contains, or wraps, a primitive value of the corresponding type.
Following table lists the primitive types and the corresponding wrapper classes: Primitive Wrapper boolean - java.lang.Boolean byte - java.lang.Byte char - java.lang.Character double - java.lang.Double float - java.lang.Float int - java.lang.Integer long - java.lang.Long short - java.lang.Short void - java.lang.Void |
|
|
Term
How could Java classes direct program messages to the system console, but error messages, say to a file? |
|
Definition
The class System has a variable out that represents the standard output, and the variable err that represents the standard error device. By default, they both point at the system console. This how the standard output could be re-directed: Stream st = new Stream(new FileOutputStream("output.txt")); System.setErr(st); System.setOut(st); |
|
|
Term
How do you know if an explicit object casting is needed? |
|
Definition
If you assign a superclass object to a variable of a subclass's data type, you need to do explicit casting. For example: Object a; Customer b; b = (Customer) a; |
|
|
Term
When you assign a subclass to a variable having a supeclass type, the casting is performed automatically. Can you write a Java class that could be used both as an applet as well as an application? |
|
Definition
Yes. Add a main() method to the applet. |
|
|