Thursday, February 14, 2013

JQuery




jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.
jQuery is a JavaScript toolkit designed to simplify various tasks by writing less code. Here is the list of important core features supported by jQuery:
  • DOM manipulation: The jQuery made it easy to select DOM elements, traverse them and modifying their content by using cross-browser open source selector engine calledSizzle.
  • Event handling: The jQuery offers an elegant way to capture a wide variety of events, such as a user clicking on a link, without the need to clutter the HTML code itself with event handlers.
  • AJAX Support: The jQuery helps you a lot to develop a responsive and feature-rich site using AJAX technology.
  • Animations: The jQuery comes with plenty of built-in animation effects which you can use in your websites.
  • Lightweight: The jQuery is very lightweight library - about 19KB in size ( Minified and gzipped ).
  • Cross Browser Support: The jQuery has cross-browser support, and works well in IE 6.0+, FF 2.0+, Safari 3.0+, Chrome and Opera 9.0+
  • Latest Technology: The jQuery supports CSS3 selectors and basic XPath syntax.


    How to install jQuery ?

    This is very simple to do require setup to use jQuery library. You have to carry two simple steps:
    1. Go to the download page to grab the latest version available.
    2. Now put downloaded jquery-1.3.2.min.js file in a directory of your website, e.g. /jquery.
    The downloaded file name jquery-1.3.2.min.js may vary for your version. Your minified version would be kind of unreadable which would not have any new line or unnecessary words in it.
    The jQuery does not require any special installation and very similar to JavaScript, we do not need any compilation or build phase to use jQuery.

Monday, January 21, 2013

Java JDBC Connections


What is JDBC?

JDBC stands for Java Database Connectivity, which is a standard Java API for database-independent connectivity between the Java programming language and a wide range of databases.
The JDBC library includes APIs for each of the tasks commonly associated with database usage:
  • Making a connection to a database
  • Creating SQL or MySQL statements
  • Executing that SQL or MySQL queries in the database
  • Viewing & Modifying the resulting records
Fundamentally, JDBC is a specification that provides a complete set of interfaces that allows for portable access to an underlying database. Java can be used to write different types of executables, such as:
  • Java Applications
  • Java Applets
  • Java Servlets
  • Java ServerPages (JSPs)
  • Enterprise JavaBeans (EJBs)
All of these different executables are able to use a JDBC driver to access a database and take advantage of the stored data.
JDBC provides the same capabilities as ODBC, allowing Java programs to contain database-independent code.

Pre-Requisite:

Before progressing on this tutorial you need to have good understanding on the following two subjects:

JDBC Architecture:

The JDBC API supports both two-tier and three-tier processing models for database access but in general JDBC Architecture consists of two layers:
  1. JDBC API: This provides the application-to-JDBC Manager connection.
  2. JDBC Driver API: This supports the JDBC Manager-to-Driver Connection.
The JDBC API uses a driver manager and database-specific drivers to provide transparent connectivity to heterogeneous databases.
The JDBC driver manager ensures that the correct driver is used to access each data source. The driver manager is capable of supporting multiple concurrent drivers connected to multiple heterogeneous databases.
Following is the architectural diagram, which shows the location of the driver manager with respect to the JDBC drivers and the Java application:
JDBC Architecture

Common JDBC Components:

The JDBC API provides the following interfaces and classes:
  • DriverManager: This class manages a list of database drivers. Matches connection requests from the java application with the proper database driver using communication subprotocol. The first driver that recognizes a certain subprotocol under JDBC will be used to establish a database Connection.
  • Driver: This interface handles the communications with the database server. You will interact directly with Driver objects very rarely. Instead, you use DriverManager objects, which manages objects of this type. It also abstracts the details associated with working with Driver objects
  • Connection : This interface with all methods for contacting a database. The connection object represents communication context, i.e., all communication with database is through connection object only.
  • Statement : You use objects created from this interface to submit the SQL statements to the database. Some derived interfaces accept parameters in addition to executing stored procedures.
  • ResultSet: These objects hold data retrieved from a database after you execute an SQL query using Statement objects. It acts as an iterator to allow you to move through its data.
  • SQLException: This class handles any errors that occur in a database application.

The JDBC 4.0 Packages

