Sep 22, 2008

JDBC Interview Questions Part -II

31) What separates one tier from another in the context of n-tiered architecture?

It depends on the application.

In a web application, for example, where tier 1 is a web-server, it may communicate with a tier 2 Application Server using RMI over IIOP, and subsequently tier 2 may communicate with tier 3 (data storage) using JDBC, etc.

Each of these tiers may be on separate physical machines or they may share the same box.

The important thing is the functionality at each tier.

* Tier 1 - Presentation - should be concerned mainly with display of user interfaces and/or data to the client browser or client system.
* Tier 2 - Application - should be concerned with business logic

Tier 3+ - Storage/Enterprise Systems - should be focused on data persistence and/or communication with other Enterprise Systems.

32) What areas should I focus on for the best performance in a JDBC application?

These are few points to consider:

* Use a connection pool mechanism whenever possible.
* Use prepared statements. These can be beneficial, for example with DB specific escaping, even when used only once.
* Use stored procedures when they can be created in a standard manner. Do watch out for DB specific SP definitions that can cause migration headaches.
* Even though the jdbc promotes portability, true portability comes from NOT depending on any database specific data types, functions and so on.
* Select only required columns rather than using select * from Tablexyz.
* Always close Statement and ResultSet objects as soon as possible.
* Write modular classes to handle database interaction specifics.
* Work with DatabaseMetaData to get information about database functionality.
* Softcode database specific parameters with, for example, properties files.
* Always catch AND handle database warnings and exceptions. Be sure to check for additional pending exceptions.
* Test your code with debug statements to determine the time it takes to execute your query and so on to help in tuning your code. Also use query plan functionality if available.
* Use proper ( and a single standard if possible ) formats, especially for dates.
* Use proper data types for specific kind of data. For example, store birthdate as a date type rather than, say, varchar.

33) How can I insert multiple rows into a database in a single transaction?

//turn off the implicit commit

Connection.setAutoCommit(false);

//..your insert/update/delete goes here

Connection.Commit();

a new transaction is implicitly started.

34) How do I convert a java.sql.Timestamp to a java.util.Date?

While Timesteamp extends Date, it stores the fractional part of the time within itself instead of within the Date superclass. If you need the partial seconds, you have to add them back in.



Date date = new Date(ts.getTime() + (ts.getNanos() / 1000000 ));

35) What is SQL?

SQL is a standardized language used to create, manipulate, examine, and manage relational databases.

36) Is Class.forName(Drivername) the only way to load a driver? Can I instantiate the Driver and use the object of the driver?


Yes, you can use the driver directly. Create an instance of the driver and use the connect method from the Driver interface. Note that there may actually be two instances created, due to the expected standard behavior of drivers when the class is loaded.

37) What's new in JDBC 3.0?

Probably the new features of most interest are:

* Savepoint support
* Reuse of prepared statements by connection pools
* Retrieval of auto-generated keys
* Ability to have multiple open ResultSet objects
* Ability to make internal updates to the data in Blob and Clob objects
* Ability to Update columns containing BLOB, CLOB, ARRAY and REF types
* Both java.sql and javax.sql ( JDBC 2.0 Optional Package ) are expected to be included with J2SE 1.4.

38) Why do I get the message "No Suitable Driver"?

Often the answer is given that the correct driver is not loaded. This may be the case, but more typically, the JDBC database URL passed is not properly constructed. When a Connection request is issued, the DriverManager asks each loaded driver if it understands the URL sent. If no driver responds that it understands the URL, then the "No Suitable Driver" message is returned.

39) When I create multiple Statements on my Connection, only the current Statement appears to be executed. What's the problem?

All JDBC objects are required to be threadsafe. Some drivers, unfortunately, implement this requirement by processing Statements serially. This means that additional Statements are not executed until the preceding Statement is completed.

40) Can a single thread open up mutliple connections simultaneously for the same database and for same table?


The general answer to this is yes. If that were not true, connection pools, for example, would not be possible. As always, however, this is completely dependent on the JDBC driver.

You can find out the theoretical maximum number of active Connections that your driver can obtain via the DatabaseMetaData.getMaxConnections method.


41) Can I ensure that my app has the latest data?

Typically an application retrieves multiple rows of data, providing a snapshot at an instant of time. Before a particular row is operated upon, the actual data may have been modified by another program. When it is essential that the most recent data is provided, a JDBC 2.0 driver provides the ResultSet.refreshRow method.

42) What does normalization mean for java.sql.Date and java.sql.Time?

These classes are thin wrappers extending java.util.Date, which has both date and time components. java.sql.Date should carry only date information and a normalized instance has the time information set to zeros. java.sql.Time should carry only time information and a normalized instance has the date set to the Java epoch ( January 1, 1970 ) and the milliseconds portion set to zero.

43) What's the best way, in terms of performance, to do multiple insert/update statements, a PreparedStatement or Batch Updates?

Because PreparedStatement objects are precompiled, their execution can be faster than that of Statement objects. Consequently, an SQL statement that is executed many times is often created as a PreparedStatement object to increase efficiency.

A CallableStatement object provides a way to call stored procedures in a standard manner for all DBMSes. Their execution can be faster than that of PreparedStatement object.

Batch updates are used when you want to execute multiple statements together. Actually, there is no conflict here. While it depends on the driver/DBMS engine as to whether or not you will get an actual performance benefit from batch updates, Statement, PreparedStatement, and CallableStatement can all execute the addBatch() method.

44) What is JDO?


JDO provides for the transparent persistence of data in a data store agnostic manner, supporting object, hierarchical, as well as relational stores.

45) What is the difference between setMaxRows(int) and SetFetchSize(int)? Can either reduce processing time?


setFetchSize(int) defines the number of rows that will be read from the database when the ResultSet needs more rows. The method in the java.sql.Statement interface will set the 'default' value for all the ResultSet derived from that Statement; the method in the java.sql.ResultSet interface will override that value for a specific ResultSet. Since database fetches can be expensive in a networked environment, fetch size has an impact on performance.

setMaxRows(int) sets the limit of the maximum nuber of rows in a ResultSet object. If this limit is exceeded, the excess rows are "silently dropped". That's all the API says, so the setMaxRows method may not help performance at all other than to decrease memory usage. A value of 0 (default) means no limit.

46) What is DML?


DML is an abbreviation for Data Manipulation Language. This portion of the SQL standard is concerned with manipulating the data in a database as opposed to the structure of a database. The core verbs for DML are SELECT, INSERT, DELETE, UPDATE, COMMIT and ROLLBACK.

47) What is DDL?

