|Home |Login |Registration |Struts Step by Step Tutorial |Hibernate Step by Step Tutorial |Spring Step by Step Tutorial |JSP Step by Step Tutorial |JDBC Step by Step Tutorial |Web Services Step by Step Tutorial |EJB fundamentals | ORACLE Step by Step Tutorial | SCJP 5.0 and SCJP 6.0 Study Guide | SCWCD 5.0 Study Guide | SCJP Tips
Java mock test | SCJP mock test | SCJP DUMP | SCBCD mock test | SCWCD mock test | JSP mock test | ORACLE mock test | OCP mock test | Hibernate mock test | Servlet mock test | Struts mock test | EJB mock test | C mock test | C++ mock test | Aptitude mock test | PMP mock test Exam |Java online test | JSP online test | ORACLE online test | Hibernate online test | Servlet online test | Struts online test | EJB online test | C online test | C++ online test | Aptitude online test
***Java Code Examples*** |Technical Talk
Java interview questions | JSP interview questions | ORACLE interview questions | Hibernate interview questions | Servlet interview questions | Struts interview questions | JDBC interview questions | C/C++ interview questions | Spring interview questions | JMS interview questions | Informatica interview questions | EJB interview questions | OOPS and Design Pattern interview questions

Download java,jsp,servlet,hibernate,spring,jdbc,jms,struts,EJB,oracle,c,c++,informatica interview questions and answers in pdf format

Download 1600 PMP Questions Free

Download 800 SCJP Questions Free

Download 600 SCWCD Questions Free

Jobs Walkin

                                                                                                                                 

Add/View Reviews , Comments
Tutorial Home
SCJP 5.0 Simulator 642+ Questions With Explanations
SCJP 6.0 Simulator 664+ Questions With Explanations
SCWCD 5.0 Simulator 556+ Questions With Explanations
SCWCD 4.0 Simulator 500+ Questions With Explanations
OCA 10g Simulator 594+ Questions With Explanations
Struts Tutorial Home
Spring Tutorial Home
Hibernate Tutorial Home
JSP Tutorial Home
JDBC Tutorial Home
Webservices Tutorial Home
EJB Fundamentals

Hibernate

  1. Advantage of Hibernate over JDBC
  2. Hibernate Setup with an web Application
  3. First Hibernate Application
  4. Hibernate mapping with Database TABLE
  5. Hibernate Data Type-Java Data Type - SQL Data Type mapping
  6. One to Many Relation in Hibernate
  7. One to Many Relation in Hibernate bi-directional
  8. Many to Many Relation in Hibernate
  9. HQL: The Hibernate Query Language
  10. Criteria Queries
  11. Criteria Queries : Equal (eq), Not Equal(ne), Less than (le), greater than (gt),greater than or equal(ge) and Ordering the results
  12. Criteria Queries: And OR conditions
  13. Hibernate generator to generate id (primary key)
  14. prevent concurrent update in Hibernate,slate object updatation in Hibernate,version checking in Hibernate

    Struts


  1. Model View Controller (MVC)
  2. Model View Controller (MVC)
  3. Struts Flow-How Struts Works?
  4. Struts Tutorial - Struts Setup- First Struts Action class setup
  5. Message Resources
  6. Validation Framework
  7. Validation Framework-client side
  8. ForwardAction
  9. IncludeAction
  10. DispatchAction
  11. LookupDispatchAction
  12. DynaActionForm
  13. DynaActionForm
  14. Struts Tutorial - Mutli-click prevention using struts tokens-Prevent Duplicate Submission
  15. Logic Iterate Map and List

JSP


  1. JSP Tutorial
  2. Introduction to JSP
  3. JSP Comments
  4. JSP Syntax
  5. JSP Scripting Elements :Scriptlet, expression, declaration
  6. JSP Directives
  7. implicit objects in JSP
  8. JSP Actions
  9. Introduction to JSP
  10. jsp:useBean
  11. The jsp:setProperty Action
  12. The jsp:getProperty Action
  13. Introduction to JSP

