What  is Java?
Java is an object-oriented programming language developed initially by  James Gosling and colleagues at Sun Microsystems. The language,  initially called Oak (named after the oak trees outside Gosling's  office), was intended to replace C++, although the feature set better  resembles that of Objective C. Java should not be confused with  JavaScript, which shares only the name and a similar C-like syntax. Sun  Microsystems currently maintains and updates Java regularly.  
 What does a well-written OO program look like? 
A well-written OO program exhibits recurring structures that promote  abstraction, flexibility, modularity and elegance.  
Can you have virtual functions in Java?   
Yes, all functions in Java are virtual by default. This is actually a  pseudo trick question because the word "virtual" is not part of the  naming convention in Java (as it is in C++, C-sharp and VB.NET), so this  would be a foreign concept for someone who has only coded in Java.  Virtual functions or virtual methods are functions or methods that will  be redefined in derived classes.  
 Jack developed a program by using a Map container to hold key/value  pairs. He wanted to make a change to the map. He decided to make a clone  of the map in order to save the original data on side. What do you think  of it? ?  
If Jack made a clone of the map, any changes to the clone or the  original map would be seen on both maps, because the clone of Map is a  shallow copy. So Jack made a wrong decision.  
 What is more advisable to create a thread, by implementing a Runnable  interface or by extending Thread class?
  Strategically speaking, threads created by implementing Runnable  interface are more advisable. If you create a thread by extending a  thread class, you cannot extend any other class. If you create a thread  by implementing Runnable interface, you save a space for your class to  extend another class now or in future.  
What is NullPointerException and how to handle it?
 When an object is not initialized, the default value is null. When the  following things happen, the NullPointerException is thrown:
--Calling the instance method of a null object.
--Accessing or modifying the field of a null object.
--Taking the length of a null as if it were an array.
--Accessing or modifying the slots of null as if it were an array.
--Throwing null as if it were a Throwable value.
The NullPointerException is a runtime exception. The best practice is to  catch such exception even if it is not required by language design.  
 An application needs to load a library before it starts to run, how  to code?
One option is to use a static block to load a library before anything is  called. For example,
class Test {
static {
System.loadLibrary("path-to-library-file");
}
....
}
When you call new Test(), the static block will be called first before  any initialization happens. Note that the static block position may  matter. 
How could Java classes direct program messages to the system console,  but error messages, say to a file?
  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);
 What's the difference between an interface and an abstract class?  
An abstract class may contain code in method bodies, which is not  allowed in an interface. With abstract classes, you have to inherit your  class from it and Java does not allow multiple inheritance. On the other  hand, you can implement multiple interfaces in your class. 
 Name the containers which uses Border Layout as their default layout? 
Containers which uses Border Layout as their default are: window, Frame  and Dialog classes. 
 What do you understand by Synchronization?  
Synchronization is a process of controlling the access of shared  resources by the multiple threads in such a manner that only one thread  can access one resource at a time. In non synchronized multithreaded  application, it is possible for one thread to modify a shared object  while another thread is in the process of using or updating the object's  value.
Synchronization prevents such type of data corruption.
E.g. Synchronizing a function:
public synchronized void Method1 () {
// Appropriate method-related code.
}
E.g. Synchronizing a block of code inside a function:
public myFunction (){
synchronized (this) {
// Synchronized code here.
}
}
No comments:
Post a Comment