DDL is an abbreviation for Data Definition Language. This portion of the SQL standard is concerned with the creation, deletion and modification of database objects like tables, indexes and views. The core verbs for DDL are CREATE, ALTER and DROP. While most DBMS engines allow DDL to be used dynamically ( and available to JDBC ), it is often not supported in transactions.

48) How can I get information about foreign keys used in a table?

DatabaseMetaData.getImportedKeys() returns a ResultSet with data about foreign key columns, tables, sequence and update and delete rules.

49) How do I disallow NULL values in a table?

Null capability is a column integrity constraint, normally aplied at table creation time. Note that some databases won't allow the constraint to be applied after table creation. Most databases allow a default value for the column as well. The following SQL statement displays the NOT NULL constraint:

CREATE TABLE CoffeeTable (

Type VARCHAR(25) NOT NULL,

Pounds INTEGER NOT NULL,

Price NUMERIC(5, 2) NOT NULL

)

50) What isolation level is used by the DBMS when inserting, updating and selecting rows from a database?

The answer depends on both your code and the DBMS. If the program does not explicitly set the isolation level, the DBMS default is used. You can determine the default using DatabaseMetaData.getDefaultTransactionIsolation() and the level for the current Connection with Connection.getTransactionIsolation(). If the default is not appropriate for your transaction, change it with Connection.setTransactionIsolation(int level).


Contact me If any further Information

JDBC Inteview Questions Part-1

Q What is JDBC?

A

JDBC technology is an API (included in both J2SE and J2EE releases) that provides cross-DBMS connectivity to a wide range of SQL databases and access to other tabular data sources, such as spreadsheets or flat files. With a JDBC technology-enabled driver, you can connect all corporate data even in a heterogeneous environment

2 Q What are stored procedures?


A : A stored procedure is a set of statements/commands which reside in the database. The stored procedure is precompiled. Each Database has it's own stored procedure language,

3 Q What is JDBC Driver ?

A The JDBC Driver provides vendor-specific implementations of the abstract classes provided by the JDBC API. This driver is used to connect to the database.

4 Q What are the steps required to execute a query in JDBC?

A First we need to create an instance of a JDBC driver or load JDBC drivers, then we need to register this driver with DriverManager class. Then we can open a connection. By using this connection , we can create a statement object and this object will help us to execute the query.

5 Q What is DriverManager ?

A DriverManager is a class in java.sql package. It is the basic service for managing a set of JDBC drivers.

6 Q What is a ResultSet ? A
A table of data representing a database result set, which is usually generated by executing a statement that queries the database.

A ResultSet object maintains a cursor pointing to its current row of data. Initially the cursor is positioned before the first row. The next method moves the cursor to the next row, and because it returns false when there are no more rows in the ResultSet object, it can be used in a while loop to iterate through the result set.

7 Q What is Connection?

A Connection class represents a connection (session) with a specific database. SQL statements are executed and results are returned within the context of a connection.

A Connection object's database is able to provide information describing its tables, its supported SQL grammar, its stored procedures, the capabilities of this connection, and so on. This information is obtained with the getMetaData method.

8 Q What does Class.forName return?

A A class as loaded by the classloader.

9 Q What is Connection pooling?

A Connection pooling is a technique used for sharing server resources among requesting clients. Connection pooling increases the performance of Web applications by reusing active database connections instead of creating a new connection with every request. Connection pool manager maintains a pool of open database connections.

10 Q What are the different JDB drivers available? A There are mainly four type of JDBC drivers available. They are:

Type 1 : JDBC-ODBC Bridge Driver - A JDBC-ODBC bridge provides JDBC API access via one or more ODBC drivers. Note that some ODBC native code and in many cases native database client code must be loaded on each client machine that uses this type of driver. Hence, this kind of driver is generally most appropriate when automatic installation and downloading of a Java technology application is not important. For information on the JDBC-ODBC bridge driver provided by Sun.

Type 2: Native API Partly Java Driver- A native-API partly Java technology-enabled driver converts JDBC calls into calls on the client API for Oracle, Sybase, Informix, DB2, or other DBMS. Note that, like the bridge driver, this style of driver requires that some binary code be loaded on each client machine.

Type 3: Network protocol Driver- A net-protocol fully Java technology-enabled driver translates JDBC API calls into a DBMS-independent net protocol which is then translated to a DBMS protocol by a server. This net server middleware is able to connect all of its Java technology-based clients to many different databases. The specific protocol used depends on the vendor. In general, this is the most flexible JDBC API alternative. It is likely that all vendors of this solution will provide products suitable for Intranet use. In order for these products to also support Internet access they must handle the additional requirements for security, access through firewalls, etc., that the Web imposes. Several vendors are adding JDBC technology-based drivers to their existing database middleware products.

Type 4: JDBC Net pure Java Driver - A native-protocol fully Java technology-enabled driver converts JDBC technology calls into the network protocol used by DBMSs directly. This allows a direct call from the client machine to the DBMS server and is a practical solution for Intranet access. Since many of these protocols are proprietary the database vendors themselves will be the primary source for this style of driver. Several database vendors have these in progress.

11 Q What is the fastest type of JDBC driver?

A

Type 4 (JDBC Net pure Java Driver) is the fastest JDBC driver. Type 1 and Type 3 drivers will be slower than Type 2 drivers (the database calls are make at least three translations versus two), and Type 4 drivers are the fastest (only one translation).

12 Q Is the JDBC-ODBC Bridge multi-threaded?

A No. The JDBC-ODBC Bridge does not support multi threading. The JDBC-ODBC Bridge uses synchronized methods to serialize all of the calls that it makes to ODBC. Multi-threaded Java programs may use the Bridge, but they won't get the advantages of multi-threading.

13 Q What is cold backup, hot backup, warm backup recovery?

A : Cold backup means all these files must be backed up at the same time, before the database is restarted. Hot backup (official name is 'online backup' ) is a backup taken of each tablespace while the database is running and is being accessed by the users

14 Q What is the advantage of denormalization?

A : Data denormalization is reverse procedure, carried out purely for reasons of improving performance. It maybe efficient for a high-throughput system to replicate data for certain data.

15 Q How do you handle your own transaction ?

A :Connection Object has a method called setAutocommit ( boolean flag) . For handling our own transaction we can set the parameter to false and begin your transaction . Finally commit the transaction by calling the commit method.

21) Will a call to PreparedStatement.executeQuery() always close the ResultSet from the previous executeQuery()?


A ResultSet is automatically closed by the Statement that generated it when that Statement is closed, re-executed, or is used to retrieve the next result from a sequence of multiple results.

22) How do I upload SQL3 BLOB & CLOB data to a database?

Although one may simply extract BLOB & CLOB data from the database using the methods of the java.sql.CLOB and java.sql.BLOB, one must upload the data as normal java datatypes. The example below inserts a BLOB in the form of a byte[] and a CLOB in the form of a String into the database