Spring


  1. Spring Tutorial
  2. Introduction to Spring
  3. Benefits of Using Spring Framework
  4. Inversion of Control in Spring
  5. Introduction to BeanFactory
  6. Dependency Injection in Spring
  7. Collections Setter Injection
  8. Bean Scopes in Spring
  9. Spring IOC Setup Step by Step
  10. Bean Lifecycle in Spring
  11. ApplicationContext
  12. MessageSources in Spring
  13. Web Spring MVC framework
  14. Developing Your First Spring Web Application
  15. Developing Your Second Spring Web Application with Spring Form
  16. Developing Your First Spring Web Application with Spring Validation Framework with Code Example
  17. Spring integration with Hibernate

Final SCJP tips

Final SCJP tips

Basics of Java programming

  • Objects are manipulated through object references (and aliases). new operator returns a reference to a new instance of the class instantiated.

  • Objects have their copy of instance members, while static members belong only to the class. Local (or Automatic) variables are created inside methods/ blocks.

  • Static members may be accessed by the class name as well as the object references, but Instance variables can only be accessed by the object reference.

  • Two fundamental mechanisms of building new classes from existing ones :

      • Inheritance (IS-A relationship)

      • Aggregation (HAS-A relationship)

  • Java supports aggregation where only the references to objects and values of primitive data types are stored within the aggregation class.

  • Java 2 SDK enforces that at the most only one class in the source file has public accessibility. Each class definition in a source file is compiled into a separate class file, containing Java byte code.There can be any number of classes named 'main' created in a class, provided they take other arguments, are not public and static, or return a value.


Language fundamentals

  • Identifier is composed of a sequence of characters, where each character could be either a letter, currency symbol, digit or connecting punctuation. However first character cant be a digit.
    Examples of illegal identifiers : 48chevy, all@hands, grand-sum

  • Keywords :

abstract

default

implements

protected

throw

assert

do

import

public

throws

boolean

double

instanceof

return

transient

break

else

int

short

try

byte

extends

interface

static

void

case

final

long

strictfp

volatile

catch

finally

native

super

while

char

float

new

switch


class

for

package

synchronize


continue

if

private

This


  • Reserved Literals :

null

true

false



  • Reserved Keywords not currently in use :

const

goto




  • synchronized, abstract, strictfp and native can only be applied to methods. transient and volatile can only be applied to variables. static and final can be applied to both.

  • The class containing at least one abstract method has to be declared as abstract. However an abstract class need not have any abstract methods in it.

  • Literal denotes a constant values :

      • Integer Literals int, long, byte, short,octal, hexadecimal

      • Floating point Literals suffix f or F, d or D; exponent notation 1.2E-2

      • Boolean Literals true or false

      • Character Literals single quotes, hexadecimal with prefix \u, \ddd where ddd is octal

      • String Literals double quotes

  • Comment are of three types :

      • single line // ... to end of line

      • multiple line /* ... */

      • javadoc comment /** ... */

  • Comment start sequences are ignored when occurring inside comments, hence making nesting of comments impossible.

  • Primitive Data Types

byte

8 bits

-27

+27-1

Boolean

short

16 bits

-215

+215-1

Short

int

32 bits

-231

+231-1

Integer

long

64 bits

-263

+263-1

Long

char

16 bits

0x0

0xffff

Character

float

32 bits



Float

double

64 bits



Double

boolean


true or false only

Boolean

  • Default values for fields are false, '\u0000', 0L, 0, 0.0F, 0.0D and null. All static, instance variables as well as object references are automatically initialized. Local variables and object references need to be explicitly initialized before use.

  • If a reference is set to null, then the program will compile but throw a NullPointerException at runtime.


Operators and assignments

  • All binary operators except for relational and assignment operators associate from left to right. Relational operators are non-associative.
    All unary operators (except for unary postfix increment and decrement), all assignment operators, and the ternary conditional operator operate from right to left.

  • Precedence rules are used to determine which operator to apply first if there are two operators with different precedence, following each other in the expression. Associativity rules are used to determine which operator to apply first if there are two operators with the same precedence, following each other in the expression.

