Search

Complete reference to core java interview questions basic to advanced level : SE to Team Lead level Part - 5

v  Synchronization :
                            Two ro more threads trying to access the same method at the same point of time leads to synchronization. If that method is declared as Synchronized , only one thread can access it at a time. Another thread can access that method only if the first thread’s task  is completed.

v  Synchronized statement : Synchronized statements are similar to Synchronized method.
 A Synchronized statements can only be executed after a thread has acquired a lock for the object or Class reffered in the Synchronized statements.
The general form is  -  Synchronized(object) {
                                // statements to be Synchronized 
                                 }
v  Inter Thread Communication :    To Avoid pooling , Java includes an elegant interprocess communication mechanisim.
Wait( )  - tells the calling thread to give up the monitor and go to sleep until some other thread enters the same monitor & call notify( ).
      notify( )  - wake up the first thread that called wait( ) on the same Object.
      notifyall( ) – wake up all the threads that called wait( ) on the same Object.
                        The highest priority thread aill run fast.

v  Serialization: The process of writing the state of Object to a byte stream to transfer over the  network is known as Serialization.
v  Deserialization: and restored these Objects by deserialization.

v  Externalizable: is an interface that extends Serializable  interface and sends data into strems in compressed format.    It has two methods
              WriteExternal(Objectoutput out)
              ReadExternal(objectInput in)



I/O Package        Java.io.*;

There are two classifications.
·         ByteStream    - console input
·         CharacterStream – File

(1). ByteStream: Console Input
        Read( )  - one character
        Readline( ) – one String
BufferReader br = new BufferReader(new InputStreamReader(System.in));

(2). CharacterStream : File
        FileInputStream  -  Store the contents to the File.
         FileOutStream    -   Get the contents from File.
PrintWrite pw = new printwriter(System.out.true);
  Pw.println(“     “);
Eg :-
     Class myadd
      {
public static void main(String args[ ])
 {
      BufferReader br = new BufferReader(new InputStreamReader(System.in));
  System.out.println(“Enter A no : “);
        int a = Integer.parseInt(br.Read( ));
  System.out.println(“Enter B no : “);
        int b = Integer.parseInt(br.Read( ));
  System.out.println(“The Addition is  : “ (a+b));
 }
 }





Collections

Collections :   A collection allows a group of objects to be treated as a single unit. collection define a set of core Interfaces as follows.

                         Collection                                                 Map     Hash Map  class
                                                                                                     Hash Table   class     
                    
            Set    Hash set                      List    
                                                     Array List  
           Sorted set   Tree set          Vector List
                                                    Linked List                 Sorted map   Tree Map  class 
v  Collection Interface:
§  The CI is the root of collection hierarchy and is used for common functionality across all collections.  There is no direct implementation of Collection Interface.

v  Set Interface: extends Collection Interface.   The Class Hash set implements Set Interface.
§  Is used to represent the group of unique elements.
§  Set stores elements in an unordered way but does not contain duplicate elements.

v  Sorted set: extends Set Interface.  The class Tree Set implements Sorted set Interface.
§  It provides the extra functionality of keeping  the elements sorted.
§  It represents the collection consisting  of Unique, sorted elements in ascending order.

v  List: extends Collection Interface. The classes Array List, Vector List & Linked List  implements List Interface.
§  Represents the sequence of numbers in a fixed order.
§  But may contain duplicate elements.
§  Elements can be inserted or retrieved by their position in the List using Zero based index.
§  List stores elements in an ordered way.

v  Map Interface:basic Interface.The classesHash Map & Hash Table implements Map interface.
§  Used to represent the mapping of unique keys to values.
§  By using the key value we can retrive the values. Two basic operations are get( ) & put( ) .

v  Sorted Map: extends Map Interface.  The Class Tree Map implements Sorted Map Interface.
§  Maintain the values of key order.
§  The entries are maintained in ascending order.

v   Collection classes:
                          Abstract Collection



       Abstract List                              Abstract Set                              Abstract Map



  Abstract       Array List         Hash Set          Tree Set           Hash Map          Tree Map