Inserting SQL3 type data [BLOB & CLOB]

private void runInsert() {

try {

// Log

this.log("Inserting values ... ");



// Open a new Statement

PreparedStatement stmnt = conn.prepareStatement(

"insert Lobtest (image, name) values (?, ?)");



// Create a timestamp to measure the insert time

Date before = new java.util.Date();



for(int i = 0; i <>

// Set parameters

stmnt.setBytes(1, blobData);

stmnt.setString(2, "i: " + i + ";" + clobData);



// Perform insert

int rowsAffected = stmnt.executeUpdate();

}



// Get another timestamp to complete the time measurement

Date after = new java.util.Date();

this.log(" ... Done!");

log("Total run time: " + (

after.getTime() - before.getTime()));



// Close database resources

stmnt.close();

} catch(SQLException ex) {

this.log("Hmm... " + ex);

}

}

23) What is the difference between client and server database cursors?

What you see on the client side is the current row of the cursor which called a Result (ODBC) or ResultSet (JDBC). The cursor is a server-side entity only and remains on the server side.

24) Are prepared statements faster because they are compiled? if so, where and when are they compiled?


Prepared Statements aren't actually compiled, but they are bound by the JDBC driver. Depending on the driver, Prepared Statements can be a lot faster - if you re-use them. Some drivers bind the columns you request in the SQL statement. When you execute Connection.prepareStatement(), all the columns bindings take place, so the binding overhead does not occur each time you run the Prepared Statement. For additional information on Prepared Statement performance and binding see JDBC Performance Tips on IBM's website.

25) Is it possible to connect to multiple databases simultaneously? Can one extract/update data from multiple databases with a single statement?

In general, subject, as usual, to the capabilities of the specific driver implementation, one can connect to multiple databases at the same time. At least one driver ( and probably others ) will also handle commits across multiple connections. Obviously one should check the driver documentation rather than assuming these capabilities.

As to the second part of the question, one needs special middleware to deal with multiple databases in a single statement or to effectively treat them as one database. DRDA ( Distributed Relational Database Architecture -- I, at least, make it rhyme with "Gerta" ) is probably most commonly used to accomplish this.

Oracle has a product called Oracle Transparent Gateway for IBM DRDA and IBM has a product called DataJoiner that make multiple databases appear as one to your application. No doubt there are other products available

26) Why do I get an UnsupportedOperationException?


JDBC 2.0, introduced with the 1.2 version of Java, added several capabilities to JDBC. Instead of completely invalidating all the older JDBC 1.x drivers, when you try to perform a 2.0 task with a 1.x driver, an UnsupportedOperationException will be thrown. You need to update your driver if you wish to use the new capabilities.

27) What advantage is there to using prepared statements if I am using connection pooling or closing the connection frequently to avoid resource/connection/cursor limitations?

The ability to choose the 'best' efficiency ( or evaluate tradeoffs, if you prefer, ) is, at times, the most important piece of a mature developer's skillset. This is YAA ( Yet Another Area, ) where that maxim applies. Apparently there is an effort to allow prepared statements to work 'better' with connection pools in JDBC 3.0, but for now, one loses most of the original benefit of prepared statements when the connection is closed. A prepared statement obviously fits best when a statement differing only in variable criteria is executed over and over without closing the statement.

However, depending on the DB engine, the SQL may be cached and reused even for a different prepared statement and most of the work is done by the DB engine rather than the driver. In addition, prepared statements deal with data conversions that can be error prone in straight ahead, built on the fly SQL; handling quotes and dates in a manner transparent to the developer, for example.

28) What is JDBC, anyhow?

JDBC is Java's means of dynamically accessing tabular data, and primarily data in relational databases, in a generic manner, normally using standard SQL statements.

29) Can I reuse a Statement or must I create a new one for each query?

When using a JDBC compliant driver, you can use the same Statement for any number of queries. However, some older drivers did not always "respect the spec." Also note that a Statement SHOULD automatically close the current ResultSet before executing a new query, so be sure you are done with it before re-querying using the same Statement.

30) What is a three-tier architecture?

A three-tier architecture is any system which enforces a general separation between the following three parts:

1. Client Tier or user interface
2. Middle Tier or business logic
3. Data Storage Tier

Applied to web applications and distributed programming, the three logical tiers usually correspond to the physical separation between three types of devices or hosts:






Contact me If any further Information


All The Best

Core Java Inteview Questions Part -V

111 Q How does a try statement determine which catch clause should be used to handle an exception?

When an exception is thrown , the catch block of the try statement are examined in the order in which they appear. The first catch block that is capable of handling the exception is executed. The remaining catch blocks are ignored

112 Q How parameters are passed to methods in java program ?

All java method parameters in java are passed by value only. Obviously primitives are passed by value. In case of objects a copy of the reference is passed and so all the changes made in the method will persist.

113 Q If a class doesn't have any constructors, what will happen?

If a class doesn't have a constructor, the JVM will provide a default constructor for the class.

114 Q What will happen if a thread cannot acquire a lock on an object?

It enters to the waiting state until lock becomes available.

115 Q How does multithreading occurring on a computer with a single CPU?

The task scheduler of OS allocates an execution time for multiple tasks. By switching between different executing tasks, it creates the impression that tasks execute sequentially. But actually there is only one task is executed at a time.

116 Q What will happen if you are invoking a thread's interrupt method while the thread is waiting or sleeping?

When the task enters to the running state, it will throw an InterruptedException.

117 Q What are the different ways in which a thread can enter into waiting state?

There are three ways for a thread to enter into waiting state. By invoking its sleep() method, by blocking on I/O, by unsuccessfully attempting to acquire an object's lock, or by invoking an object's wait() method.

118 Q What are the the different ways for creating a thread?


A thread can be created by subclassing Thread, or by implementing the Runnable interface.

119 Q What is the difference between creating a thread by extending Thread class and by implementing Runnable interface? Which one should prefer?

When creating a thread by extending the Thread class, it is not mandatory to override the run method (If we are not overriding the run method , it is useless), because Thread class have already given a default implementation for run method. But if we are implementing Runnable , it is mandatory to override the run method. The preferred way to create a thread is by implementing Runnable interface, because it give loose coupling.

120 Q What is coupling?


Coupling is the dependency between different components of a system

121 Q How is an interface?

An interface is a collection of method declarations and constants. In java interfaces are used to achieve multiple inheritance. It sets a behavioral protocol to all implementing classes.

122 Q What is an abstract class?

An abstract class is an incomplete class. An abstract class is defined with the keyword abstract . We cannot create an object of the abstract class because it is not complete. It sets a behavioral protocol for all its child classes.