Postfix

[] . (parameters) (expr)++ (expr)--

Unary prefix

++(expr) --(expr) +(expr) -(expr)

Unary prefix creation and cast

new (type)

Multiplicative

* / %

Additive

+ -

Shift

<< >> >>>

Relational

< <= > >= instanceof

Equality

== !=

Bitwise/logical AND

&

Bitwise/logical XOR

^

Bitwise/logical OR

|

Conditional AND

&&

Conditional OR

||

conditional

?:

Assignment

= += -= *= /= %= <<= >>= >>>= &= ^= |=

  • Java guarantees that all operands of an operator are fully evaluated before the operator is applied. The only exceptions are &&, || and ?:. Also the operands of the operators are evaluated from left to right. For example, in the case of binary operators, if the evaluation of the left hand operator causes an exception, then the right hand expression is not evaluated.

  • Casting between primitives and references is not permitted. Boolean values cannot be cast to other data values and vice versa. null can be cast to any reference type.

  • All conversions between byte, short to char are considered narrowing, because conversion to the unsigned char can lead to loss in information.

  • Numeric Promotions

      • Unary Numeric Promotion : the operator is promoted to int if lesser than int.
        Examples : operands of +, -
        operand of ~
        during array creation, value in [ ]
        indexing array elements, value in [ ]
        operands of <<, >>, >>>

      • Binary Numeric Promotion : both operands are converted to the broadest of the two and to int at the least.
        Examples : operands of *, /, %, +, -
        operands of <, <=, >, >=
        operands of ==, !=
        operands of &, ^, |

  • Type Conversion can occur in the following contexts :

      • Assignments involving primitive data types and reference types.

      • Method invocation involving parameters of primitive data types.

      • Arithmetic expression evaluation involving numeric types.

      • String concatenation involving objects of String and other data types

  • The assignment statement is an expression statement, which returns the value of the expression on the right hand side.

  • Integer values when widened to floating point values may lead to loss of precision.

  • Implicit Narrowing Primitive Conversions take place when all of the following are true:

      • source is a constant expression of type byte, short, char or int.

      • destination is byte, short or char type.

      • Value of source is determined to be in the range of the destination.

  • Integer division by 0 and remainder by 0 gives Arithmetic Exception.

  • Floating point errors throw NaN and Infinity, -Infinity.

  • (-0.0==0.0) is true
    (0.0/0.0) is NaN
    any operation involving NaN gives NaN
    any comparison involving NaN (except !=) gives NaN
    square root of negatives gives NaN
    to check if value is NaN, use isNaN(), defined in java.lang.Float and java.lang.Double.

  • In the case of Arithmetic Compound Assignment Operators (*=, /=, %=, +=, -=), since they have the lowest precedence of all operators in Java, the full expression on the right will always be evaluated before the assignment. Also the left hand side variable (also in the expansion on the right side) is evaluated only once.

  • Prefixed Increment/Decrement Operator first performs operation, then uses new value as result of the expression. Postfixed Increment/Decrement Operators use the current value as the result of the expression first and then perform the operation.

  • Increment and Decrement operators cannot be associated, like in (++(++a))since the inner increment does not result in a variable for the other increment to operate on. Similarly, Relational and Equality operators are not associative since first operation would result in a boolean which cannot be the operand of the second.

  • In the case of Object References, the Equality and the Inequality operators check whether the two references denote the same object or not. The state of the objects is not compared. To check for Object Value Equality, equals() method of class Object may be used, provided the class overrides the method. Otherwise Object Reference Equality and Object Value Equality are the same.

  • Boolean Logical Operators can be applied to boolean operands to return a boolean value, or to integral operands to perform bitwise operations. But Conditional Operators can only be applied to boolean operands.

  • Adding 1 to the 1's complement of a positive binary integer gives its negative. And vice-versa. Hence if given a binary number and its signed bit is one, to find the decimal equivalent, we need to take the 2's complement, determine the decimal value and then affix a negative sign to it.

  • For the shift operator, a bit mask value of 0x1F (31, for int) or 0x3F (63, for long) is used by AND-ing with the shift distance value to ensure that the shift distance always stays in the range. (result of masking is <shiftvalue>%32 or 64).

  • The conditional operator can be nested. It is associative from right to left.

  • Formal parameters are those defined in the method definition. Actual parameters are those passed during the method call (which may vary from call to call).

      • The number of Actual parameters must equal the number of Formal parameters.

      • Individual Formal and Actual parameter pairs must be type-compatible.

  • For parameter passing there are no implicit narrowing conversions.

  • If an object reference is declared as final then it means that the reference value cannot be changed, however state of the object can be changed as usual.