Sequential    
   List

Linked List

              List                                            Map
                |                                                          |         
       Abstract List                                  Dictonary
                |                                                           |
           Vector                                        HashTable
                |                                                           |                     
             Stack                                        Properities
v  HashSet: Implements Set Interface.                                   HashSet hs=new HashSet( );
§  The elements are not stored in sorted order.                          hs.add(“m”);

v  TreeSet: Implements Sorted set Interface.                           TreeSet ts=new TreeSet( );
§ The elements are stored in sorted ascending order.                ts.add(“H”);                                                
§ Access and retrieval times are quit fast, when storing a large amount of data.

v  Vector: Implements List Interface.
§ Vector implements dynamic array.                               Vector v = new vector( );
§ Vector is a growable object.                                   V1.addElement(new Integer(1));
§ Vector is Synchronized,  it can’t allow special characters and null values.
§ All vector starts with intial capacity, after it is reached next time if we want to store object in vector, the  vector automatically allocates space for that Object plus extra room for additional Objects.

v  ArrayList: Implements List Interface.
§ Array can dynamically increase or decrease size.               ArrayList a1=new ArrayList( );
§ Array List are ment for Random ascessing.                                    A1.add(“a”);
§ Array List are created with intial size, when the size is increased, the collection is automatically enlarged. When an Objects are removed, the array may be shrunk.

v  Linked List: Implements List Interface.
§  Inserting or removing elements in the middle of the array.   LinkedList l1=new LinkedList( );
§  Linked list are meant for Sequential accessing.                              L1.add(“R”);   
§  Stores Objects in a separate link.

 Map Classes:    Abstract Map; Hash Map ; Tree Map
v  Hash Map: Implements Map Interface. Hashmap() , Hashmap(Map m), Hashmap(int capacity)
§ The Elements may not in Order.
§ Hash Map is not synchronized and permits null values
§ Hash Map is not serialized.                                    Hashmap hm = new HashMap( );                
§ Hash Map supports Iterators.                               hm.put(“Hari”,new Double(11.9));

v  Hash Table: Implements Map Interface.
§ Hash Table is synchronized and does not permit null values.
§ Hash Table is Serialized.                                       Hashtable ht = new Hashtable( );                             
§ Stores key/value pairs in Hash Table.                  ht.put(“Prasadi”,new Double(74.6));
   A Hash Table stores information by using a mechanism called hashing. In hashing the informational content of a key is used to determine a unique value, called its Hash Code. The Hash Code is then used as the index at which the data associated with the key is stored. The Transformation of the key into its Hash Code is performed automatically- we never see the Hash Code. Also the code can’t directly index into h c.

v  Tree Map: Implements Sorted Set Interface.                     TreeMap tm=new TreeMap( );
§   The elements are stored in sorted ascending order.       tm.put( “Prasad”,new Double(74.6));    
§   Using key value we can retrieve the data.                            
§   Provides an efficient means of storing key/value pairs in sorted order and allows rapid retrivals.

v  Iterator: Each of collection class provided an iterator( ).
 By using this iterator Object, we can access each element in the collection – one at a time.
 We can remove() ;     Hashnext( ) – go next; if it returns false –end of list.

      Iterarator                                                               Enumerator
Iterator itr = a1.iterator( );                           Enumerator vEnum = v.element( );
While(itr.hashNext( ))                                           System.out.println(“Elements in Vector :”);
  {                                                              while(vEnum.hasMoreElements( ) )
    Object element = itr.next( );                        System.out.println(vEnum.nextElement( ) + “ “);
    System.out.println(element + “ “); 
  }
Collections
1.Introduction
2.Legacy Collections
       1. The Enumeration Interface
       2. Vector
       3. Stack
       4. Hashtable
       5. Properties
3.Java 2 Collections
       1. The Interfaces of the collections framework
       2. Classes in the collections framework
      3. ArrayList & HashSet
      4. TreeSet & Maps
Introduction   :