123 Q How will you define an interface?

An interface is defined with the keyword interface. Eg:
public interface MyInterface { }

124 Q How will you define an abstract class?

An abstract class is defined with the keyword abstract Eg:
public abstract class MyClass { }

125 Q What is any an anonymous class?

A An anonymous class is a local class with no name.

126 Q What is a JVM heap?

The heap is the runtime data area from which memory for all class instances and arrays is allocated. The heap may be of a fixed size or may be expanded. The heap is created on virtual machine start-up.

127 Q What is difference between string and StringTokenizer?


StringTokenizer as its name suggests tokenizes a String supplied to it as an argument to its constructor and the character based on which tokens of that string are to be made. The default tokenizing character is space " ".

128 Q What is the difference between array and ArrayList ?

Array is collection of same data type. Array size is fixed, It cannot be expanded. But ArrayList is a growable collection of objects. ArrayList is a part of Collections Framework and can work with only objects.

129 Q What is difference between java.lang .Class and java.lang.ClassLoader? What is the hierarchy of ClassLoader ?


Class 'java.lang.Class' represent classes and interfaces in a running Java application. JVM construct 'Class' object when class in loaded. Where as a ClassLoader is also a class which loads the class files into memory in order for the Java programs to execute properly. The hierarchy of ClassLoaders is:

Bootstrap ClassLoaders
Extensive ClassLoaders
System Classpath ClassLoaders
Application ClassLoaders

130 Q What is daemon thread?

Theards which are running on the background are called deamon threads. daemon thread is a thread which doesn't give any chance to run other threads once it enters into the run state it doesn't give any chance to run other threads. Normally it will run forever, but when all other non-daemon threads are dead, daemon thread will be killed by JVM

131 Q What is a green thread?

Native threads can switch between threads preemptively. Green threads switch only when control is explicitly given up by a thread ( Thread.yield(), Object.wait(), etc.) or a thread performs a blocking operation (read(), etc.). On multi-CPU machines, native threads can run more than one thread simultaneously by assigning different threads to different CPUs. Green threads run on only one CPU. Native threads create the appearance that many Java processes are running: each thread takes up its own entry in the process table. One clue that these are all threads of the same process is that the memory size is identical for all the threads - they are all using the same memory. The process table is not infinitely large, and processes can only create a limited number of threads before running out of system resources or hitting configured limits.

132 Q What is volatile variable?

A volatile variable is not allowed to have a local copy of a variable that is different from the value currently held in "main" memory. Volatile modifier requests the JVM to always access the shared copy of the variable so the its most current value is always read.

133 Q Why java does not support multiple inheritance?

Because the multiple inheritance causes the redundancy. Also we cannot solve diamond problem.

134 Q What is diamond problem?

The diamond problem is an ambiguity that can occur when a class multiply inherits from two classes that both descend from a common super class

135 Q How many JVM's we can run in a system?

Any number of JVMs can run in a system. Whenever we issue the command 'java' a new JVM will start.

136 Q Why Java is not 100% pure object oriented language?

Because java uses primitives.

137 Q Why ArrayList is faster than Vector?

Because Vector is synchronized. Synchronization reduces the performance.

138 Q What is the security mechnaism used in java?

Java uses sand box security model.

139 Q What is sandbox?

A sandbox is a security mechanism for safely running programs. The sandbox typically provides a tightly-controlled set of resources for guest programs to run in, such as scratch space on disk and memory.

140 Q What is phantom memory?

Phantom memory is the memory that does not exist in reality.

141 Q What is reflection?

Reflection is the process of finding out the different features of a class dynamically.

142 Q What are the differences between JIT and HotSpot?

The Hotspot VM is a collection of techniques, the most important of which is called adaptive optimization. The original JVMs interpreted byte codes one at a time. Second-generation JVMs added a JIT compiler, which compiles each method to native code upon first execution, then executes the native code. Thereafter, whenever the method is called, the native code is executed. The adaptive optimization technique used by Hotspot is a hybrid approach, one that combines byte code interpretation and run-time compilation to native code. Hotspot, unlike a regular JIT compiling VM, doesn't do "premature optimization"

143 Q What are the advantages and disadvantages of reference counting in garbage collection?

An advantage of this scheme is that it can run in small chunks of time closely linked with the execution of the program. These characteristic makes it particularly suitable for real-time environments where the program can't be interrupted for very long time. A disadvantage of reference counting is that it does not detect cycles. A cycle is two or more objects that refer to one another. Another disadvantage is the overhead of incrementing and decrementing the reference count each time. Because of these disadvantages, reference counting currently is out of favor.

144 Q How would you implement a thread pool?


The ThreadPool class is a generic implementation of a thread pool, which takes the following input Size of the pool to be constructed and name of the class which implements Runnable (which has a visible default constructor) and constructs a thread pool with active threads that are waiting for activation. once the threads have finished processing they come back and wait once again in the pool.

145 Q What is the difference between throw and throws clause?

throw is used to throw an exception manually, where as throws is used in the case of checked exceptions, to tell the compiler that we haven't handled the exception, so that the exception will be handled by the calling function.

146 Q What is JAR file?

A JAR file (short for Java Archive) is a ZIP file used to distribute a set of Java classes. It is used to store compiled Java classes and associated metadata that can constitute a program

147 Q What is a classloader?

A class loader is an object that is responsible for loading classes.

148 Q What is the difference between Comparable and Comparator ?

The Comparable is for natural ordering and Comparator is for custom ordering. But we can override the compareTo method of comparable interface to give a custom ordering.

149 Q What is the difference between List, Set and Map?

A Set is a collection that has no duplicate elements. A List is a collection that has an order associated with its elements. A map is a way of storing key/value pairs. The way of storing a Map is similar to two-column table.

150 Q What is the difference between Exception and Error ?

Error is unrecoverable.

Core Java Interview Questions Part-IV

91 Q What is java byte code?

Byte code is an sort of intermediate code. The byte code is processed by virtual machine.

92 Q What is method overloading?

Method overloading is the process of creating a new method with the same name and different signature.

93 Q What is method overriding?

Method overriding is the process of giving a new definition for an existing method in its child class.

94 Q What is finalize() ?

Finalize is a protected method in java. When the garbage collector is executes , it will first call finalize( ), and on the next garbage-collection it reclaim the objects memory. So finalize( ), gives you the chance to perform some cleanup operation at the time of garbage collection.

95 Q What is multi-threading?

Multi-threading is the scenario where more than one threads are running.

96 Q What is deadlock?

Deadlock is a situation when two threads are waiting on each other to release a resource. Each thread waiting for a resource which is held by the other waiting thread.

97 Q What is the difference between Iterator and Enumeration?