Declarations and Access Control

  • Array Declarations
    char[] a;
    char a[];

  • Array Constructions
    a = new char[5];

  • Combined Declaration and Construction
    <element type1>[]<array name>=new <element type2>[<array size>];

  • Combined Declaration, Construction and explicit Initialization
    <element type>[]<array name>={<array initialize list>};
    char[] a = {'b','c','d','e'};

  • Anonymous Array Construction
    new char[]{'b','c','d','e'}

  • In the case of multidimensional arrays, you may specify the size only for the first dimension:
    String[][] s = new String[3][];

  • Accessing an incorrect index in the array results in an ArrayIndexOutOfBoundsException.

  • A class has two components :

      • Static Context : contains static methods, static field initializers and static initializer blocks.

      • Non-Static Context : has instance methods, constructors, non-static field initializers and instance initializer blocks.

  • The signature of a method contains only the method name and the formal parameter list.

  • All instance methods are passed an implicit reference to the current object, which can be referenced in the body of the instance by the keyword this, which can be used in any non-static context.

  • When a subclass object is created, all the superclass constructors are invoked in order starting from the top of the hierarchy.

  • Constructors cannot return a value and hence cannot specify a return type, not even void.

  • The only action taken by the default constructor is to call the superclass constructor.

  • If any explicit constructors are defined, then implicit default constructor will not be provided. It must be explicitly implemented.

  • Static code cannot access non-static members. Also this and super are unavailable. However, the Non-Static code can refer to the static context members.

  • An interface is an implicitly public, abstract class containing implicitly static, final variables and abstract methods (if any). Interfaces with empty bodies are used as markers to tag classes as having a certain property. Such are also called ability interfaces.


Control flow, exception handling and assertions

  • The type of expression of a switch statement must be non-long integral. All labels in a switch construct including the default label are optional. But there cannot be more than one default label. The case label values must be in range of type of switch expression.

  • Switch blocks may be nested and the case labels can be redefined inside them.

  • In the for loop header, two semicolons are mandatory. The 'crab' (;;) is commonly used to construct infinite loops. If in the for loop, pre-increment instead of post-increment is used, it makes no difference to the behavior of the loop.

  • The scope of a label is the entire statement prefixed by the label. So it cant be redeclared as a label inside the statement. A statement may have multiple labels. A declaration statement cannot have a label.

  • break() terminates the loop or block it is in, whereas continue() skips that particular iteration of the loop and continues with the next one.

  • All exceptions are derived from java.lang.Throwable class and have the methods getMessage() and printstacktrace(). RuntimeException, Error and their derivatives are called unchecked exceptions. All others are checked In particular Asserts throw unchecked AssertionError.

  • In a try-catch-finally construct, block notation is mandatory. There can be zero or more catch blocks but a maximum of one finally block. The catch and finally blocks must always appear in conjunction with the try and in that order.

  • After catching an exception, the control continues from the class which handled the exception. If the finally block throws an exception, then this is propagated regardless of how the try block or any catch block were executed. Also, the new exception overrules any previously unhandled exception. A value returned by a finally block will supersede other return statements.

  • Any exception propagated to a finally block is nullified by any return statement in the finally block.

  • When a subclass is created it can override a superclass methods, but the new throws clause can only throw a subset of the previous exceptions (including their subclasses)

  • To compile assertions use $ javac -source 1.4 programname.java and during running, enable it by either -enableassertions, or -ea flags. Disable by -disableassertions or -da. These options affect all non-system classes only. For enabling or disabling system class assertions, use -enablesystemassertions, -esa andj -disablesystemassertion, -dsa.