The java.sql and javax.sql are the primary packages for JDBC 4.0. This is the latest JDBC version at the time of writing this tutorial. It offers the main classes for interacting with your data sources.
The new features in these packages include changes in the following areas:
  • Automatic database driver loading
  • Exception handling improvements
  • Enhanced BLOB/CLOB functionality
  • Connection and statement interface enhancements
  • National character set support
  • SQL ROWID access
  • SQL 2003 XML data type support
  • Annotations





    What is JDBC Driver ?

    JDBC drivers implement the defined interfaces in the JDBC API for interacting with your database server.
    For example, using JDBC drivers enable you to open database connections and to interact with it by sending SQL or database commands then receiving results with Java.
    The Java.sql package that ships with JDK contains various classes with their behaviours defined and their actual implementaions are done in third-party drivers. Third party vendors implements the java.sql.Driver interface in their database driver.

    JDBC Drivers Types:

    JDBC driver implementations vary because of the wide variety of operating systems and hardware platforms in which Java operates. Sun has divided the implementation types into four categories, Types 1, 2, 3, and 4, which is explained below:

    Type 1: JDBC-ODBC Bridge Driver:

    In a Type 1 driver, a JDBC bridge is used to access ODBC drivers installed on each client machine. Using ODBC requires configuring on your system a Data Source Name (DSN) that represents the target database.
    When Java first came out, this was a useful driver because most databases only supported ODBC access but now this type of driver is recommended only for experimental use or when no other alternative is available.
    DBMS Driver type 1
    The JDBC-ODBC bridge that comes with JDK 1.2 is a good example of this kind of driver.

    Type 2: JDBC-Native API:

    In a Type 2 driver, JDBC API calls are converted into native C/C++ API calls which are unique to the database. These drivers typically provided by the database vendors and used in the same manner as the JDBC-ODBC Bridge, the vendor-specific driver must be installed on each client machine.
    If we change the Database we have to change the native API as it is specific to a database and they are mostly obsolete now but you may realize some speed increase with a Type 2 driver, because it eliminates ODBC's overhead.
    DBMS Driver type 2
    The Oracle Call Interface (OCI) driver is an example of a Type 2 driver.

    Type 3: JDBC-Net pure Java:

    In a Type 3 driver, a three-tier approach is used to accessing databases. The JDBC clients use standard network sockets to communicate with an middleware application server. The socket information is then translated by the middleware application server into the call format required by the DBMS, and forwarded to the database server.
    This kind of driver is extremely flexible, since it requires no code installed on the client and a single driver can actually provide access to multiple databases.
    DBMS Driver type 3
    You can think of the application server as a JDBC "proxy," meaning that it makes calls for the client application. As a result, you need some knowledge of the application server's configuration in order to effectively use this driver type.
    Your application server might use a Type 1, 2, or 4 driver to communicate with the database, understanding the nuances will prove helpful.

    Type 4: 100% pure Java:

    In a Type 4 driver, a pure Java-based driver that communicates directly with vendor's database through socket connection. This is the highest performance driver available for the database and is usually provided by the vendor itself.
    This kind of driver is extremely flexible, you don't need to install special software on the client or server. Further, these drivers can be downloaded dynamically.
    DBMS Driver type 4
    MySQL's Connector/J driver is a Type 4 driver. Because of the proprietary nature of their network protocols, database vendors usually supply type 4 drivers.

    Which Driver should be used?

    If you are accessing one type of database, such as Oracle, Sybase, or IBM, the preferred driver type is 4.
    If your Java application is accessing multiple types of databases at the same time, type 3 is the preferred driver.
    Type 2 drivers are useful in situations where a type 3 or type 4 driver is not available yet for your database.
    The type 1 driver is not considered a deployment-level driver and is typically used for development and testing purposes only.




    After you've installed the appropriate driver, it's time to establish a database connection using JDBC.
    The programming involved to establish a JDBC connection is fairly simple. Here are these simple four steps:
    1. Import JDBC Packages: Add import statements to your Java program to import required classes in your Java code.
    2. Register JDBC Driver: This step causes the JVM to load the desired driver implementation into memory so it can fulfill your JDBC requests.
    3. Database URL Formulation: This is to create a properly formatted address that points to the database to which you wish to connect.
    4. Create Connection Object: Finally, code a call to the DriverManager object'sgetConnection( ) method to establish actual database connection.

    Import JDBC Packages:

    The Import statements tell the Java compiler where to find the classes you reference in your code and are placed at the very beginning of your source code.
    To use the standard JDBC package, which allows you to select, insert, update, and delete data in SQL tables, add the following imports to your source code:
    import java.sql.* ;  // for standard JDBC programs
    import java.math.* ; // for BigDecimal and BigInteger support
    

    Register JDBC Driver:

    You must register the your driver in your program before you use it. Registering the driver is the process by which the Oracle driver's class file is loaded into memory so it can be utilized as an implementation of the JDBC interfaces.
    You need to do this registration only once in your program. You can register a driver in one of two ways.

    Approach (I) - Class.forName():

    The most common approach to register a driver is to use Java's Class.forName() method to dynamically load the driver's class file into memory, which automatically registers it. This method is preferable because it allows you to make the driver registration configurable and portable.
    The following example uses Class.forName( ) to register the Oracle driver:
    try {
       Class.forName("oracle.jdbc.driver.OracleDriver");
    }
    catch(ClassNotFoundException ex) {
       System.out.println("Error: unable to load driver class!");
       System.exit(1);
    }
    
    You can use getInstance() method to work around noncompliant JVMs, but then you'll have to code for two extra Exceptions as follows:
    try {
       Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    }
    catch(ClassNotFoundException ex) {
       System.out.println("Error: unable to load driver class!");
       System.exit(1);
    catch(IllegalAccessException ex) {
       System.out.println("Error: access problem while loading!");
       System.exit(2);
    catch(InstantiationException ex) {
       System.out.println("Error: unable to instantiate driver!");
       System.exit(3);
    }
    

    Approach (II) - DriverManager.registerDriver():

    The second approach you can use to register a driver is to use the staticDriverManager.registerDriver() method.
    You should use the registerDriver() method if you are using a non-JDK compliant JVM, such as the one provided by Microsoft.
    The following example uses registerDriver() to register the Oracle driver:
    try {
       Driver myDriver = new oracle.jdbc.driver.OracleDriver();
       DriverManager.registerDriver( myDriver );
    }
    catch(ClassNotFoundException ex) {
       System.out.println("Error: unable to load driver class!");
       System.exit(1);
    }
    

    Database URL Formulation:

    After you've loaded the driver, you can establish a connection using theDriverManager.getConnection() method. For easy reference, let me list the three overloaded DriverManager.getConnection() methods:
    1. getConnection(String url)
    2. getConnection(String url, Properties prop)
    3. getConnection(String url, String user, String password)
    Here each form requires a database URL. A database URL is an address that points to your database.
    Formulating a database URL is where most of the problems associated with establishing a connection occur.
    Following table lists down popular JDBC driver names and database URL.
    RDBMSJDBC driver nameURL format
    MySQLcom.mysql.jdbc.Driverjdbc:mysql://hostname/ databaseName
    ORACLEoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@hostname:port Number:databaseName
    DB2COM.ibm.db2.jdbc.net.DB2Driverjdbc:db2:hostname:port Number/databaseName
    Sybasecom.sybase.jdbc.SybDriverjdbc:sybase:Tds:hostname: port Number/databaseName
    All the highlighted part in URL format is static and you need to change only remaining part as per your database setup.

    Create Connection Object:

    Using a database URL with a username and password:

    I listed down three forms of DriverManager.getConnection() method to create a connection object. The most commonly used form of getConnection() requires you to pass a database URL, a username, and a password:
    Assuming you are using Oracle's thin driver, you'll specify a host:port:databaseName value for the database portion of the URL.
    If you have a host at TCP/IP address 192.0.0.1 with a host name of amrood, and your Oracle listener is configured to listen on port 1521, and your database name is EMP, then complete database URL would then be:
    jdbc:oracle:thin:@amrood:1521:EMP
    
    Now you have to call getConnection() method with appropriate username and password to get aConnection object as follows:
    String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
    String USER = "username";
    String PASS = "password"
    Connection conn = DriverManager.getConnection(URL, USER, PASS);
    

    Using only a database URL:

    A second form of the DriverManager.getConnection( ) method requires only a database URL:
    DriverManager.getConnection(String url);
    
    However, in this case, the database URL includes the username and password and has the following general form:
    jdbc:oracle:driver:username/password@database
    
    So the above connection can be created as follows:
    String URL = "jdbc:oracle:thin:username/password@amrood:1521:EMP";
    Connection conn = DriverManager.getConnection(URL);
    

    Using a database URL and a Properties object:

    A third form of the DriverManager.getConnection( ) method requires a database URL and a Properties object:
    DriverManager.getConnection(String url, Properties info);
    
    A Properties object holds a set of keyword-value pairs. It's used to pass driver properties to the driver during a call to the getConnection() method.
    To make the same connection made by the previous examples, use the following code:
    import java.util.*;
    
    String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
    Properties info = new Properties( );
    info.put( "user", "username" );
    info.put( "password", "password" );
    
    Connection conn = DriverManager.getConnection(URL, info);
    

    Closing JDBC connections:

    At the end of your JDBC program, it is required explicitly close all the connections to the database to end each database session. However, if you forget, Java's garbage collector will close the connection when it cleans up stale objects.
    Relying on garbage collection, especially in database programming, is very poor programming practice. You should make a habit of always closing the connection with the close() method associated with connection object.
    To ensure that a connection is closed, you could provide a finally block in your code. A finallyblock always executes, regardless if an exception occurs or not.
    To close above opened connection you should call close() method as follows:
    conn.close();
    
    Explicitly closing a connection conserves DBMS resources, which will make your database administrator happy.

    NOTE:- IF U GET MORE DETAILS http://www.javatpoint.com/jdbc-tutorial

Java Collection

Collection framework provides an architecture to store and manipulate the group of objects.All the operations that you perform on  data  such as searching,sorting,insertion,deletion etc.can be performed by java Collection Framework.Collection simply means single unit of objects.Collection framework provides many interfaces(set,list,queue,deque)andclasses(ArrayList,LinkList,Vector,HashSet,TreeSet,
PriorityQueue,LinkedHashSet)


A collections framework is a unified architecture for representing and manipulating collections. All collections frameworks contain the following:
  • Interfaces: These are abstract data types that represent collections. Interfaces allow collections to be manipulated independently of the details of their representation. In object-oriented languages, interfaces generally form a hierarchy.
  • Implementations i.e. Classes: These are the concrete implementations of the collection interfaces. In essence, they are reusable data structures.
  • Algorithms: These are the methods that perform useful computations, such as searching and sorting, on objects that implement collection interfaces. The algorithms are said to be polymorphic: that is, the same method can be used on many different implementations of the appropriate collection interface.
In addition to collections, the framework defines several map interfaces and classes. Maps store key/value pairs. Although maps are not collections in the proper use of the term, but they are fully integrated with collections.

The Collection Interfaces:

The collections framework defines several interfaces. This section provides an overview of each interface:
SNInterfaces with Description
1The Collection Interface
This enables you to work with groups of objects; it is at the top of the collections hierarchy.
2The List Interface
This extends Collection and an instance of List stores an ordered collection of elements.
3The Set
This extends Collection to handle sets, which must contain unique elements
4The SortedSet
This extends Set to handle sorted sets
5The Map
This maps unique keys to values.
6The Map.Entry
This describes an element (a key/value pair) in a map. This is an inner class of Map.
7The SortedMap
This extends Map so that the keys are maintained in ascending order.
8The Enumeration
This is legacy interface and defines the methods by which you can enumerate (obtain one at a time) the elements in a collection of objects. This legacy interface has been superceded by Iterator.

The Collection Classes:

Java provides a set of standard collection classes that implement Collection interfaces. Some of the classes provide full implementations that can be used as-is and others are abstract class, providing skeletal implementations that are used as starting points for creating concrete collections.
The standard collection classes are summarized in the following table:
SNClasses with Description
1AbstractCollection 
Implements most of the Collection interface.
2AbstractList 
Extends AbstractCollection and implements most of the List interface.
3AbstractSequentialList 
Extends AbstractList for use by a collection that uses sequential rather than random access of its elements.
4LinkedList 
Implements a linked list by extending AbstractSequentialList.
5ArrayList 
Implements a dynamic array by extending AbstractList.
6AbstractSet 
Extends AbstractCollection and implements most of the Set interface.
7HashSet 
Extends AbstractSet for use with a hash table.
8LinkedHashSet 
Extends HashSet to allow insertion-order iterations.
9TreeSet 
Implements a set stored in a tree. Extends AbstractSet.
10AbstractMap 
Implements most of the Map interface.
11HashMap 
Extends AbstractMap to use a hash table.
12TreeMap 
Extends AbstractMap to use a tree.
13WeakHashMap 
Extends AbstractMap to use a hash table with weak keys.
14LinkedHashMap 
Extends HashMap to allow insertion-order iterations.
15IdentityHashMap 
Extends AbstractMap and uses reference equality when comparing documents.
The AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList and AbstractMap classes provide skeletal implementations of the core collection interfaces, to minimize the effort required to implement them.
The following legacy classes defined by java.util has been discussed in previous tutorial:
SNClasses with Description
1Vector 
This implements a dynamic array. It is similar to ArrayList, but with some differences.
2Stack 
Stack is a subclass of Vector that implements a standard last-in, first-out stack.
3Dictionary
Dictionary is an abstract class that represents a key/value storage repository and operates much like Map.
4Hashtable
Hashtable was part of the original java.util and is a concrete implementation of a Dictionary.
5Properties
Properties is a subclass of Hashtable. It is used to maintain lists of values in which the key is a String and the value is also a String.
6BitSet
A BitSet class creates a special type of array that holds bit values. This array can increase in size as needed.

The Collection Algorithms:

The collections framework defines several algorithms that can be applied to collections and maps. These algorithms are defined as static methods within the Collections class.
Several of the methods can throw a ClassCastException, which occurs when an attempt is made to compare incompatible types, or an UnsupportedOperationException, which occurs when an attempt is made to modify an unmodifiable collection.
Collections defines three static variables: EMPTY_SET, EMPTY_LIST, and EMPTY_MAP. All are immutable.
SNAlgorithms with Description
1The Collection Algorithms
Here is a list of all the algorithm implementation.

How to use an Iterator ?

Often, you will want to cycle through the elements in a collection. For example, you might want to display each element.
The easiest way to do this is to employ an iterator, which is an object that implements either the Iterator or the ListIterator interface.
Iterator enables you to cycle through a collection, obtaining or removing elements. ListIterator extends Iterator to allow bidirectional traversal of a list, and the modification of elements.
SNIterator Methods with Description
1Using Java Iterator
Here is a list of all the methods with examples provided by Iterator and ListIterator interfaces.

How to use an Comparator ?

Both TreeSet and TreeMap store elements in sorted order. However, it is the comparator that defines precisely what sorted order means.
This interface lets us sort a given collection any number of different ways. Also this interface can be used to sort any instances of any class.(even classes we cannot modify).

NOTE:- To get more information about collection.visit this link below http://www.javatpoint.com/collection-framework

Friday, August 31, 2012

Top 5 open source IDE


1) NetBeans
Netbeans is a robust IDE for developers that allows developers to create web, desktop and mobile applications. While Java is the main language supported by NetBeans, it is also extensible and plugins can be installed easily to support C, C++, Ruby on Rails and PHP to name a few.
NetBeans also sports an impressive GUI builder that helps build good front-ends for your application without any hassle.
The only drawback is that the Java code automatically generated by NetBeans is quite messy and cannot be refactored easily. NetBeans also offers good static analysis to detect errors in your code as your typing them out.
Another cool feature is that you can access your databases and servers from within NetBeans itself, allowing coders to stop and start servers directly from the interface.

2) Eclipse Juno
One of the most popular software IDEs around, Eclipse has just released a new version called “Juno” in June 2012. Eclipse is a feature-packed development environment, and can be downloaded as a complete package, or just platforms for Java/C++ development.
Though it is a free software, Eclipse has enterprise-level features, including an integrated Unit testing suite and static code analysis tools, including smart autocomplete features that suggests class functions to accelerate the coding process.
There are also a plethora of plug-ins that can be downloaded and installed to Eclipse that allow great extensibility for devlepment. However, due to the vastness of features available in Eclipse, it can be a bit intimidating to novice programmers. The good thing is that there are plenty of Java tutorials on the net catered specifically for Eclipse, helping to shorten the learning curve.
3) Visual Studio Express
One of the most standard platforms in the industry, Visual Studio has made a name for itself as a stable and useful coding tool. Visual C# express is a powerful tool that can be used to develop applications that run on the .NET framework.
Visual C++ express allows developers to make native Win32 applications. Visual Studio has good features such as IntelliSense, which is Microsoft's version of autocompletion, that helps coders to complete function names and variable names without developers having to look them up constantly.
Visual C# can also be used with XNA Game Studio to develop games for Windows and Xbox 360. Visual Studio Express is available here.  
4) Code::Blocks
Code::Blocks is a free IDE that supports many compilers in C and C++, and can also be extended to support other languages.
One of the favorite features of this IDE is the customizable syntax highlighting and code folding, which makes code more readable to the programmer. It comes with a full breakpoint debugger.
Another useful feature is that you can import your projects seamlessly from other IDEs, such as Dev C++ and Visual C++.
5) Aptana Studio
Aptana is the best free IDE for building web applications. Aptana is specifically designed to support rapid web development, with features for code assisting in HTML,CSS, Javascript and PHP.
Another very useful feature in Aptana's code assist is that it includes information on browser support for various  javascript methods and HTML elements. Ruby on Rails is also supported through RadRails, a plugin that supports full development on the Rails platform.
The integrated debugger is great at detecting bugs in Ruby and Javascript code, making life way easier for developers who used to simulate code repeatedly in browsers to check if it worked.

