java is an Object  Oriented Programming Language. Which is mostly used to develop Windows based Software  as well as Web Based Project. It is good to have good knowledge about a programming language and practical knowledge for developing program in that particular language. In the technical interview for the post of  Java Developer some basic questions are asked. In this post I am telling about questions at basic level. These questions are related to Variable, operators, JVM and Jdk, Interface and access specifier, methods , class, use of final keyword etc.









Q             Why can't I say just abs() or sin() instead of Math.abs() and Math.sin()?  
A             The import statement does not bring methods into your local name space. It lets you abbreviate class names, but not get rid of them altogether. That's just the way it works, you'll get used to it. It's really a lot safer this way. <br> However, there is actually a little trick you can use in some cases that gets you what you want. If your top-level class doesn't need to inherit from anything else, make it inherit from java.lang.Math. That *does* bring all the methods into your local name space. But you can't use this trick in an applet, because you have to inherit from java.awt.Applet. And actually, you can't use it on java.lang.Math at all, because Math is a "final" class which means it can't be extended.

Q             What is the output from System.out.println("Hello"+null);  
A             Hellonull

Q             Why are there no global variables in Java?  
A             Global variables are considered bad form for a variety of reasons:
·         Adding state variables breaks referential transparency (you no longer can understand a statement or expression on its own: you need to understand it in the context of the settings of the global variables).
·         State variables lessen the cohesion of a program: you need to know more to understand how something works. A major point of Object-Oriented programming is to break up global state into more easily understood collections of local state.
·         When you add one variable, you limit the use of your program to one instance. What you thought was global, someone else might think of as local: they may want to run two copies of your program at once.
For these reasons, Java decided to ban global variables.

Q             What does it mean that a class or member is final?  
A             A final class can no longer be sub classed. Mostly this is done for security reasons with basic classes like String and Integer. It also allows the compiler to make some optimizations, and makes thread safety a little easier to achieve. Methods may be declared final as well. This means they may not be overridden in a subclass. Fields can be declared final, too. However, this has a completely different meaning. A final field cannot be changed after it's initialized, and it must include an initializer statement where it's declared. For example,
public final double c = 2.998;
It's also possible to make a static field final to get the effect of C++'s const statement or some uses of C's #define, e.g.
public static final double c = 2.998;

Q             What does it mean that a method or class is abstract?  
A             An abstract class cannot be instantiated. Only its subclasses can be instantiated. You indicate that a class is abstract with the abstract keyword like this:
public abstract class Container extends Component {
Abstract classes may contain abstract methods. A method declared abstract is not actually implemented in the current class. It exists only to be overridden in subclasses. It has no body. For example,
public abstract float price();
Abstract methods may only be included in abstract classes. However, an abstract class is not required to have any abstract methods, though most of them do. Each subclass of an abstract class must override the abstract methods of its superclasses or itself be declared abstract.

Q             what is a transient variable?  
A             transient variable is a variable that may not be serialized.

Q             How are Observer and Observable used?  
A             Objects that subclass the Observable class maintain a list of observers. When an Observable object is updated it invokes the update() method of each of its observers to notify the observers that it has changed state. The Observer interface is implemented by objects that observe Observable objects.

Q             Can a lock be acquired on a class?  
A             Yes, a lock can be acquired on a class. This lock is acquired on the class's Class object.

Q             What state does a thread enter when it terminates its processing?  
A             When a thread terminates its processing, it enters the dead state.

Q             How does Java handle integer overflows and underflows?  
A             It uses those low order bytes of the result that can fit into the size of the type allowed by the operation.

Q             What is the difference between the >> and >>> operators?  
A             The >> operator carries the sign bit when shifting right. The >>> zero-fills bits that have been shifted out.

Q             Is sizeof a keyword?  
A             The sizeof operator is not a keyword.

Q             Does garbage collection guarantee that a program will not run out of memory?  
A             Garbage collection does not guarantee that a program will not run out of memory. It is possible for programs to use up memory resources faster than they are garbage collected. It is also possible for programs to create objects that are not subject to garbage collection

Q             Can an object's finalize() method be invoked while it is reachable?  
A             An object's finalize() method cannot be invoked by the garbage collector while the object is still reachable. However, an object's finalize() method may be invoked by other objects.

Q             What value does readLine() return when it has reached the end of a file?  
A             The readLine() method returns null when it has reached the end of a file.

Q             Can a for statement loop indefinitely?  
A             Yes, a for statement can loop indefinitely. For example, consider the following:
for(;;) ;

Q             To what value is a variable of the String type automatically initialized?  
A             The default value of an String type is null.

Q             What is a task's priority and how is it used in scheduling?  
A             A task's priority is an integer value that identifies the relative order in which it should be executed with respect to other tasks. The scheduler attempts to schedule higher priority tasks before lower priority tasks.

Q             What is the range of the short type?  
A             The range of the short type is -(2^15) to 2^15 - 1.

Q             What is the purpose of garbage collection?  
A             The purpose of garbage collection is to identify and discard objects that are no longer needed by a program so that their resources may be reclaimed and reused.

Q             What do you understand by private, protected and public?  
A             These are accessibility modifiers. Private is the most restrictive, while public is the least restrictive. There is no real difference between protected and the default type (also known as package protected) within the context of the same package, however the protected keyword allows visibility to a derived class in a different package.

Q             What is down casting?  
A             Down casting is the casting from a general to a more specific type, i.e. casting down the hierarchy

Q             Can a method be overloaded based on different return type but same argument type?  
A             No, because the methods can be called without using their return type in which case there is ambiguity for the compile

Q             What happens to a static var that is defined within a method of a class ?  
A             Can't do it. You'll get a compilation error

Q             How many static init can you have?  
A             As many as you want, but the static initializers and class variable initializers are executed in textual order and may not refer to class variables declared in the class whose declarations appear textually after the use, even though these class variables are in scope.

Q             What is the difference amongst JVM Spec, JVM Implementation, JVM Runtime?  
A             The JVM spec is the blueprint for the JVM generated and owned by Sun. The JVM implementation is the actual implementation of the spec by a vendor and the JVM runtime is the actual running instance of a JVM implementation

Q             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 super classes. Implementation-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 constructor for its super classes. This process continues until the constructor 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.

Q             What does the "final" keyword mean in front of a variable? A method? A class?  
A             FINAL for a variable : value is constant
FINAL for a method: cannot be overridden
FINAL for a class: cannot be derived

Q             What is the difference between instanceof and isInstance?  
A             instanceof is used to check to see if an object can be cast into a specified type without throwing a cast class exception.
isInstance()
Determines if the specified Object is assignment-compatible with the object represented by this Class. This method is the dynamic equivalent of the Java language instanceof operator. The method returns true if the specified Object argument is non-null and can be cast to the reference type represented by this Class object without raising a ClassCastException. It returns false otherwise.

Q             Why is not recommended to have instance variables in Interface  
A             By Default, All data members and methods in an Interface are public. Having public variables in a class that will be implementing it will be violation of the Encapsulation principal. I hope that's pretty ok. If anybody has a better framed answer. U r welcome at reema_gupta@intersolutions.stpn.soft.net

Q             What is the difference between inner class and nested class?  
A             When a class is defined within a scope of another class, then it becomes inner class. If the access modifier of the inner class is static, then it becomes nested class.