Object-oriented programming

  • Private, overridden and hidden members of the superclass are not inherited.

  • This ability of a superclass reference to denote objects of its own class and its subclasses at runtime is called polymorphism and is carried out by dynamic method lookup. A call to a private instance method is not polymorphic since such a call can only occur within the class and gets bound to the private method implementation at compile time.

  • Overriding of Instance Methods involve defining a method in the subclass with the same method signature (which does not encompass final modifier for the parameters, but does include the return type of the method). Note that the new method cannot narrow the accessibility but can widen it, and also it can only specify all, none or a subset of the former's exceptions.

  • An instance method in the subclass cannot override a static method, a final method and a private method in the superclass. In the first case it will result in hiding of the static method, in the second a compile time error, and in the third it will result in the creation of a completely separate method with identical signature.

  • When an instance method is invoked on an object using a reference, it is the class of the current object denoted by the reference, not the type of reference, that determines which method is implemented.
    When a field of an object is accessed using a reference, it is the type of the reference, not the class of the current object denoted by the reference, that determines which field will actually be accessed. (Treatment is just the same for static methods and variables too)
    class Vehicle {
    String mytype = new String(“Vehicle!”);
    void sayType() {
    System.out.println(“I am a vehicle”);
    }
    }
    class Car extends Vehicle {
    String mytype = new String(“Car!”);
    void sayType() {
    System.out.println(“I am a car”);
    }
    }
    We are overridding the field and the method. This is how they behave :
    Vehicle i = new Vehicle;
    System.out.println(i.mytype); // prints- Vehicle!
    i.sayType(); // prints- I am a vehicle

    Car j = new Car;
    System.out.println(j.mytype); // prints- Car!
    j.sayType(); // prints- I am a car

    Vehicle k = new Car;
    System.out.println(k.mytype); // prints- Vehicle!
    k.sayType(); // prints- I am a car

  • Constructors cannot be inherited or overridden. They can be overloaded but only in the same class. Java requires that a this() or super() call in the constructor (if any) be the first statement in the constructor.

  • If a superclass only defines non-default constructors, then its subclasses cannot rely on implicit super() call to be inserted. This will result in compile time error.

  • A class choosing to partially implement the methods of an interface must be declared as abstract.

  • Regardless of how many interfaces are implemented, only a single implementation is provided for a member even if it has multiple declarations in the various interfaces.

  • Rules for assigning reference values (same rules apply for passing references)
    A = B , where A = Destination reference, B = Source reference

      • B is a class type
        A is superclass of B
        A is interface type that B implements

      • B is interface type
        A is Object
        A is superinterface of B

      • B is an array type
        A is Object
        A is array type, where element type of B is assignable to element type of A

  • Casting of References checks that the reference of the source is assignable to the reference of the destination. The compile time check determines if both the references can denote objects of a reference type that is a common subtype of both. At runtime it is the type of the actual object denoted by the source reference that determines the outcome of the operation. Hence a ClassCastException may result.

  • References of an interface type can denote objects of classes that implement this interface.


Nested classes and Interfaces

Entity

Declaration

Context

Accessib-ility Modifiers

Enclosing Instance

Direct Access to Enclosing Context

Declarations in Entity Body

Top-Level Class (or Interface)

Package

Public or default

No

N/A

All that are valid in a class (or interface) body

Static Member Class (or Interface)

As static member of enclosing class or interface

All

No

Static members in enclosing context

All that are valid in a class (or interface) body

Non-static Member Class

As non-static member of enclosing class or interface

All

Yes