Iterator differ from enumeration in two ways Iterator allow the caller to remove elements from the underlying collection during the iteration with well-defined semantics. And , method names have been improved.

98 Q What is the Locale class?

A Locale object represents a specific geographical, political, or cultural region

99 Q What is internationalization?

Internationalization is the process of designing an application so that it can be adapted to various languages and regions without changes.

100 Q What is anonymous class ?

A An anonymous class is a type of inner class that don't have any name.

101 Q What is the difference between URL and URLConnection?

A URL represents the location of a resource, and a URLConnection represents a link for accessing or communicating with the resource at the location.

102 Q What are the two important TCP Socket classes?

ServerSocket and Socket. ServerSocket is useful for two-way socket communication. Socket class help us to read and write through the sockets. getInputStream() and getOutputStream() are the two methods available in Socket class.

103 Q Strings are immutable. But String s="Hello"; String s1=s+"World" returns HelloWorld how ?


Here actually a new object is created with the value of HelloWorld

104 Q What is classpath?

Classpath is the path where Java looks for loading class at run time and compile time.

105 Q What is path?

It is an the location where the OS will look for finding out the executable files and commands.

106 Q What is java collections?

Java collections is a set of classes, that allows operations on a collection of classes.

107 Q Can we compile a java program without main?

Yes, we can. In order to compile a java program, we don't require any main method. But to execute a java program we must have a main in it (unless it is an applet or servlet). Because main is the starting point of a java program.

108 Q What is a java compilation unit.

A compilation unit is a java source file.

109 What are the restrictions when overriding a method ?

Overridden methods must have the same name, argument list, and return type (i.e., they must have the exact signature of the method we are going to override, including return type.) The overriding method cannot be less visible than the method it overrides( i.e., a public method cannot be override to private). The overriding method may not throw any exceptions that may not be thrown by the overridden method

110 Q What is static initializer block? What is its use?

A static initializer block is a block of code that declares with the static keyword. It normally contains the block of code that must execute at the time of class loading. The static initializer block will execute only once at the time of loading the class only.

java Inteview Questions Part-III

61 Q What is numeric promotion?

Numeric promotion is the conversion of a smaller numeric type to a larger numeric type. In numerical promotion, byte, char, and short values are converted to int values. The int, long and float values are converted to the desired types if required.

62 Q What is the difference between the prefix and postfix forms of the ++ operator?

The prefix form first performs the increment operation and then returns the value of the increment operation. The postfix form first returns the current value of the expression and then performs the increment operation on that value.

63 Q What are synchronized methods and synchronized statements?

Synchronized methods are methods that are declared with the keyword synchronized. thread executes a synchronized method only after it has acquired the lock for the method's object or class. Synchronized statements are similar to synchronized methods. It is a block of code declared with synchronized keyword. A synchronized statement can be executed only after a thread has acquired the lock for the object or class referenced in the synchronized statement.

64 Q How can we create a thread?

A thread can be created by extending Thread class or by implementing Runnable interface. Then we need to override the method public void run().

65 Q What is the difference between a switch statement and an if statement?

If statement is used to select from two alternatives. It uses a boolean expression to decide which alternative should be executed. The expression in if must be a boolean value. The switch statement is used to select from multiple alternatives. The case values must be promoted to an to int value.

66 Q What is hashCode?

The hashcode of a Java Object is simply a number (32-bit signed int) that allows an object to be managed by a hash-based data structure. A hashcode should be, equal for equal object (this is mandatory!) , fast to compute based on all or most of the internal state of an object, use all or most of the space of 32-bit integers in a fairly uniform way , and likely to be different even for objects that are very similar. If you are overriding hashCode you need to override equals method also.

67 Q What is an I/O filter?

An I/O filter is an object that reads from one stream and writes to another, usually altering the data in some way as it is passed from one stream to another.

68 Q What is the difference between RandomAccessFile and File?

The File class contains information the files and directories of the local file system. The RandomAccessFile class contains the methods needed to directly access data contained in any part of a file.

69 Q What is final ?

A final is a keyword in java. If final keyword is applied to a variable, then the variable will become a constant. If it applied to method, sub classes cannot override the method. If final keyword is applied to a class we cannot extend from that class.

70 Q What is the difference among JVM Spec, JVM Implementation, JVM Runtime ?

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

71 Q How is the difference between thread and process?

A process runs in its own address space. No two processes share their address space. Threads will run in the same address space of the process that owns them.

72 Q What is the difference between Vector and ArrayList ?

Vector is synchronized, ArrayList is not. Vector is having a constructor to specify the incremental capacity. But ArrayList don't have. By default Vector grows by 100% but ArrayList grows by 50% only.

73 Q What is the difference between Hashtable and HashMap ?

Hashtable is synchronized . but HashMap is not synchronized. Hashtable does not allow null values , but HashMap allows null values.

74 Q What are the access modifiers available in Java.

Access modifier specify where a method or attribute can be used. Public is accessible from anywhere. Protected is accessible from the same class and its subclasses. Package/Default are accessible from the same package. Private is only accessible from within the class.

75 Q Why java is said to be pass-by-value ?

When assigning an object to a variable, we are actually assigning the memory address of that object to the variable. So the value passed is actually the memory location of the object. This results in object aliasing, meaning you can have many variables referring to the same object on the heap.

76 Q What do you mean by immutable ? How to create an immutable object ?

Immutability means an object cannot be modified after it has been initialized. There will not be any setter methods in an immutable class. And normally these classes will be final.

77 Q What is class loader in java ?

A class loader is a class that is responsible for loading the class. All JVM contains one class loader called primordial class loader.

78 Q What is a weak reference ?

A weak reference is the one that does nor prevent the referenced object from being garbage collected. The weak reference will not keep the object that it refers to alive. A weak reference is not counted as a reference in garbage collection. This will make the memory use more effective.

79 Q What is object cloning?

It is the process of duplicating an object so that two identical objects will exist in the memory at the same time.

80 Q What is object pooling?

Creating a large number of identical short lived objects is called object pooling. This helps to minimize the need of garbage collection and makes the memory use more effective.

81 Q What is garbage collection?

Garbage collection is the process of releasing memory used by unreferenced objects. It relieves the programmer from the process of manually releasing the memory used by objects .

82 Q What is the disadvantage of garbage collection? A

It adds an overhead that can affect performance. Additionally there is no guarantee that the object will be garbage collected.

83 Q What is a Dictionary?


Dictionary is a parent class for any class that maps keys to values., In a dictionary every key is associated with at most one value.

84 Q What is JAR file ?

JAR stands for Java Archive. This is a file format that enables you to bundle multiple files into a single archive file. A jar file will contains a manifest.mf file inside META-INF folder that describes the version and other features of jar file.

