Correct Answer: 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
2. What is the difference between an Interface and an Abstract class?
Correct Answer: 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
Correct Answer: 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
4. What are the different JDBC drivers available ?
Correct Answer: 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
Correct Answer: A table of data representing a database result set, which is usually generated by executing a statement that queries the database 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
Correct Answer: With respect to multithreading, synchronization is the capability to control the access of multiple threads to shared resources Without synchronization, it is possible for one thread to modify a shared object while another thread is in the process of using or updating that object's value This often leads to significant errors
Correct Answer: The wait(), notify(), and notifyAll() methods are used to provide an efficient way for threads to wait for a shared resource When a thread executes an object's wait() method, it enters the waiting state It only enters the ready state after another thread invokes the object's notify() or notifyAll() methods