All members in enclosing context

Only non-static declarations + final static fields

Local Class

In block with non-static context

None

Yes

All members in enclosing context + final local variables

Only non-static declarations + final static fields

In block with static context

None

No

Static members in enclosing context + final local variables

Only non-static declarations + final static fields

Anonymous Class

As expression in non-static context

None

Yes

All members in enclosing context + final local variables

Only non-static declarations + final static fields

As expression in static context

None

No

Static members in enclosing context + final local variables

Only non-static declarations + final static fields



  • class TLC { //Top Level Class
    static class SMC {} //Static Member Class
    interface SMI {} //Static Member Interface
    class NSMC {} //Non-static Member Class
    void nsm() {
    class NSLC {} //Non-static Local Class
    }
    static void sm() {
    class SLC {} //Static Local Class
    }
    SMC nsf = new SMC () {}; //Anonymous non-static
    static SMI sf = new SMI() {}; //Anonymous Static
    }

  • The expression
    <enclosing class name>.this
    evaluates to a reference that denotes the enclosing object (ie. of class
    <enclosing class name>) of current instance of non-static member class.

  • In the Anonymous class, SMC is not the name of the Anonymous class but the name of the class that you are extending or the interface you are implementing.


Object lifetime

  • The lifetime of an object is time between when it is created and garbage collected.

  • Accessibility time of an object is time between when it is created and becomes unreachable.

  • Resurrection after garbage collection can be achieved in the finalize block by assigning its this reference to a static field. But since a finalizer is called only once, an object can be resurrected just once.

  • Eligibility for garbage collection

      • if reference variable of that object is set to null and no other reference is referring to it

      • if reference variable of that object is made to refer to some other object and there is no other reference referring to it

      • locally created objects after the method returns, provided they are not exported out of the method (ie. returned or thrown as exception)

  • Since there is no guarantee that the garbage collector will ever run, there is also no guarantee that the finalizer will ever be called. Also no guarantee of the order in which the objects will be collected.

  • System.gc() can be used to request garbage collection

  • System.runFinalization() method can be called to suggest that any pending finalizers be run for the objects eligible for garbage collection.

  • A Java application can use a Runtime object to interact with the JVM. Some methods include
    void gc()
    void runFinalization()
    long freeMemory()
    long totalMemory()

  • Static Initializer Blocks are primarily used to initialize static fields and consists of the keyword static followed by a local block. When a class is initialized, the initializer expression in static field declarations and static initializer blocks are executed in the order they are specified in the class.

  • Instance initializer blocks can be used to initialize fields during object creation. It merely consists of a local block. The code in the block is executed every time an instance of the class is created.


Threads

  • Defined by either extending java.lang.Thread or by implementing java.lang.Runnable interface. The run() method needs to be overridden. This method must be public and void and should take no arguments.

  • Extending
    class MyThread extends Thread {
    public void run() {/* ... */}
    }

    You never call run() directly. Instead you call the start() method of the Thread class.
    MyThread my = new MyThread();
    mt.start();

  • Implementing
    class MyRunnable implements Runnable {
    public void run() {/* ... */}
    }

    Here you construct a thread by passing the instance of the Runnable class as an argument.
    MyRunnable mc = new MyRunnable();
    Thread t = new Thread(mc);
    t.start();

  • Thread Constructors available

      • Thread()

      • Thread(String name)

      • Thread(Runnable runnable)

      • Thread(Runnable runnable, String name)

      • Thread(ThreadGroup g, Runnable runnable)

      • Thread(ThreadGroup g, Runnable runnable, String name)

      • Thread(ThreadGroup g, String name)

  • wait(), notify and notifyAll() have to be called from a synchronized context.

  • A dead thread can never enter any other state, even if the start() method is called on it.

  • yield() method causes the current thread to move from the running to the runnable state to give other threads a chance to run.

  • When a thread calls join() on another thread, the currently running thread will wait until the thread it joins with has completed.

  • The argument to a synchronized keyword (in the case of blocks) is the reference of the object to be synchronized on. In the case of methods, the synchronized keyword merely precedes the method.

  • Invoking start() twice on the same thread will throw an IllegalThreadStateException at runtime.