Java software opens pc to hackers

                                                                                                                                                                           
Computer security firms are urging PC users to disable Java software in their browsers, saying the widely installed, free software from Oracle Corp opens machines to hacker attacks and there is no way to defend against them.
The warnings, which began emerging over the weekend from Rapid7, AlienVault and other cyber security firms, are likely to unnerve a PC community scrambling to fend off growing security threats from hackers, viruses and malware.
Researchers have identified code that attacks machines by exploiting a newly discovered flaw in the latest version of Java. Once in, a second piece of software called "Poison Ivy" is released that lets hackers gain control of the infected computer, said Jaime Blasco, a research manager with AlienVault Labs.
Several security firms advised users to immediately disable Java software installed in some form on the vast majority of personal computers around the world in their Internet browsers. Oracle says that Java sits on 97 percent of enterprise desktops.
"If exploited, the attacker will be able to perform any action the victim can perform on the victim's machine," said Tod Beardsley, an engineering manager with Rapid7's Metasploit division.
Computers can get infected without their users' knowledge simply by a visit to any website that has been compromised by hackers, said Joshua Drake, a senior research scientist with the security firm Accuvant.
Java is a computer language that enables programmers to write one set of code to run on virtually any type of machine. It is widely used on the Internet so that Web developers can make their sites accessible from multiple browsers running on Microsoft Windows PCs or Macs from Apple Inc.
An Oracle spokeswoman said she could not immediately comment on the matter.
Security experts recommended that users not enable Java for universal use on their browsers. Instead, they said it was safest to allow use of Java browser plug-ins on a case-by-case basis when prompted for permission by trusted programs such as GoToMeeting, a Web-based collaboration tool from Citrix Systems Inc.
Rapid7 has set up a web page that tells users whether their browser has a Java plug-in installed that is vulnerable to attack: http://www.isjavaexploitable.com/ 