85 Q Why Java is not fully objective oriented ?


Due to the use of primitives in java, which are not objects.

86 Q What is a marker interface ?


An interface that contains no methods. Eg: Serializable, Cloneable, SingleThreadModel etc. It is used to just mark java classes that support certain capability.

87 Q What are tag interfaces?

Tag interface is an alternate name for marker interface.

88 Q What are the restrictions placed on static method ?


We cannot override static methods. We cannot access any object variables inside static method. Also the this reference also not available in static methods.

89 Q What is JVM?

JVM stands for Java Virtual Machine. It is the run time for java programs. All are java programs are running inside this JVM only. It converts java byte code to OS specific commands. In addition to governing the execution of an application's byte codes, the virtual machine handles related tasks such as managing the system's memory, providing security against malicious code, and managing multiple threads of program execution.

90 Q What is JIT?


JIT stands for Just In Time compiler. It compiles java byte code to native code.

Core Java Interview Questions Part-II

31 Q Does garbage collection guarantee that a program will not run out of memory?

Garbage collection does not guarantee that a program will not run out of memory. It is also possible for programs to create objects that are not subject to garbage collection. And there is no guarantee that Garbage Collection thread will be executed.

32 Q What is a native method?


A native method is a method that is implemented in a language other than Java.

33 Q What are different type of exceptions in Java?

There are two types of exceptions in java. Checked exceptions and Unchecked exceptions. Any exception that is is derived from Throwable and Exception is called checked exception except RuntimeException and its sub classes. The compiler will check whether the exception is caught or not at compile time. We need to catch the checked exception or declare in the throws clause. Any exception that is derived from Error and RuntimeException is called unchecked exception. We don't need to explicitly catch a unchecked exception.

34 Q Can we catch an error in our java program ?

Yes. We can . We can catch anything that is derived from Throwable. Since Error is a sub class of Throwable we can catch an error also.

35 Q What is thread priority?


Thread Priority is an integer value that identifies the relative order in which it should be executed with respect to others. The thread priority values ranging from 1- 10 and the default value is 5. But if a thread have higher priority doesn't means that it will execute first. The thread scheduling depends on the OS.

36 Q How many times may an object's finalize() method be invoked by the garbage collector?

Only once.

37 Q What is the difference between a continue statement and a break statement?

Break statement results in the immediate termination of the statement to which it applies (switch, for, do, or while). A continue statement is used to end the current loop iteration and return control to the loop statement.

38 Q What must a class do to implement an interface?


It must identify the interface in its implements clause. Also it must provide definition for all the methods in the interface otherwise it must be declared abstract.

39 Q What is an abstract class?


An abstract class is an incomplete class. It is declared with the modifier abstract. We cannot create objects of the abstract class. It is used to specify a common behavioral protocol for all its child classes.

40 Q What is the difference between notify and notifyAll method ?

notify wakes up a single thread that is waiting for object's monitor. If any threads are waiting on this object, one of them is chosen to be awakened. The choice is arbitrary and occurs at the discretion of the implementation. notifyAll Wakes up all threads that are waiting on this object's monitor. A thread waits on an object's monitor by calling one of the wait methods.

41 Q What does wait method do ?

It causes current thread to wait until either another thread invokes notify or notifyAll method of the current object, or a specified amount of time has elapsed.

42 Q What are the different states of a thread ?

The different thread states are ready, running, waiting and dead. 43 Q What is the difference between static and non static inner class ? A

A non-static inner class can have an object instances that are associated with instances of the class's outer class. A static inner class can not have any object instances.

44 Q What is the difference between String and StringBuffer class ?

Strings are immutable (constant), their values cannot be changed after they are created. StringBuffer supports mutable objects.

45 Q Which is the base class for all classes ?


java.lang.Object.

46 Q What is the difference between readers and streams?

Readers are character oriented where streams are byte oriented. The readers are having full support for Unicode data.

47 Q What is constructor chaining ?


When a constructor of a class is executed it will automatically call the default constructor of the super class (if no explicit call to any of the super class constructor) till the root of the hierarchy.

48 Q What are the different primitive data type in java ?

There are 8 primitive types in java. boolean , char, byte, short, int long, float, double.

49 Q What is static ?

static means one per class. static variables are created when the class loads. They are associated with the class. In order to access a static we don't need objects. We can directly access static methods and variable by calling classname.variablename.

50 Q Why we cannot override static methods?

Static means they are associated with a class. In static methods , the binding mechanism is static binding. So it must be available at the compile time.

51 Q What is the difference between static and non static variables ?

A static variable is associated with the class as a whole rather than with specific instances of a class. There will be only one value for static variable for all instances of that class. Non-static variables take on unique values with each object instance.

52 Q When does a compiler supplies a default constructor for a class?


If there is no other constructor exist in a class, the compiler will supply a default constructor.

53 Q What are the restrictions placed on overriding a method ?


The overridden method have the exact signature of the super class method, including the return type. The access specified cannot be less restrictive than the super class method. We cannot throw any new exceptions in overridden method.

54 Q What are the restrictions placed on overloading a method ?


Overloading methods must differ in their parameter list, or number of parameters.

55 Q What is casting ?

Casting means converting one type to another. There are mainly two types of casting. Casting between primitive types and casting between object references. Casting between primitive numeric types is used to convert larger data types to smaller data types. Casting between object references is used to refer to an object by a compatible class, interface, or array type reference.

56 Q What is the difference between == and equals ?


The equals method can be considered to perform a deep comparison of the value of an object, whereas the == operator performs a shallow comparison. If we are not overriding the equals method both will give the same result. == will is used to compare the object references. It is used to check whether two objects are points to the same reference.

57 Q What is a void return type ?

A void indicates that the method will not return anything.

58 Q What will happen if an exception is not caught ?

An uncaught exception results in the uncaughtException() method of the thread's ThreadGroup, which results in the termination of the program.

59 Q What are the different ways in which a thread can enter into waiting state?

There are three ways for a thread to enter into waiting state. By invoking its sleep() method, by blocking on I/O, by unsuccessfully attempting to acquire an object's lock, or by invoking an object's wait() method.

60 Q What is a ResourceBundle class?


The ResourceBundle class is used to store locale-specific resources that can be loaded by a program to create the program's appearance to the particular locale in which it is being run.



Contact me If any further Information


All The Best

Core Java Interview Questions Part-1

1 Q Why threads block or enters to waiting state on I/O?

A: Threads enters to waiting state or block on I/O because other threads can execute while the I/O operations are performed.

2 Q What are transient variables in java?

A: Transient variables are variable that cannot be serialized.

3 Q How Observer and Observable are used?