•Does your class need a way to easily search through thousands of items quickly?
• Does it need an ordered sequence of elements and the ability to rapidly insert and remove elements in the middle of the sequence?• Does it need an array like structure with random-access ability that can grow at runtime?


              List                                            Map
                |                                                          |         
       Abstract List                                         Dictonary
                |                                                           |
           Vector                                      HashTable
                |                                                           |                     
            Stack                                               Properities

The Enumeration Interface :

•enumerate (obtain one at a time) the elements in a collection of objects.
specifies two methods :
boolean hasMoreElements()  :  Returns true when there are still more elements to extract, and false when all of the elements have been enumerated.
Object nextElement() :  Returns the next object in the enumeration as a generic Object reference.


   


VECTOR:
§   Vector implements dynamic array.                              Vector v = new vector( );
§   Vector is a growable object.                                 V1.addElement(new Integer(1));
§   Vector is Synchronized,  it can’t allow special characters and null values.
§   Vector is a variable-length array of object references.
§   Vectors are created with an initial size.
§   When this size is exceeded, the vector is automatically enlarged.
§   When objects are removed, the vector may be shrunk.

  Constructors :   Vector()  :  Default constructor with initial size 10.
Vector(int size)  :  Vector whose initial capacity is specified by size.
Vector(int size,int incr)  :Vector whose initialize capacity is specified by size and whose increment is specified by incr.
Methods  :
final void addElement(Object element) : The object specified by element is added to the vector.
final Object elementAt(int index) : Returns the element at the location specified by index.
final boolean removeElement(Object element) : Removes element from the vector
final boolean isEmpty() :  Returns true if the vector is empty, false otherwise.
final int size() : Returns the number of elements currently in the vector.
final boolean contains(Object element) : Returns true if element is contained by the vector and false if it is not. 

STACK :
•Stack is a subclass of Vector that implements a standard last-in, first-out stack
Constructor :  Stack()  Creates an empty stack.

Methods:
Object push(Object item) : Pushes an item onto the top of this stack.
Object pop() :  Removes the object at the top of this stack and returns that object as the value of this function. An EmptyStackException is thrown if it is called on empty stack.
boolean empty()  :  Tests if this stack is empty.
Object peek()  :  Looks at the object at the top of this stack without removing it from the stack.
int search(Object o)  : Determine if an object exists on the stack and returns the  number of pops that would be required to bring it to the top of the stack.


    HashTable :
§   Hash Table is synchronized and does not permit null values.
§   Hash Table is Serialized.                                     Hashtable ht = new Hashtable( );                             
§   Stores key/value pairs in Hash Table.                 ht.put(“Prasadi”,new Double(74.6));
§   Hashtable is a concrete implementation of a Dictionary.
§   Dictionary is an abstract class that represents a key/value storage repository.
§   A Hashtable instance can be used store arbitrary objects which are indexed by any other arbitrary object.
§   A Hashtable stores information using a mechanism called hashing.
§   When using a Hashtable, you specify an object that is used as a key and the value (data) that you want linked to that key.

Constructors :      Hashtable()                     Hashtable(int size)

Methods  :
Object put(Object key,Object value) : Inserts a key and a value into the hashtable.
Object get(Object key) : Returns the object that contains the value associated with key.

boolean contains(Object value) : Returns true if the given value is available in the hashtable. If not, returns false.
boolean containsKey(Object key) : Returns true if the given key is available in the hashtable. If not, returns false.
Enumeration elements() : Returns an enumeration of the values contained in the hashtable.
int size() : Returns the number of entries in the hashtable.



Properties


•Properties is a subclass of Hashtable
• Used to maintain lists of values in which the key is a String and the value is also a String
• Constructors
Properties()
Properties(Properties propDefault) : Creates an object that uses propDefault for its default value.
Methods  :
String getProperty(String key) : Returns the value associated with key.

Strng getProperty(String key, String defaultProperty) : Returns the value associated with key. defaultProperty is returned if key is neither in the list nor in the default property list .

No comments:

Post a Comment