Tuesday, July 31, 2012

JAVA BOOK

YOU CAN DOWNLOAD JAVA PDF FILE THROUGH THIS LINK.. IT IS EASILY TO LEARN JAVA..
https://www.box.com/s/5b6f5cb4c297d7a2a421

JAVA INTERVIEW QUESTIONS FOR FRESHER


Q:What is the difference between an Interface and an Abstract class?
A: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.
.
 


Q:What is the purpose of garbage collection in Java, and when is it used?
A: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.
 


Q:Describe synchronization in respect to multithreading.
A: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. 
 


Q:Explain different way of using thread?
A: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.
 


Q:What are pass by reference and passby value?
A: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. 
 


Q:What is HashMap and Map?
A:Map is Interface and Hashmap is class that implements that.
 


Q:Difference between HashMap and HashTable?
A: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.
 


Q:Difference between Vector and ArrayList?
A:Vector is synchronized whereas arraylist is not.
 


Q:Difference between Swing and Awt?
A:AWT are heavy-weight componenets. Swings are light-weight components. Hence swing works faster than AWT.


Q:What is the difference between a constructor and a method?
A: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.
 


Q:What is an Iterator?
A: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.
 


Q: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.
A: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
.
 


Q:What is an abstract class?
A: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.
 


Q:What is static in java?
A: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.
 


Q:What is final?
A: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).