Fundamental Classes

  • The Math class is final and all methods defined in the Math class are static. This means you cannot inherit from the Math class and override the methods. Also, the Math class has a private constructor so you cannot instantiate it.

  • ceil(), floor() and random() return double values. round() returns a long for double inputs and int for float inputs. Trigonometric methods take radians as arguments, so we use Math.toRadians().

  • All wrapper classes except Character have two constructors – one that takes the primitive value and another that takes the String representation of the value. Character takes char type as argument.

  • Wrapper objects are immutable.

  • All wrapper classes (except Character ) define a static method valueOf() which returns the wrapper object corresponding to the primitive value represented by the String argument. Then byteValue(), doubleValue(), floatValue(), intValue(), longValue(), shortValue()are used to get the primitive values from the wrapper classes.

  • Parser methods may be used to short-circuit the process. They throw NumberFormatException.


Collections and Maps

Set

HashSet

TreeSet

LinkedHashSet


List

Vector

ArrayList

LinkedList


Map

HashMap

HashTable

TreeMap

LinkedHashMap



  • Set cannot contain duplicate elements. Not ordered (implementation : HashSet)
    SortedSet holds elements in sorted ascending order. (implementation : TreeSet)
    HashSet is not ordered or sorted. (constant time performance for basic add and remove).
    TreeSet arranges the elements in ascending element order, sorted according to the natural order of the elements.
    LinkedHashSet is an ordered HashSet, which gives elements in the order of insertion or last access.

  • List represents ordered collections which allow positional access and search and can contain duplicate elements. (implementation : LinkedList, ArrayList, Vector, Stack)
    ArrayList enables fast iteration ad constant speed positional access.
    Vector is similar to ArrayList only slower since it is synchronized.
    LinkedList allows fast insertion and deletion at the beginning or end. Commonly used for implementing stacks and queues.
    Stack is subset of Vector, it is simple LIFO.

  • Map matches unique keys to values. Each key maps to at most one value. It does not implement the Collection interface (implementation : HashMap, HashTable, WeakHashMap)
    SortedMap orders the mapping in the sorted order of keys.
    HashMap is not sorted or ordered. It allows one null key and many null values.
    HashTable is similar to HashMap but does not allow null keys and values. Also, it is slower because it is synchronized.
    LinkedHashMap iterated by insertion or last accessed order. Allows one null key and many null values.
    TreeMap is a map in ascending key order, sorted according to the natural order for the key's class.

  • Two objects that are not equal can have the same hash code. The hash code of a null value is defined as zero.

  • When you override equals() you should override hashCode() but the reverse is not required.

  • A BitSet is not part of the Collections Framework. It contains elements which are bits (ie. boolean primitive). Like Vector its not of fixed size and can grow as needed.

SCJP 5.0 Simulator Exam Kit
SCJP 6.0 Simulator Exam Kit
SCWCD5.0 Simulator Exam Kit
SCWCD4.0 Simulator Exam Kit
OCA 10g Simulator Exam Kit
SCJP 5.0 Simulator Free Trial
SCJP 6.0 Simulator Free Trial
SCWCD5.0 Simulator Free Trial
SCWCD4.0 Simulator Free Trial
OCA 10g Simulator Free Trial
The information you are posting should be related to java and ORACLE technology. Not political. Your Ad Here SCJP 5.0 Simulator 642+ Questions With Explanations
SCJP 6.0 Simulator 664+ Questions With Explanations
SCWCD 5.0 Simulator 556+ Questions With Explanations
SCWCD 4.0 Simulator 500+ Questions With Explanations
OCA 10g Simulator 594+ Questions With Explanations


Click to join PMP_FOURTH_EDITION

Subscribe to PMP_FOURTH_EDITION

Click to join SCJP_Mock_techFAQ360

Subscribe to techfaq360