A: Subclass of Observable class maintain a list of observers. Whenever an Observable object is updated, it invokes the update() method of each of its observers to notify the observers that it has a changed state. An observer is any object that implements the interface Observer.

4 Q What is synchronization

Synchronization is the ability to control the access of multiple threads to shared resources. Synchronization stops multithreading. With synchronization , at a time only one thread will be able to access a shared resource.

5 Q What is List interface ?


List is an ordered collection of objects.

6 Q What is a Vector?


Vector is a grow able array of objects.

7 Q What is the difference between yield() and sleep()?

When a object invokes yield() it returns to ready state. But when an object invokes sleep() method enters to not ready state.

8 Q What are Wrapper Classes ?


They are wrappers to primitive data types. They allow us to access primitives as objects.

9 Q Can we call finalize() method ?


Yes. Nobody will stop us to call any method , if it is accessible in our class. But a garbage collector cannot call an object's finalize method if that object is reachable.

10 Q What is the difference between time slicing and preemptive scheduling ?

In preemptive scheduling, highest priority task continues execution till it enters a not running state or a higher priority task comes into existence. In time slicing, the task continues its execution for a predefined period of time and reenters the pool of ready tasks.

11 Q What is the initial state of a thread when it is created and started?

The thread is in ready state.

12 Q Can we declare an anonymous class as both extending a class and implementing an interface?

No. An anonymous class can extend a class or implement an interface, but it cannot be declared to do both

13 Q What are the differences between boolean & operator and & operator

When an expression containing the & operator is evaluated, both operands are evaluated. And the & operator is applied to the operand. When an expression containing && operator is evaluated, the first operand is evaluated. If the first operand returns a value of true then only the second operand is evaluated otherwise the second part will not get executed. && is also called short cut and.

14 Q What is the use of the finally block?

Finally is the block of code that executes always. The code in finally block will execute even if an exception is occurred. finally will not execute when the user calls System.exit().

15 Q What is an abstract method ?

An abstract method is a method that don't have a body. It is declared with modifier abstract.

16 Q what is a the difference between System.err and System.out

We can redirect System.out to another file but we cannot redirect System.err stream

17 Q What are the differences between an abstract class and an interface?

An abstract class can have concrete method, which is not allowed in an interface. Abstract class can have private or protected methods and variables and only public methods and variables are allowed in interface. We can implement more than one interface , but we can extend only one abstract class. Interfaces provides loose coupling where as abstract class provides tight coupling.

18 Q What is the difference between synchronized block and synchronized method ?


Synchronized blocks place locks for the specified block where as synchronized methods place locks for the entire method.

19 Q How can you force garbage collection in java?

You cannot force Garbage Collection, but you can request for it by calling the method System.gc(). But it doesn't mean that Garbage Collection will start immediately. The garbage collection is a low priority thread of JVM.

20 Q How can you call a constructor from another constructor ?

By using this() reference.

21 Q How can you call the constructor of super class ?


By using super() syntax.

22 Q What's the difference between normal methods and constructors?


Constructors must have the same name of the class and can not have a return type. They are called only once, while regular methods can be called whenever required. We cannot explicitly call a constructor.

23 Q What is the use of packages in java ?


Packages are a way to organize files in java when a project consists of more than one module. It helps in resolving name conflicts when different modules have classes with the same names.

24 Q What must be the order of catch blocks when catching more than one exception?


The sub classes must come first. Otherwise it will give a compile time error.

25 Q How can we call a method or variable of the super class from child class ?

We can use super.method() or super.variable syntax for this purpose.

26 Q If you are overriding equals() method of a class, what other methods you might need to override ?


A hashCode 27 Q How can you create your own exception ? A

Our class must extend either Exception or its sub class

28 Q What is serialization ?

Serialization is the process of saving the state of an object.

29 Q What is de-serialization?

De-serialization is the process of restoring the state of an object.

30 Q What is externalizable ?

It is an interface that extends Serializable. It is having two different methods writeExternal() and readExternal. This interface allows us to customize the output.

Java Interview Questions-1

Question: What is the main difference between Java platform and other platforms?
Answer: The Java platform differs from most other platforms in that it's a software-only platform that runs on top of other hardware-based platforms. The Java platform has two components:

1. The Java Virtual Machine (Java VM)

2. The Java Application Programming Interface (Java API)

Question: What is the Java Virtual Machine?
Answer: The Java Virtual Machine is a software that can be ported onto various hardware-based platforms.

Question: What is the Java API?
Answer: The Java API is a large collection of ready-made software components that provide many useful capabilities, such as graphical user interface (GUI) widgets.

Question: What is the package?
Answer: The package is a Java namespace or part of Java libraries. The Java API is grouped into libraries of related classes and interfaces; these libraries are known as packages.

Question: What is native code?
Answer: The native code is code that after you compile it, the compiled code runs on a specific hardware platform.

Question: Is Java code slower than native code?
Answer: Not really. As a platform-independent environment, the Java platform can be a bit slower than native code. However, smart compilers, well-tuned interpreters, and just-in-time bytecode compilers can bring performance close to that of native code without threatening portability.

Question: What is the serialization?
Answer: The serialization is a kind of mechanism that makes a class or a bean persistence by having its properties or fields and state information saved and restored to and from storage.

Question: How to make a class or a bean serializable?
Answer: By implementing either the java.io.Serializable interface, or the java.io.Externalizable interface. As long as one class in a class's inheritance hierarchy implements Serializable or Externalizable, that class is serializable.

The Trut about Infosys Firing, Wipro Firing, TCS, Accenture, CTS, Satyam

The Trut about Infosys Firing, Wipro Firing, TCS, Accenture, CTS, Satyam



TCS planning more layoffs, Wipro sacks 1000, Satyam to axe 4,500… It seems the days of pink slips have come to haunt Indian IT pros. Though all companies have termed these terminations performance-based, it is anyone’s guess that global slowdown has started hurting Indian IT cos. Late last year, the global IT giant IBM had reportedly laid off 700 entry-level trainee programmers (ELTPs) across its offices in India. Zensar too had reportedly given pink slips to 2 per cent of it staff, again the company claimed that it was on performance basis. The increments and salaries too have been a causality at most IT firms. Here’s looking into the companies who have taken the manpower call. India’s TOP corrupt states

After delayed appraisals and cut in payouts, India’s fourth largest IT service provider, Satyam Computer is reported to downsize its workforce by a whopping 4,500 employees. This translates to a little less than 9 per cent of the 51,000 employees that the company employs. Company sources reveal that 1,500 employees have been put under the performance improvement plan (PIP), euphemism for employees put on watch list and asked to shape up or ship out. Apart from this, 3,000 others have not been given any increment in the last appraisal cycle, thereby indicating that their services are dispensable. Last Friday, company’s chief Ramalinga Raju had sent out an email to all employees warning them, especially the ones on the bench, to not bunk office and be in their best dress code, failing which they may face strict disciplinary action. India’s TOP 15 best cities for IT-BPO growth

The company is reported to have handed pink slips to about 400 engineers and associates in Hyderabad, Pune and Visakhapatnam centers. The company management reportedly asked some of the employees to move out of its rolls to a contractual agreement or leave. Like its peers, Satyam too claims that the layoffs are a part of its appraisal system. Global head, human resources, SV Krishnan says, “Our experience has shown that around half of them exit the system either voluntarily or involuntarily. We have concluded our appraisal process some weeks back, and we believe we are witnessing similar trends like those in the past.” There were also reports that the company has deferred the joining date of 7500 graduates it had recruited from various college campuses this year. Cricket’s super captains

However, the company said that it has no intension of withdrawing these offers. Interestingly, the company has recently announced plans to hire 15000 this year.


According to a recent report Asia’s largest software exporter, Tata Consultancy Services is gearing up to another round of layoffs. The company also plans to discourage employees from staying on bench for more than two months on any of its centres. Incidentally, the company had also fired close to 500 employees, citing poor performance after its annual appraisal. It was also among the very first companies to announce a cut in the employee variable pay across the board. TOP Indian Television Anchors

The company which sees some project delays this quarter, but no cancellations, terms this as an employee utilisation exercise. The process will involve counselling employees and training them. Employees would be asked to undertake projects on which they have never worked on and will have to update their skills. Recently, TCS also retrenched 15 employees from its Australian subsidiary. Interestingly, last month too, the company had shown door to some 25 employees from its Kolkata and Bangalore centers for fudging CVs. By June-end, the total employee strength TCS stood at 116,300, across 64 countries. The company hired 8,982 employees in the first quarter. Why BPOs in India fail to retain good people

The bad news has come from India’s third largest IT outsourcer, Wipro Technologies too. The company has already laid off 1,000 employees, and another 2,000 employees have been put on scanner. The company is reviewing the performance of 60,000 global IT services employees from the senior leadership team down to the person with one-year experience.

Terming it as a regular exercise, company’s corporate vice-president (human resources) Pratik Kumar said, “As the appraisal cycle gets over, a multi-layer review happens. Following that, people who have fallen in the lower quadrants of performance are put on watch. Some are asked to pull up and others are asked to move on.” He added that, “We took a closer look at our hiring and realised that we did not need to hire more, since there were people on the bench.” Many employees are being given counselling to improve their performance, others may be asked to leave.


At the end of the quarter ended June 2008, Wipro’s IT services employee base had fallen to 61,345 from 62,070 employees at the end of the previous quarter. TOP Indian Reality Shows

In July, Mumbai-based Patni Computer Systems too gave pink slips to 400 employees on grounds of non-performance. Terming it as a routine exercise and not a slowdown setback, country’s sixth-largest exporter said that it is an effort to weed out non-performers. Rajesh Padmanabhan, vice-president and head, global HR, Patni, said, “This is an absolutely regular appraisal that is important for any performance-driven organisation. It is something standard we do every year. Over 650 killed in terror attacks in India in 8 years

Employees who have got 0-1 rating on a scale of 5 typically form the basis for the first-level shortlist. These are performance-based resignations; we’ve not issued any termination letters.” However, industry sources reveal that the laid off employees included several project managers as well. Are you ready for these Bollywood Blockbusters?

Incidentally, while in case of TCS, the retrenched number was about 0.5 per cent of the workforce, for Patni, it made for closer to 3 per cent of the 14,800-strong workforce. Narendra K Patni, Chairman and CEO, Patni Computer Systems said, “The overall market environment remains challenging with prevailing global uncertainties. We are cautious in our short-term outlook but remain positive on long-term prospects and are continuing our investments in identified areas”.

Sep 17, 2008

SCJP Examination Information

Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (CX-310-055)
The Sun Certified Programmer for Java 2 Platform 5.0 certification exam is for programmers experienced using the Java programming language.

Exam number :CX-310-055
Available at :Authorized Prometric testing centers
Prerequisites :None
Other exams/assignments required for this certification :None
Exam Type :Multiple choice and Drag and Drop
Cost :150 USD
Number of questions :72
Pass score :59% (43 of 72 questions)
Time Limit :175 minutes (2 hrs and 55 minutes)


Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 Upgrade Exam (CX-310-056)
The Sun Certified Programmer for Java 2 Platform 5.0 certification exam is for programmers experienced using the Java programming language.

Exam number :CX-310-056
Available at :Authorized Prometric testing centers
Prerequisites :Successful completion of previous version of Sun Certified Programmer for Java 2 Platform exam
Other exams/assignments required for this certification :None
Exam Type :Multiple choice and Drag and Drop
Cost :100 USD
Number of questions :46
Pass score :58% (27 of 46 questions)
Time Limit :105 minutes (1 hr and 45 minutes)


Sun Certified Programmer for Java 2 Platform 1.4 (CX-310-035)
The Sun Certified Programmer for Java 2 Platform 1.4 certification exam is for programmers experienced in using the basic syntax and structure of the Java programming language.

Exam number :CX-310-035
Available at :Authorized Prometric testing centers
Prerequisites :6-12 months of experience
Other exams/assignments required for this certification :None
Exam Type :Multiple choice and short answer
Cost :150 USD
Number of questions :61
Pass score :52% (32 of 61 questions)
Time Limit :120 minutes (2 hrs)


Sun Certified Programmer for Java 2 Platform 1.2 (CX-310-025)
The Sun Certified Programmer for Java 2 Platform 1.2 certification exam is for programmers experienced in using the basic syntax and structure of the Java programming language.

Exam number :CX-310-025
Available at :Authorized Prometric testing centers
Prerequisites :None
Other exams/assignments required for this certification :None
Exam Type :Multiple choice and short answer
Cost :150 USD
Number of questions :59
Pass score :61%
Time Limit :120 minutes (2 hrs)


Sun Certified Programmer for Java 2 Platform Upgrade Exam (CX-310-036)
The Sun Certified Programmer for Java 2 Platform Upgrade Exam certification exam is for candidates who have already successfully completed the Sun Certified Programmer for the Java 2 Platform examinations.

Exam number :CX-310-036
Available at :Authorized Prometric testing centers
Prerequisites :Successful completion of previous version of Sun Certified Programmer for Java 2 Platform exam
Other exams/assignments required for this certification :None
Exam Type :Multiple choice and short answer
Cost :100 USD
Number of questions :33
Pass score :51% (17 of 33 questions)
Time Limit :75 minutes (1 hr and 15 minutes)