J2EE FREQUENTLY ASKED QUESTIONS

Q: What is the JavaTM 2 Platform, Enterprise Edition (J2EE)?

Java 2 Platform, Enterprise Edition (J2EE) is a platform that enables solutions for developing, deploying and managing multi-tier server-centric applications. J2EE utilizes Java 2 Platform, Standard Edition to extend a complete, stable, secure, fast Java platform to the enterprise level. It delivers value to the enterprise by enabling a platform which significantly reduces the cost and complexity of developing multi-tier solutions, resulting in services that can be rapidly deployed and easily enhanced.

Q: What are the main benefits of J2EE?

J2EE provides the following:

  1. A unified platform for building, deploying and managing enterprise-class software without locking users into a vendor specific-architecture and saves IT time.
  2. A platform that will allow enterprise-class application the ability to run anywhere.
  3. A platform with a complete range of readily available enterprise-class services.
  4. A single easy-to-learn blueprint programming model for J2EE.
  5. A platform that is built upon and leverages existing IT investments and guarantees that enterprise-class software will work on multiple platforms.

Q: What technologies are included in J2EE?

The primary technologies in J2EE are: Enterprise JavaBeansTM, JavaServer PagesTM, servlets, the Java Naming and Directory InterfaceTM (JNDI), the Java Transaction API (JTA), CORBA, and the JDBCTM data access API.

Q: How does J2EE relate to Enterprise JavaBeans technology?

Enterprise JavaBeans (EJB) technology is the basis of J2EE. EJB technology provides the scaleable architecture for executing business logic in a distributed computing environment. J2EE makes the life of an enterprise developer easier by combining the EJB component architecture with other enterprise technologies to solutions on the Java platform for seamless development and deployment of server side applications.

Q: Who needs J2EE?

ISVs need J2EE because it gives them a blueprint for providing a complete enterprise computing solution on the Java platform. Enterprise developers need J2EE because writing distributed business applications is hard, and they need a high-productivity solution that allows them to focus only on writing their business logic and having a full range of enterprise-class services to rely on, like transactional distributed objects, message oriented middleware, and naming and directory services.

Q: What is the purpose of the Reference Implementation?

The purpose of the reference implementation is to validate the specifications. In short, it is to prove that the specifications can be implemented.

Q: Why don`t you allow the binary reference implementation to be deployed or redistributed?

We do not allow the binary reference implementation to be deployed or redistributed at the request of our partners. The J2EE reference implementation is essentially a full-featured application server. To make it available on the market would provide a product that competes with the companies that we want to adopt the technology. In this light, we set up the licensing terms to honor this request.

Q: Is XML supported in J2EE?

XML is an essential component in the J2EE platform. J2EE will provide a framework for business-to-business data interchange using XML. Currently, JavaServer Pages framework can be used to generate and consume XML between servers or between server and client. In addition, Enterprise JavaBeans component architecture uses XML to describe its deployment properties, giving Enterprise JavaBeans data portability in addition to its code portability.

EJB FAQ

What is Enterprise JavaBeansTM (EJB)?

EJB, the widely-adopted server-side component architecture for JavaTM 2 Platform, Enterprise Edition (J2EE), enables rapid development of mission-critical application that are versatile, reusable and portable across middleware while protecting IT investment and preventing vendor lock-in.

What is EJB technology's role in J2EE?

EJB technology is the core of J2EE. It enables developers to write reusable portable server-side business logic for the J2EE platform.

Is EJB a product?

No, EJB is a specification, which defines the EJB component architecture and the interfaces between the Enterprise JavaBeans technology-enabled server and the component. Commercial vendors like IBM, BEA, Sun and Oracle are providing products that implement the EJB specification.

What are the key features of the EJB technology?

  • EJB components are server-side components written entirely in the Java programming language
  • EJB components contain business logic only - no System-level programming
  • System-level services (i.e. "plumbing") such as transactions, security, Life-cycle, threading, persistence, etc. are automatically managed for the EJB component by the EJB server
  • EJB architecture is inherently transactional, distributed, portable, multi-tier, scalable and secure
  • Components are declaratively customized at deployment time (Can customize: transactional behavior, security features, life-cycle, state management, persistence, etc.)
  • EJB components are fully portable across any EJB server and any OS
  • EJB architecture is wire-protocol neutral - Any protocol can be utilized: IIOP, JRMP, HTTP, DCOM, etc.

What are the key benefits of the EJB technology?

  • Rapid application development: The productivity benefits of writing components in the Java programming language - Java technology productivity and component reuse and outsourcing; Developer focuses on business logic only; Declarative customization (not programmatic)
  • Broad industry adoption: Industry-wide collaboration on the spec yielded a superior architecture and ensured adoption; Choice and flexibility in server selection - no vendor lock-in; 3rd party components are widely usable across servers - ISVs don't need to choose vendor-specific development platform
  • Application portability: Business logic that runs everywhere - Platform-independence and middleware independence
  • Choice, not vendor lock-in: Architecture decisions are made at deployment, not at development; Inter-server portability - code can be deployed on any EJB server; Inter-server scalability - Servers can be transparently replaced to accommodate changing needs for service level, performance or security; Any wire protocol can be selected at deployment

Protection of IT investment: Wrap and embrace existing infrastructure, application and data stores; Existing middleware solutions are being adapted by the well-established vendors to support the EJB technology via a thin portability layer; Portable across multiple servers and databases; Serve multi-lingual clients - Browsers, Java technology, ActiveX, or CORBA clients; EJB technology simplifies and enhances CORBA and DCOM.

What platforms does EJB technology run on?

Applications that are based on EJB components are not only platform independent but also middleware independent! They can run on any OS and any middleware that support EJB.

Who is EJB technology for?

EJB technology benefits a number of audiences:

  • Enterprise customers that build and/or deploy EJB-based applications - gain development productivity, can choose from a wide selection of EJB servers, create business logic that runs everywhere and is architecture independent, all this while protecting their existing IT investment!
  • ISVs and SIs that develop EJB components or applications based on EJB components - Invest in business logic that is widely deployable, across any OS and middleware, don't need to choose one vendor-specific server platform. Like enterprise customers they also benefit from productivity gains and architecture independence
  • The EJB specification itself is mostly targeted at the EJB server vendors - It is the blueprint that instructs these vendors on how to build an EJB server that EJB components can execute on successfully

Who is using EJB technology?

The adoption and momentum around EJB technology since its first public release in 3/98 has been phenomenal. Vendors across the board, from the smallest start-up to the largest corporation, are adopting this technology and building EJB servers, EJB tools and EJB components and applications. We are also seeing strong interest and early adoption among many enterprise customers such as: Visa, GTE, Instinet (Reuters), Qwest, Charles Schwab, NationsBank Montegomery and many others.

Is EJB technology really going to fulfill the promise of true portability across middleware solutions?

Yes. EJB technology hides the details of the underlying middleware "plumbing", allowing developers to focus on writing "pure" business logic which does not contain server-specific code. The code can execute on top of any server implementing the EJB specification. Sun is providing a J2EE compliance program to guarantee portability across servers.

What are the key features included in EJB 1.1?

  • Mandatory support for entity beans which will improve the way EJB-based applications connect to back-end data sources such as relational databases and greatly simplify the process of application development by providing developers with a higher level of abstraction.
  • Enhancements to the Deployment Descriptor, including support for XML text format and improved content organization, both of which will ease development and deployment of EJB-based applications
  • Significant tightening of the specification which will greatly improve EJB-based application portability

What are the key features expected to be included in EJB 2.0?

EJB 2.0 is currently in the Expert Group phase of the JCP specification development process. Based on the JSR (Java Specification Request) which has been approved, enhancements are expected in the following areas:

  • JMS (Java Message Service) integration
  • Improved persistence management
  • Support for RMI/IIOP protocol for network interoperability
  • Management of beans relationships
  • Standardized container extensibility

Doesn't EJB technology compete with CORBA?

No. In fact, EJB technology complements CORBA quite nicely. CORBA provides a great Standards-based infrastructure on which to build EJB servers. EJB technology makes it easier to build application on top of a CORBA infrastructure. Additionally, the recently released CORBA components specification refers to EJB as the architecture when building CORBA components in Java.

What about RMI/IIOP? Is that part of EJB specification?

The EJB specification mandates that you must use the RMI interfaces to communicate with an EJB component. The EJB 1.1 specification does not mandate which wire protocol to use. However, EJB 2.0 is expected to required EJB implementations to Support RMI/IIOP.

How does EJB compare with MTS (Microsoft Transaction Server)?

EJB is a widely endorsed and supported architecture. MTS is a proprietary product. EJB allows for choice. MTS allows only one choice, Microsoft's.

Why should people want to use products based on EJB technology when they can get MTS for free with Windows NT?

Because EJB technology eliminates platform lock, allows a user to move their application to any EJB server, eliminates dependencies on hardware, OS and middleware.

What are the design goals of the Enterprise JavaBeansTM architecture?

The Enterprise JavaBeans specification defines a standard architecture for implementing the business logic of multi-tier applications as reusable components. In addition to Enterprise JavaBeans components, the architecture defines three other entities: servers, containers, and clients. This architecture incorporates several design goals:

  • Enterprise JavaBeans servers are designed to wrap around legacy systems to provide fundamental services for containers and the components they contain.
  • Enterprise JavaBeans containers are designed to handle details of component life-cycle, transaction, and security management. By interceding between clients and components at the method call level, containers can manage transactions that propagate across calls and components, and even across containers running on different servers and different machines. This mechanism simplifies development of both component and clients.
  • Component developers are free to focus on business logic, since containers provide services automatically by interceding in component method calls. A simple set of callback interfaces are all that a developer needs to implement to participate in container provided services.
  • A client's view of an Enterprise JavaBean remains the same regardless of the container it is deployed in. Any container in which an Enterprise JavaBean is deployed presents the same interfaces to the client. This extends to containers from different vendors, running against different servers and different databases, on diverse systems on a network. This client transparency ensures wide scalability for multi-tier applications.
  • Along with container managed transactions, the Enterprise JavaBeans architecture enables component- and client-managed transactions. Containers can participate in component or client initiated transactions to enforce transaction rules across method call and component boundaries. Components can also specify transaction types by method, enabling them to mix transaction types within a single object.
  • A variety of Enterprise JavaBean attributes, including the default component transaction type, can be specified at either development or deployment time, and enforced through mechanisms built into the container architecture.

The Enterprise JavaBeans architecture is based on the Java programming language, so enterprise Beans take full advantage of the "write once, run anywhereTM" standard.

Java Q & A

# Which package does define String and StringBuffer classes?

Ans : java.lang package.
# Which method can be used to obtain the length of the String?

Ans : length( ) method.
# How do you concatenate Strings?

Ans : By using " + " operator.
# Which method can be used to compare two strings for equality?

Ans : equals( ) method.
# Which method can be used to perform a comparison between strings that

ignores case differences?

Ans : equalsIgnoreCase( ) method.
# What is the use of valueOf( ) method?

Ans : valueOf( ) method converts data from its internal format into a human-

readable form.
# What are the uses of toLowerCase( ) and toUpperCase( ) methods?

Ans : The method toLowerCase( ) converts all the characters in a string from

uppercase to

lowercase.

The method toUpperCase( ) converts all the characters in a string from

lowercase to

uppercase.
# Which method can be used to find out the total allocated capacity of a

StrinBuffer?

Ans : capacity( ) method.
# Which method can be used to set the length of the buffer within a StringBuffer

object?

Ans : setLength( ).
# What is the difference between String and StringBuffer?

Ans : String objects are constants, whereas StringBuffer objects are not.

String class supports constant strings, whereas StringBuffer class supports

growable, modifiable strings.
# What are wrapper classes?

Ans : Wrapper classes are classes that allow primitive types to be accessed as

objects.
# Which of the following is not a wrapper class?

1. String
2. Integer
3. Boolean
4. Character

Ans : a.

1. What is the output of the following program?

public class Question {

public static void main(String args[]) {

String s1 = "abc";

String s2 = "def";

String s3 = s1.concat(s2.toUpperCase( ) );

System.out.println(s1+s2+s3);

}

}

1. abcdefabcdef
2. abcabcDEFDEF
3. abcdefabcDEF
4. None of the above

ANS : c.

1. Which of the following methods are methods of the String class?

1. delete( )
2. append( )
3. reverse( )
4. replace( )

Ans : d.

1. Which of the following methods cause the String object referenced by s to

be changed?

1. s.concat( )
2. s.toUpperCase( )
3. s.replace( )
4. s.valueOf( )

Ans : a and b.

1. String is a wrapper class?

1. True
2. False

Ans : b.

17) If you run the code below, what gets printed out?

String s=new String("Bicycle");

int iBegin=1;

char iEnd=3;

System.out.println(s.substring(iBegin,iEnd));

1. Bic
2. ic

c) icy
d) error: no method matching substring(int,char)

Ans : b.

18) Given the following declarations

String s1=new String("Hello")

String s2=new String("there");

String s3=new String();

Which of the following are legal operations?

1. s3=s1 + s2;
2. s3=s1 - s2;

c) s3=s1 & s2
d) s3=s1 && s2

Ans : a.

19) Which of the following statements are true?

1. The String class is implemented as a char array, elements are addressed

using the stringname[] convention

b) Strings are a primitive type in Java that overloads the + operator for

concatenation
c) Strings are a primitive type in Java and the StringBuffer is used as the

matching wrapper type
d) The size of a string can be retrieved using the length property.

Ans : b.

EXPLORING JAVA.LANG

1. java.lang package is automatically imported into all programs.

1. True
2. False

Ans : a

1. What are the interfaces defined by java.lang?

Ans : Cloneable, Comparable and Runnable.
2. What are the constants defined by both Flaot and Double classes?

Ans : MAX_VALUE,

MIN_VALUE,

NaN,

POSITIVE_INFINITY,

NEGATIVE_INFINITY and

TYPE.
3. What are the constants defined by Byte, Short, Integer and Long?

Ans : MAX_VALUE,

MIN_VALUE and

TYPE.
4. What are the constants defined by both Float and Double classes?

Ans : MAX_RADIX,

MIN_RADIX,

MAX_VALUE,

MIN_VALUE and

TYPE.
5. What is the purpose of the Runtime class?

Ans : The purpose of the Runtime class is to provide access to the Java

runtime system.
6. What is the purpose of the System class?

Ans : The purpose of the System class is to provide access to system

resources.
7. Which class is extended by all other classes?

Ans : Object class is extended by all other classes.
8. Which class can be used to obtain design information about an object?

Ans : The Class class can be used to obtain information about an object’s

design.
9. Which method is used to calculate the absolute value of a number?

Ans : abs( ) method.
10. What are E and PI?

Ans : E is the base of the natural logarithm and PI is the mathematical value

pi.
11. Which of the following classes is used to perform basic console I/O?

1. System
2. SecurityManager
3. Math
4. Runtime

Ans : a.

1. Which of the following are true?

1. The Class class is the superclass of the Object class.
2. The Object class is final.
3. The Class class can be used to load other classes.
4. The ClassLoader class can be used to load other classes.

Ans : c and d.

1. Which of the following methods are methods of the Math class?

1. absolute( )
2. log( )
3. cosine( )
4. sine( )

Ans : b.

1. Which of the following are true about the Error and Exception classes?

1. Both classes extend Throwable.
2. The Error class is final and the Exception class is not.
3. The Exception class is final and the Error is not.
4. Both classes implement Throwable.

Ans : a.

1. Which of the following are true?

1. The Void class extends the Class class.
2. The Float class extends the Double class.
3. The System class extends the Runtime class.
4. The Integer class extends the Number class.

Ans : d.

17) Which of the following will output -4.0

1. System.out.println(Math.floor(-4.7));
2. System.out.println(Math.round(-4.7));
3. System.out.println(Math.ceil(-4.7));

d) System.out.println(Math.Min(-4.7));

Ans : c.

18) Which of the following are valid statements

a) public class MyCalc extends Math
b) Math.max(s);
c) Math.round(9.99,1);
d) Math.mod(4,10);

e) None of the above.

Ans : e.

19) What will happen if you attempt to compile and run the following code?

Integer ten=new Integer(10);

Long nine=new Long (9);

System.out.println(ten + nine);

int i=1;

System.out.println(i + ten);

1. 19 followed by 20
2. 19 followed by 11
3. Error: Can't convert java lang Integer

d) 10 followed by 1

Ans : c.

INPUT / OUTPUT : EXPLORING JAVA.IO

1. What is meant by Stream and what are the types of Streams and classes of

the Streams?

Ans : A Stream is an abstraction that either produces or consumes

information.

There are two types of Streams. They are:

Byte Streams : Byte Streams provide a convenient means for handling input

and output of bytes.

Character Streams : Character Streams provide a convenient means for

handling input and output of characters.

Byte Stream classes : Byte Streams are defined by using two abstract classes.

They are:InputStream and OutputStream.

Character Stream classes : Character Streams are defined by using two

abstract classes. They are : Reader and Writer.
2. Which of the following statements are true?

1. UTF characters are all 8-bits.
2. UTF characters are all 16-bits.
3. UTF characters are all 24-bits.
4. Unicode characters are all 16-bits.
5. Bytecode characters are all 16-bits.

Ans : d.

1. Which of the following statements are true?

1. When you construct an instance of File, if you do not use the filenaming

semantics of the local machine, the constructor will throw an IOException.
2. When you construct an instance of File, if the corresponding file does not

exist on the local file system, one will be created.
3. When an instance of File is garbage collected, the corresponding file on the

local file system is deleted.
4. None of the above.

Ans : a,b and c.

1. The File class contains a method that changes the current working

directory.

1. True
2. False

Ans : b.

1. It is possible to use the File class to list the contents of the current working
directory.

1. True
2. False

Ans : a.

1. Readers have methods that can read and return floats and doubles.

1. True
2. False

Ans : b.

1. You execute the code below in an empty directory. What is the result?

File f1 = new File("dirname");

File f2 = new File(f1, "filename");

1. A new directory called dirname is created in the current working directory.
2. A new directory called dirname is created in the current working directory.

A new file called filename is created in directory dirname.
3. A new directory called dirname and a new file called filename are created,

both in the current working directory.
4. A new file called filename is created in the current working directory.
5. No directory is created, and no file is created.

Ans : e.

1. What is the difference between the Reader/Writer class hierarchy and the

InputStream/OutputStream class hierarchy?

Ans : The Reader/Writer class hierarchy is character-oriented and the

InputStream/OutputStream class hierarchy is byte-oriented.
2. What is an I/O filter?

Ans : 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.
3. What is the purpose of the File class?

Ans : The File class is used to create objects that provide access to the files

and directories of a local file system.
4. What interface must an object implement before it can be written to a

stream as an object?

Ans : An object must implement the Serializable or Externalizable interface

before it can be written to a stream as an object.
5. What is the difference between the File and RandomAccessFile classes?

Ans : The File class encapsulates the files and directories of the local file

system. The RandomAccessFile class provides the methods needed to directly

access data contained in any part of a file.
6. What class allows you to read objects directly from a stream?

Ans : The ObjectInputStream class supports the reading of objects from input

streams.
7. What value does read( ) return when it has reached the end of a file?

Ans : The read( ) method returns – 1 when it has reached the end of a file.
8. What value does readLine( ) return when it has reached the end of a file?

Ans : The readLine( ) method returns null when it has reached the end of a

file.
9. How many bits are used to represent Unicode, ASCII, UTF-16 and UTF-8

characters?

Ans : Unicode requires 16-bits and ASCII requires 8-bits. Although the ASCII

character set uses only 1-bits, it is usually represented as 8-bits. UTF-8 represents

characters using 8, 16 and 18-bit patterns. UTF-16 uses 16-bit and larger bit

patterns.
10. Which of the following are true?

1. The InputStream and OutputStream classes are byte-oriented.
2. The ObjectInputStream and ObjectOutputStream do not support serialized

object input and output.
3. The Reader and Writer classes are character-oriented.
4. The Reader and Writer classes are the preferred solution to serialized object

output.

Ans : a and c.

1. Which of the following are true about I/O filters?

1. Filters are supported on input, but not on output.
2. Filters are supported by the InputStream/OutputStream class hierarchy, but

not by the Reader/Writer class hierarchy.
3. Filters read from one stream and write to another.
4. A filter may alter data that is read from one stream and written to another.

Ans : c and d.

1. Which of the following are true?

1. Any Unicode character is represented using 16-bits.
2. 7-bits are needed to represent any ASCII character.
3. UTF-8 characters are represented using only 8-bits.
4. UTF-16 characters are represented using only 16-bits.

Ans : a and b.

1. Which of the following are true?

1. The Serializable interface is used to identify objects that may be written to

an output stream.
2. The Externalizable interface is implemented by classes that control the way

in which their objects are serialized.
3. The Serializable interface extends the Externalizable interface.
4. The Externalizable interface extends the Serializable interface.

Ans : a, b and d.

1. Which of the following are true about the File class?

1. A File object can be used to change the current working directory.
2. A File object can be used to access the files in the current directory.
3. When a File object is created, a corresponding directory or file is created in

the local file system.
4. File objects are used to access files and directories on the local file system.
5. File objects can be garbage collected.
6. When a File object is garbage collected, the corresponding file or directory

is deleted.

Ans : b, d and e.

1. How do you create a Reader object from an InputStream object?

1. Use the static createReader( ) method of InputStream class.
2. Use the static createReader( ) method of Reader class.
3. Create an InputStreamReader object, passing the InputStream object as an

argument to the InputStreamReader constructor.
4. Create an OutputStreamReader object, passing the InputStream object as an

argument to the OutputStreamReader constructor.

Ans : c.

1. Which of the following are true?

1. Writer classes can be used to write characters to output streams using

different character encodings.
2. Writer classes can be used to write Unicode characters to output streams.
3. Writer classes have methods that support the writing of the values of any

Java primitive type to output streams.
4. Writer classes have methods that support the writing of objects to output

streams.

Ans : a and b.

1. The isFile( ) method returns a boolean value depending on whether the file

object is a file or a directory.

1. True.
2. False.

Ans : a.

1. Reading or writing can be done even after closing the input/output source.

1. True.
2. False.

Ans : b.

1. The ________ method helps in clearing the buffer.

Ans : flush( ).
2. The System.err method is used to print error message.

1. True.
2. False.

Ans : a.

1. What is meant by StreamTokenizer?

Ans : StreamTokenizer breaks up InputStream into tokens that are delimited

by sets of characters.

It has the constructor : StreamTokenizer(Reader inStream).

Here inStream must be some form of Reader.
2. What is Serialization and deserialization?

Ans : Serialization is the process of writing the state of an object to a byte

stream.

Deserialization is the process of restoring these objects.

30) Which of the following can you perform using the File class?

a) Change the current directory
b) Return the name of the parent directory
c) Delete a file
d) Find if a file contains text or binary information

Ans : b and c.

31)How can you change the current working directory using an instance of the

File class called FileName?

1. FileName.chdir("DirName").
2. FileName.cd("DirName").
3. FileName.cwd("DirName").
4. The File class does not support directly changing the current directory.

Ans : d.

APPLETS

1. What is an Applet? Should applets have constructors?

Ans : Applet is a dynamic and interactive program that runs inside a Web

page

displayed by a Java capable browser. We don’t have the concept of

Constructors in Applets.
2. How do we read number information from my applet’s parameters, given

that Applet’s getParameter() method returns a string?

Ans : Use the parseInt() method in the Integer Class, the Float(String)

constructor in the

Class Float, or the Double(String) constructor in the class Double.
3. How can I arrange for different applets on a web page to communicate with

each other?

Ans : Name your applets inside the Applet tag and invoke AppletContext’s

getApplet()

method in your applet code to obtain references to the other applets on the

page.
4. How do I select a URL from my Applet and send the browser to that page?

Ans : Ask the applet for its applet context and invoke showDocument() on

that context object.

Eg. URL targetURL;

String URLString

AppletContext context = getAppletContext();

try{

targetUR L = new URL(URLString);

} catch (Malformed URLException e){

// Code for recover from the exception

}

context. showDocument (targetURL);
5. Can applets on different pages communicate with each other?

Ans : No. Not Directly. The applets will exchange the information at one

meeting place

either on the local file system or at remote system.
6. How do Applets differ from Applications?

Ans : Appln: Stand Alone

Applet: Needs no explicit installation on local m/c.

Appln: Execution starts with main() method.

Applet: Execution starts with init() method.

Appln: May or may not be a GUI

Applet: Must run within a GUI (Using AWT)
7. How do I determine the width and height of my application?

Ans : Use the getSize() method, which the Applet class inherits from the

Component

class in the Java.awt package. The getSize() method returns the size of the

applet as

a Dimension object, from which you extract separate width, height fields.

Eg. Dimension dim = getSize ();

int appletwidth = dim.width ();

8) What is AppletStub Interface?

Ans : The applet stub interface provides the means by which an applet and the

browser communicate. Your code will not typically implement this interface.

9. It is essential to have both the .java file and the .html file of an applet in the
same

directory.

1. True.
2. False.

Ans : b.

9. The

tag contains two attributes namely _________ and _______.

Ans : Name , value.

# Passing values to parameters is done in the _________ file of an applet.

Ans : .html.

12) What tags are mandatory when creating HTML to display an applet

1. name, height, width
2. code, name
3. codebase, height, width

d) code, height, width

Ans : d.

13. Applet’s getParameter( ) method can be used to get parameter values.

1. True.
2. False.

Ans : a.

13. What are the Applet’s Life Cycle methods? Explain them?

Ans : init( ) method - Can be called when an applet is first loaded.

start( ) method - Can be called each time an applet is started.

paint( ) method - Can be called when the applet is minimized or refreshed.

stop( ) method - Can be called when the browser moves off the applet’s

page.

destroy( ) method - Can be called when the browser is finished with the

applet.
14. What are the Applet’s information methods?

Ans : getAppletInfo( ) method : Returns a string describing the applet, its

author ,copy

right information, etc.

getParameterInfo( ) method : Returns an array of string describing the

applet’s parameters.
15. All Applets are subclasses of Applet.

1. True.
2. False.

Ans : a.

13. All Applets must import java.applet and java.awt.

1. True.
2. False.

Ans : a.

13. What are the steps involved in Applet development?

Ans : a) Edit a Java source file,

b) Compile your program and

c) Execute the appletviewer, specifying the name of your applet’s source file.
14. Applets are executed by the console based Java run-time interpreter.

1. True.
2. False.

Ans : b.

13. Which classes and interfaces does Applet class consist?

Ans : Applet class consists of a single class, the Applet class and three

interfaces: AppletContext,

AppletStub and AudioClip.
14. What is the sequence for calling the methods by AWT for applets?

Ans : When an applet begins, the AWT calls the following methods, in this

sequence.

1. init( )
2. start( )
3. paint( )

When an applet is terminated, the following sequence of method cals takes place

:

1. stop( )
2. destroy( )

13. Which method is used to output a string to an applet?

Ans : drawString ( ) method.
14. Every color is created from an RGB value.

1. True.
2. False

Ans : a.

EVENT HANDLING

1. The event delegation model, introduced in release 1.1 of the JDK, is fully

compatible with the

1. event model.

1. True
2. False

Ans : b.

1. A component subclass that has executed enableEvents( ) to enable

processing of a certain kind of event cannot also use an adapter as a listener for

the same kind of event.

1. True
2. False

Ans : b.

1. What is the highest-level event class of the event-delegation model?

Ans : The java.util.eventObject class is the highest-level class in the event-

delegation hierarchy.
2. What interface is extended by AWT event listeners?

Ans : All AWT event listeners extend the java.util.EventListener interface.
3. What class is the top of the AWT event hierarchy?

Ans : The java.awt.AWTEvent class is the highest-level class in the AWT event

class hierarchy.
4. What event results from the clicking of a button?

Ans : The ActionEvent event is generated as the result of the clicking of a

button.
5. What is the relationship between an event-listener interface and an event-

adapter class?

Ans : An event-listener interface defines the methods that must be

implemented by an event

handler for a particular kind of event.

An event adapter provides a default implementation of an event-listener

interface.
6. In which package are most of the AWT events that support the event-

delegation model defined?

Ans : Most of the AWT–related events of the event-delegation model are

defined in the

java.awt.event package. The AWTEvent class is defined in the java.awt

package.
7. What is the advantage of the event-delegation model over the earlier event-

inheritance model?

Ans : The event-delegation has two advantages over the event-inheritance model.

They are :

1. It enables event handling by objects other than the ones that generate the

events. This

allows a clean separation between a component’s design and its use.
2. It performs much better in applications where many events are generated.

This

performance improvement is due to the fact that the event-delegation model

does not

have to repeatedly process unhandled events, as is the case of the event-

inheritance

model.

1. What is the purpose of the enableEvents( ) method?

Ans :The enableEvents( ) method is used to enable an event for a particular

object.
2. Which of the following are true?

1. The event-inheritance model has replaced the event-delegation model.
2. The event-inheritance model is more efficient than the event-delegation

model.
3. The event-delegation model uses event listeners to define the methods of

event-handling classes.
4. The event-delegation model uses the handleEvent( ) method to support event

handling.

Ans : c.

1. Which of the following is the highest class in the event-delegation model?

1. java.util.EventListener
2. java.util.EventObject
3. java.awt.AWTEvent
4. java.awt.event.AWTEvent

Ans : b.

1. When two or more objects are added as listeners for the same event, which

listener is first invoked to handle the event?

1. The first object that was added as listener.
2. The last object that was added as listener.
3. There is no way to determine which listener will be invoked first.
4. It is impossible to have more than one listener for a given event.

Ans : c.

1. Which of the following components generate action events?

1. Buttons
2. Labels
3. Check boxes
4. Windows

Ans : a.

1. Which of the following are true?

1. A TextField object may generate an ActionEvent.
2. A TextArea object may generate an ActionEvent.
3. A Button object may generate an ActionEvent.
4. A MenuItem object may generate an ActionEvent.

Ans : a,c and d.

1. Which of the following are true?

1. The MouseListener interface defines methods for handling mouse clicks.
2. The MouseMotionListener interface defines methods for handling mouse

clicks.
3. The MouseClickListener interface defines methods for handling mouse clicks.
4. The ActionListener interface defines methods for handling the clicking of a

button.

Ans : a and d.

1. Suppose that you want to have an object eh handle the TextEvent of a

TextArea object t. How should you add eh as the event handler for t?

1. t.addTextListener(eh);
2. eh.addTextListener(t);
3. addTextListener(eh.t);
4. addTextListener(t,eh);

Ans : a.

1. What is the preferred way to handle an object’s events in Java 2?

1. Override the object’s handleEvent( ) method.
2. Add one or more event listeners to handle the events.
3. Have the object override its processEvent( ) methods.
4. Have the object override its dispatchEvent( ) methods.

Ans : b.

1. Which of the following are true?

1. A component may handle its own events by adding itself as an event listener.
2. A component may handle its own events by overriding its event-dispatching

method.
3. A component may not handle oits own events.
4. A component may handle its own events only if it implements the

handleEvent( ) method.

Ans : a and b.

1. How many types of events are provided by AWT? Explain them?

Ans : The AWT provides two types of events. They are :

1. Low-level event : A low-level event is the one that represents a low-level

input or

window-system occurrence on a visual component on the screen.
2. Semantic event : Semantic event is defined at a higher-level to encapsulate

the

semantics of a user interface component’s model.

1. A __________ is an object that originates or "fire" events.

Ans : source.
2. The event listener corresponding to handling keyboard events is the
_________ .

Ans : KeyListener.
3. What are the types of mouse event listeners?

Ans : MouseListener and MouseMotionListener.

24) Which of the following are correct event handling methods

a) mousePressed(MouseEvent e){}
b) MousePressed(MouseClick e){}
c) functionKey(KeyPress k){}
d) componentAdded(ContainerEvent e){}

Ans : a and d.

25) Which of the following are true?

a) A component may have only one event listener attached at a time
b) An event listener may be removed from a component
c) The ActionListener interface has no corresponding Adapter class
d) The processing of an event listener requires a try/catch block

Ans : b and c.

AWT : WINDOWS, GRAPHICS AND FONTS

1. How would you set the color of a graphics context called g to cyan?

1. g.setColor(Color.cyan);
2. g.setCurrentColor(cyan);
3. g.setColor("Color.cyan");
4. g.setColor("cyan’);
5. g.setColor(new Color(cyan));

Ans : a.

1. The code below draws a line. What color is the line?

g.setColor(Color.red.green.yellow.red.cyan);

g.drawLine(0, 0, 100,100);

1. Red
2. Green
3. Yellow
4. Cyan
5. Black

Ans : d.

1. What does the following code draw?

g.setColor(Color.black);

g.drawLine(10, 10, 10, 50);

g.setColor(Color.RED);

g.drawRect(100, 100, 150, 150);

1. A red vertical line that is 40 pixels long and a red square with sides of 150

pixels
2. A black vertical line that is 40 pixels long and a red square with sides of 150

pixels
3. A black vertical line that is 50 pixels long and a red square with sides of 150

pixels
4. A red vertical line that is 50 pixels long and a red square with sides of 150

pixels
5. A black vertical line that is 40 pixels long and a red square with sides of 100

pixel

Ans : b.

1. Which of the statements below are true?

1. A polyline is always filled.

b) A polyline can not be filled.

c) A polygon is always filled.

d) A polygon is always closed

e) A polygon may be filled or not filled

Ans : b, d and e.

1. What code would you use to construct a 24-point bold serif font?

1. new Font(Font.SERIF, 24,Font.BOLD);
2. new Font("SERIF", 24, BOLD");
3. new Font("BOLD ", 24,Font.SERIF);
4. new Font("SERIF", Font.BOLD,24);
5. new Font(Font.SERIF, "BOLD", 24);

Ans : d.

1. What does the following paint( ) method draw?

Public void paint(Graphics g) {

g.drawString("question #6",10,0);

}

1. The string "question #6", with its top-left corner at 10,0
2. A little squiggle coming down from the top of the component, a little way in

from the left edge

Ans : b.

1. What does the following paint( ) method draw?

Public void paint(Graphics g) {

g.drawString("question #6",10,0);

}

1. A circle at (100, 100) with radius of 44
2. A circle at (100, 44) with radius of 100
3. A circle at (100, 44) with radius of 44
4. The code does not compile

Ans : d.

8)What is relationship between the Canvas class and the Graphics class?

Ans : A Canvas object provides access to a Graphics object via its paint( )

method.

1. What are the Component subclasses that support painting.

Ans : The Canvas, Frame, Panel and Applet classes support painting.
2. What is the difference between the paint( ) and repaint( ) method?

Ans : The paint( ) method supports painting via a Graphics object. The

repaint( ) method is used

to cause paint( ) to be invoked by the AWT painting method.
3. What is the difference between the Font and FontMetrics classes?

Ans : The FontMetrics class is used to define implementation-specific

properties, such as ascent

and descent, of a Font object.
4. Which of the following are passed as an argument to the paint( ) method?

1. A Canvas object
2. A Graphics object
3. An Image object
4. A paint object

Ans : b.

1. Which of the following methods are invoked by the AWT to support paint and

repaint operations?

1. paint( )
2. repaint( )
3. draw( )
4. redraw( )

Ans : a.

1. Which of the following classes have a paint( ) method?

1. Canvas
2. Image
3. Frame
4. Graphics

Ans : a and c.

1. Which of the following are methods of the Graphics class?

1. drawRect( )
2. drawImage( )
3. drawPoint( )
4. drawString( )

Ans : a, b and d.

1. Which Font attributes are available through the FontMetrics class?

1. ascent
2. leading
3. case
4. height

Ans : a, b and d.

1. Which of the following are true?

1. The AWT automatically causes a window to be repainted when a portion of

a window has been minimized and then maximized.
2. The AWT automatically causes a window to be repainted when a portion of

a window has been covered and then uncovered.
3. The AWT automatically causes a window to be repainted when application

data is changed.
4. The AWT does not support repainting operations.

Ans : a and b.

1. Which method is used to size a graphics object to fit the current size of the

window?

Ans : getSize( ) method.
2. What are the methods to be used to set foreground and background colors?

Ans : setForeground( ) and setBackground( ) methods.

19) You have created a simple Frame and overridden the paint method as follows

public void paint(Graphics g){

g.drawString("Dolly",50,10);

}

What will be the result when you attempt to compile and run the program?

1. The string "Dolly" will be displayed at the centre of the frame

b) An error at compilation complaining at the signature of the paint method
c) The lower part of the word Dolly will be seen at the top of the form, with the

top hidden.
d) The string "Dolly" will be shown at the bottom of the form

Ans : c.

20) Where g is a graphics instance what will the following code draw on the

screen.

g.fillArc(45,90,50,50,90,180);

a) An arc bounded by a box of height 45, width 90 with a centre point of 50,50,

starting
at an angle of 90 degrees traversing through 180 degrees counter clockwise.

b) An arc bounded by a box of height 50, width 50, with a centre point of 45,90

starting
at an angle of 90 degrees traversing through 180 degrees clockwise.

c) An arc bounded by a box of height 50, width 50, with a top left at coordinates

of 45,
90, starting at 90 degrees and traversing through 180 degrees counter clockwise.

d) An arc starting at 45 degrees, traversing through 90 degrees clockwise

bounded by a
box of height 50, width 50 with a centre point of 90, 180.

Ans : c.

21) Given the following code
import java.awt.*;
public class SetF extends Frame{
public static void main(String argv[]){
SetF s = new SetF();
s.setSize(300,200);
s.setVisible(true);
}
}
How could you set the frame surface color to pink

a)s.setBackground(Color.pink);
b)s.setColor(PINK);
c)s.Background(pink);
d)s.color=Color.pink

Ans : a.

AWT: CONTROLS, LAYOUT MANAGERS AND MENUS

1. What is meant by Controls and what are different types of controls?

Ans : Controls are componenets that allow a user to interact with your

application.

The AWT supports the following types of controls:

o Labels
o Push buttons
o Check boxes
o Choice lists
o Lists
o Scroll bars
o Text components

These controls are subclasses of Component.

1. You want to construct a text area that is 80 character-widths wide and 10

character-heights tall. What code do you use?

1. new TextArea(80, 10)
2. new TextArea(10, 80)

Ans: b.

1. A text field has a variable-width font. It is constructed by calling new

TextField("iiiii"). What happens if you change the contents of the text field to

"wwwww"? (Bear in mind that is one of the narrowest characters, and w is one

of the widest.)

1. The text field becomes wider.
2. The text field becomes narrower.
3. The text field stays the same width; to see the entire contents you will have

to scroll by using the ß and à keys.
4. The text field stays the same width; to see the entire contents you will have

to scroll by using the text field’s horizontal scroll bar.

Ans : c.

1. The CheckboxGroup class is a subclass of the Component class.

1. True
2. False

Ans : b.

5) What are the immediate super classes of the following classes?

1. a) Container class
2. b) MenuComponent class
3. c) Dialog class
4. d) Applet class
5. e) Menu class

Ans : a) Container - Component

b) MenuComponent - Object

c) Dialog - Window

d) Applet - Panel

e) Menu - MenuItem

6) What are the SubClass of Textcomponent Class?

Ans : TextField and TextArea

7) Which method of the component class is used to set the position and the size

of a component?

Ans : setBounds()

8) Which TextComponent method is used to set a TextComponent to the read-

only state?

Ans : setEditable()

9) How can the Checkbox class be used to create a radio button?

Ans : By associating Checkbox objects with a CheckboxGroup.

10) What Checkbox method allows you to tell if a Checkbox is checked?

Ans : getState()

11) Which Component method is used to access a component's immediate

Container?

1. getVisible()
2. getImmediate
3. getParent()
4. getContainer

Ans : c.

12) What methods are used to get and set the text label displayed by a Button

object?

Ans : getLabel( ) and setLabel( )

13) What is the difference between a Choice and a List?

Ans : A Choice is displayed in a compact form that requires you to pull it down to

see the list of available choices. Only one item may be selected from a Choice.

A List may be displayed in such a way that several List items are visible. A List

supports the selection of one or more List items.

14) Which Container method is used to cause a container to be laid out and

redisplayed?

Ans : validate( )

15) What is the difference between a Scollbar and a Scrollpane?

Ans : A Scrollbar is a Component, but not a Container.

A Scrollpane is a Container and handles its own events and performs its own

scrolling.

16) Which Component subclass is used for drawing and painting?

Ans : Canvas.

17) Which of the following are direct or indirect subclasses of Component?

1. Button
2. Label
3. CheckboxMenuItem
4. Toolbar
5. Frame

Ans : a, b and e.

18) Which of the following are direct or indirect subclasses of Container?

1. Frame
2. TextArea
3. MenuBar
4. FileDialog
5. Applet

Ans : a,d and e.

19) Which method is used to set the text of a Label object?

1. setText( )
2. setLabel( )
3. setTextLabel( )
4. setLabelText( )

Ans : a.

20) Which constructor creates a TextArea with 10 rows and 20 columns?

1. new TextArea(10, 20)
2. new TextArea(20, 10)
3. new TextArea(new Rows(10), new columns(20))
4. new TextArea(200)

Ans : a.

(Usage is TextArea(rows, columns)

21) Which of the following creates a List with 5 visible items and multiple

selection enabled?

1. new List(5, true)
2. new List(true, 5)
3. new List(5, false)
4. new List(false,5)

Ans : a.

[Usage is List(rows, multipleMode)]

22) Which are true about the Container class?

1. The validate( ) method is used to cause a Container to be laid out and

redisplayed.
2. The add( ) method is used to add a Component to a Container.
3. The getBorder( ) method returns information about a Container’s insets.
4. The getComponent( ) method is used to access a Component that is

contained in a Container.

Ans : a, b and d.

23) Suppose a Panel is added to a Frame and a Button is added to the Panel. If the

Frame’s font is set to 12-point TimesRoman, the Panel’s font is set to 10-point

TimesRoman, and the Button’s font is not set, what font will be used to dispaly

the Button’s label?

1. 12-point TimesRoman
2. 11-point TimesRoman
3. 10-point TimesRoman
4. 9-point TimesRoman

Ans : c.

1. A Frame’s background color is set to Color.Yellow, and a Button’s

background color is to Color.Blue. Suppose the Button is added to a Panel, which

is added to the Frame. What background color will be used with the Panel?

1. Colr.Yellow
2. Color.Blue
3. Color.Green
4. Color.White
5. Ans : a.

25) Which method will cause a Frame to be displayed?

1. show( )
2. setVisible( )
3. display( )
4. displayFrame( )

Ans : a and b.

26) All the componenet classes and container classes are derived from _________

class.

Ans : Object.

27) Which method of the container class can be used to add components to a

Panel.

Ans : add ( ) method.

28) What are the subclasses of the Container class?

Ans : The Container class has three major subclasses. They are :

1. Window
2. Panel
3. ScrollPane

29) The Choice component allows multiple selection.

1. True.
2. False.

Ans : b.

30) The List component does not generate any events.

1. True.
2. False.

Ans : b.

31) Which components are used to get text input from the user.

Ans : TextField and TextArea.

32) Which object is needed to group Checkboxes to make them exclusive?

Ans : CheckboxGroup.

33) Which of the following components allow multiple selections?

1. Non-exclusive Checkboxes.
2. Radio buttons.
3. Choice.
4. List.

Ans : a and d.

34) What are the types of Checkboxes and what is the difference between them?

Ans : Java supports two types of Checkboxes. They are : Exclusive and Non-

exclusive.

In case of exclusive Checkboxes, only one among a group of items can be

selected at a time. I f an item from the group is selected, the checkbox currently

checked is deselected and the new selection is highlighted. The exclusive

Checkboxes are also called as Radio buttons.

The non-exclusive checkboxes are not grouped together and each one can be

selected independent of the other.

35) What is a Layout Manager and what are the different Layout Managers

available in java.awt and what is the default Layout manager for the panal and

the panal subclasses?

Ans: A layout Manager is an object that is used to organize components in a

container.

The different layouts available in java.awt are :

FlowLayout, BorderLayout, CardLayout, GridLayout and GridBag Layout.

The default Layout Manager of Panal and Panal sub classes is FlowLayout".

36) Can I exert control over the size and placement of components in my

interface?

Ans : Yes.

myPanal.setLayout(null);

myPanal.setbounds(20,20,200,200);

37) Can I add the same component to more than one container?

Ans : No. Adding a component to a container automatically removes it from any

previous parent(container).

38) How do I specify where a window is to be placed?

Ans : Use setBounds, setSize, or setLocation methods to implement this.

setBounds(int x, int y, int width, int height)

setBounds(Rectangle r)

setSize(int width, int height)

setSize(Dimension d)

setLocation(int x, int y)

setLocation(Point p)

39) How can we create a borderless window?

Ans : Create an instance of the Window class, give it a size, and show it on the

screen.

eg. Frame aFrame = ......

Window aWindow = new Window(aFrame);

aWindow.setLayout(new FlowLayout());

aWindow.add(new Button("Press Me"));

aWindow.getBounds(50,50,200,200);

aWindow.show();

40) Can I create a non-resizable windows? If so, how?

Ans: Yes. By using setResizable() method in class Frame.

41) What is the default Layout Manager for the Window and Window subclasses

(Frame,Dialog)?

Ans : BorderLayout().

42) How are the elements of different layouts organized?

Ans : FlowLayout : The elements of a FlowLayout are organized in a top to

bottom, left to right fashion.

BorderLayout : The elements of a BorderLayout are organized at the

borders (North, South, East and West) and the center of a

container.

CardLayout : The elements of a CardLayout are stacked, one on top of the other,

like a deck of cards.

GridLayout : The elements of a GridLayout are of equal size and are laid out

using the square of a grid.

GridBagLayout : The elements of a GridBagLayout are organized according to a

grid.However, the elements are of different sizes and may occupy

more than one row or column of the grid. In addition, the rows and columns may

have different sizes.

43) Which containers use a BorderLayout as their default layout?

Ans : The Window, Frame and Dialog classes use a BorderLayout as their default

layout.

44) Which containers use a FlowLayout as their default layout?

Ans : The Panel and the Applet classes use the FlowLayout as their default layout.

45) What is the preferred size of a component?

Ans : The preferred size of a component size that will allow the component to

display normally.

46) Which method is method to set the layout of a container?

1. startLayout( )
2. initLayout( )
3. layoutContainer( )
4. setLayout( )

Ans : d.

47) Which method returns the preferred size of a component?

1. getPreferredSize( )
2. getPreferred( )
3. getRequiredSize( )
4. getLayout( )

Ans : a.

48) Which layout should you use to organize the components of a container in a

tabular form?

1. CardLayout
2. BorederLayout
3. FlowLayout
4. GridLayout

Ans : d.

49. An application has a frame that uses a Border layout manager. Why is it

probably not a good idea to put a vertical scroll bar at North in the frame?

1. The scroll bar’s height would be its preferred height, which is not likely to

be enough.
2. The scroll bar’s width would be the entire width of the frame, which would

be much wider than necessary.
3. Both a and b.
4. Neither a nor b. There is no problem with the layout as described.

Ans : c.

49. What is the default layouts for a applet, a frame and a panel?

Ans : For an applet and a panel, Flow layout is the default layout, whereas

Border layout is default layout for a frame.
50. If a frame uses a Grid layout manager and does not contain any panels, then

all the components within the frame are the same width and height.

1. True
2. False.

Ans : a.

49. If a frame uses its default layout manager and does not contain any panels,

then all the components within the frame are the same width and height.

1. True
2. False.

Ans : b.

49. With a Border layout manager, the component at Center gets all the space

that is left over, after the components at North and South have been considered.

1. True
2. False

Ans : b.

49. An Applet has its Layout Manager set to the default of FlowLayout. What

code would be the correct to change to another Layout Manager?

1. setLayoutManager(new GridLayout());
2. setLayout(new GridLayout(2,2));

c) setGridLayout(2,2,))
d setBorderLayout();

Ans : b.

55) How do you indicate where a component will be positioned using

Flowlayout?

a) North, South,East,West
b) Assign a row/column grid reference
c) Pass a X/Y percentage parameter to the add method
d) Do nothing, the FlowLayout will position the component

Ans :d.

56) How do you change the current layout manager for a container?

a) Use the setLayout method
b) Once created you cannot change the current layout manager of a component
c) Use the setLayoutManager method
d) Use the updateLayout method

Ans :a.

57)When using the GridBagLayout manager, each new component requires a new

instance of the GridBagConstraints class. Is this statement true or false?

a) true
b) false

Ans : b.

58) Which of the following statements are true?

a)The default layout manager for an Applet is FlowLayout
b) The default layout manager for an application is FlowLayout
c) A layout manager must be assigned to an Applet before the setSize method is

called
d) The FlowLayout manager attempts to honor the preferred size of any

components

Ans : a and d.

59) Which method does display the messages whenever there is an item selection

or deselection of the CheckboxMenuItem menu?

Ans : itemStateChanged method.

60) Which is a dual state menu item?

Ans : CheckboxMenuItem.

61) Which method can be used to enable/diable a checkbox menu item?

Ans : setState(boolean).

62. Which of the following may a menu contain?

1. A separator
2. A check box
3. A menu
4. A button
5. A panel

Ans : a and c.

62. Which of the following may contain a menu bar?

1. A panel
2. A frame
3. An applet
4. A menu bar
5. A menu

Ans : b

64) What is the difference between a MenuItem and a CheckboxMenuItem?

Ans : The CheckboxMenuItem class extends the MenuItem class to support a menu

item

that may be checked or unchecked.


65) Which of the following are true?

1. A Dialog can have a MenuBar.
2. MenuItem extends Menu.
3. A MenuItem can be added to a Menu.
4. A Menu can be added to a Menu.

Ans : c and d.

SCJP Certification Questions Test #10

Q. 1

Which colour is used to indicate instance methods in the standard "javadoc" format documentation:

A. blue

B. red

C. purple

D. orange

Select the most appropriate answer.

Q. 2

What is the correct ordering for the import, class and package declarations when found in a single file?

A. package, import, class

B. class, import, package

C. import, package, class

D. package, class, import

Select the most appropriate answer.

Q. 3

Which methods can be legally applied to a string object?

A. equals(String)

B. equals(Object)

C. trim()

D. round()

E. toString()

Select all correct answers.

Q. 4

What is the parameter specification for the public static void main method?

A. String args []

B. String [] args

C. Strings args []

D. String args

Select all correct answers.

Q. 5

What does the zeroth element of the string array passed to the public static void main method contain?

A. The name of the program

B. The number of arguments

C. The first argument if one is present

Select the most appropriate answer.

Q. 6

Which of the following are Java keywords?

A. goto

B. malloc

C. extends

D. FALSE

Select all correct answers

Q. 7

What will be the result of compiling the following code:

public class Test {

public static void main (String args []) {

int age;

age = age + 1;

System.out.println("The age is " + age);

}

}

A. Compiles and runs with no output

B. Compiles and runs printing out The age is 1

C. Compiles but generates a runtime error

D. Does not compile

E. Compiles but generates a compile time error

Select the most appropriate answer.

Q. 8

Which of these is the correct format to use to create the literal char value a?

A. ‘a’

B. "a"

C. new Character(a)

D. \000a

Select the most appropriate answer.

Q. 9

What is the legal range of a byte integral type?

A. 0 - 65, 535

B. (–128) – 127

C. (–32,768) – 32,767

D. (–256) – 255

Select the most appropriate answer.

Q. 10

Which of the following is illegal:

A. int i = 32;

B. float f = 45.0;

C. double d = 45.0;

Select the most appropriate answer.

Q. 11

What will be the result of compiling the following code:

public class Test {

static int age;

public static void main (String args []) {

age = age + 1;

System.out.println("The age is " + age);

}

}

A. Compiles and runs with no output

B. Compiles and runs printing out The age is 1

C. Compiles but generates a runtime error

D. Does not compile

E. Compiles but generates a compile time error

Select the most appropriate answer.

Q. 12

Which of the following are correct?

A. 128 >> 1 gives 64

B. 128 >>> 1 gives 64

C. 128 >> 1 gives –64

D. 128 >>> 1 gives –64

Select all correct answers

Q. 13

Which of the following return true?

A. "john" == "john"

B. "john".equals("john")

C. "john" = "john"

D. "john".equals(new Button("john"))

Select all correct answers.

Q. 14

Which of the following do not lead to a runtime error?

A. "john" + " was " + " here"

B. "john" + 3

C. 3 + 5

D. 5 + 5.5

Select all correct answers.

Q. 15

Which of the following are so called "short circuit" logical operators?

A. &

B. ||

C. &&

D. |

Select all correct answers.

Q. 16

Which of the following are acceptable?

A. Object o = new Button("A");

B. Boolean flag = true;

C. Panel p = new Frame();

D. Frame f = new Panel();

E. Panel p = new Applet();

Select all correct answers.

Q. 17

What is the result of compiling and running the following code:

public class Test {

static int total = 10;

public static void main (String args []) {

new Test();

}

public Test () {

System.out.println("In test");

System.out.println(this);

int temp = this.total;

if (temp > 5) {

System.out.println(temp);

}

}

}

A. The class will not compile

B. The compiler reports and error at line 2

C. The compiler reports an error at line 9

D. The value 10 is one of the elements printed to the standard output

E. The class compiles but generates a runtime error

Select all correct answers.

Q 18

Which of the following is correct:

A. String temp [] = new String {"j" "a" "z"};

B. String temp [] = { "j " " b" "c"};

C. String temp = {"a", "b", "c"};

D. String temp [] = {"a", "b", "c"};

Select the most appropriate answer.

Q. 19

What is the correct declaration of an abstract method that is intended to be public:

A. public abstract void add();

B. public abstract void add() {}

C. public abstract add();

D. public virtual add();

Select the most appropriate answer.

Q. 20

Under what situations do you obtain a default constructor?

A. When you define any class

B. When the class has no other constructors

C. When you define at least one constructor

Select the most appropriate answer.

Q. 21

Given the following code:

public class Test {



}

Which of the following can be used to define a constructor for this class:

A. public void Test() {…}

B. public Test() {…}

C. public static Test() {…}

D. public static void Test() {…}

Select the most appropriate answer.

Q. 22

Which of the following are acceptable to the Java compiler:

A. if (2 == 3) System.out.println("Hi");

B. if (2 = 3) System.out.println("Hi");

C. if (true) System.out.println("Hi");

D. if (2 != 3) System.out.println("Hi");

E. if (aString.equals("hello")) System.out.println("Hi");

Select all correct answers.

Q. 23

Assuming a method contains code which may raise an Exception (but not a RuntimeException), what is the correct way for a method to indicate that it expects the caller to handle that exception:

A. throw Exception

B. throws Exception

C. new Exception

D. Don't need to specify anything

Select the most appropriate answer.

Q. 24

What is the result of executing the following code, using the parameters 4 and 0:

public void divide(int a, int b) {

try {

int c = a / b;

} catch (Exception e) {

System.out.print("Exception ");

} finally {

System.out.println("Finally");

}

A. Prints out: Exception Finally

B. Prints out: Finally

C. Prints out: Exception

D. No output

Select the most appropriate answer.

Q.25

Which of the following is a legal return type of a method overloading the following method:

public void add(int a) {…}

A. void

B. int

C. Can be anything

Select the most appropriate answer.

Q.26

Which of the following statements is correct for a method which is overriding the following method:

public void add(int a) {…}

A. the overriding method must return void

B. the overriding method must return int

C. the overriding method can return whatever it likes

Select the most appropriate answer.

Q. 27

Given the following classes defined in separate files:

class Vehicle {

public void drive() {

System.out.println("Vehicle: drive");

}

}

class Car extends Vehicle {

public void drive() {

System.out.println("Car: drive");

}

}

public class Test {

public static void main (String args []) {

Vehicle v;

Car c;

v = new Vehicle();

c = new Car();

v.drive();

c.drive();

v = c;

v.drive();

}

}

What will be the effect of compiling and running this class Test?

A. Generates a Compiler error on the statement v= c;

B. Generates runtime error on the statement v= c;

C. Prints out:

Vehicle: drive

Car: drive

Car: drive

D. Prints out:

Vehicle: drive

Car: drive

Vehicle: drive

Select the most appropriate answer.

Q. 28

Where in a constructor, can you place a call to a constructor defined in the super class?

A. Anywhere

B. The first statement in the constructor

C. The last statement in the constructor

D. You can't call super in a constructor

Select the most appropriate answer.

Q. 29

Which variables can an inner class access from the class which encapsulates it?

A. All static variables

B. All final variables

C. All instance variables

D. Only final instance variables

E. Only final static variables

Select all correct answers.

Q. 30

What class must an inner class extend:

A. The top level class

B. The Object class

C. Any class or interface

D. It must extend an interface

Select the most appropriate answer.

Q. 31

In the following code, which is the earliest statement, where the object originally held in e, may be garbage collected:

1. public class Test {

2. public static void main (String args []) {

3. Employee e = new Employee("Bob", 48);

4. e.calculatePay();

5. System.out.println(e.printDetails());

6. e = null;

7. e = new Employee("Denise", 36);

8. e.calculatePay();

9. System.out.println(e.printDetails());

10. }

11. }

A. Line 10

B. Line 11

C. Line 7

D. Line 8

E. Never

Select the most appropriate answer.

Q. 32

What is the name of the interface that can be used to define a class that can execute within its own thread?

A. Runnable

B. Run

C. Threadable

D. Thread

E. Executable

Select the most appropriate answer.

Q. 33

What is the name of the method used to schedule a thread for execution?

A. init();

B. start();

C. run();

D. resume();

E. sleep();

Select the most appropriate answer.

Q. 34

Which methods may cause a thread to stop executing?

A. sleep();

B. stop();

C. yield();

D. wait();

E. notify();

F. notifyAll()

G. synchronized()

Select all correct answers.

Q. 35

Write code to create a text field able to display 10 characters (assuming a fixed size font) displaying the initial string "hello":

:

Q. 36

Which of the following methods are defined on the Graphics class:

A. drawLine(int, int, int, int)

B. drawImage(Image, int, int, ImageObserver)

C. drawString(String, int, int)

D. add(Component);

E. setVisible(boolean);

F. setLayout(Object);

Select all correct answers.

Q. 37

Which of the following layout managers honours the preferred size of a component:

A. CardLayout

B. FlowLayout

C. BorderLayout

D. GridLayout

Select all correct answers.

Q. 38

Given the following code what is the effect of a being 5:

public class Test {

public void add(int a) {

loop: for (int i = 1; i <>

for (int j = 1; j <>

if (a == 5) {

break loop;

}

System.out.println(i * j);

}

}

}

}

A. Generate a runtime error

B. Throw an ArrayIndexOutOfBoundsException

C. Print the values: 1, 2, 2, 4

D. Produces no output

Select the most appropriate answer.

Q. 39

What is the effect of issuing a wait() method on an object

A. If a notify() method has already been sent to that object then it has no effect

B. The object issuing the call to wait() will halt until another object sends a notify() or notifyAll() method

C. An exception will be raised

D. The object issuing the call to wait() will be automatically synchronized with any other objects using the receiving object.

Select the most appropriate answer.

Q. 40

The layout of a container can be altered using which of the following methods:

A. setLayout(aLayoutManager);

B. addLayout(aLayoutManager);

C. layout(aLayoutManager);

D. setLayoutManager(aLayoutManager);

Select all correct answers.

Q. 41

Using a FlowLayout manager, which is the correct way to add elements to a container:

A. add(component);

B. add("Center", component);

C. add(x, y, component);

D. set(component);

Select the most appropriate answer.

Q. 42

Given that a Button can generate an ActionEvent which listener would you expect to have to implement, in a class which would handle this event?

A. FocusListener

B. ComponentListener

C. WindowListener

D. ActionListener

E. ItemListener

Select the most appropriate answer.

Q. 43

Which of the following, are valid return types, for listener methods:

A. boolean

B. the type of event handled

C. void

D. Component

Select the most appropriate answer.

Q. 44

Assuming we have a class which implements the ActionListener interface, which method should be used to register this with a Button?

A. addListener(*);

B. addActionListener(*);

C. addButtonListener(*);

D. setListener(*);

Select the most appropriate answer.

Q. 45

In order to cause the paint(Graphics) method to execute, which of the following is the most appropriate method to call:

A. paint()

B. repaint()

C. paint(Graphics)

D. update(Graphics)

E. None – you should never cause paint(Graphics) to execute

Select the most appropriate answer.

Q. 46

Which of the following illustrates the correct way to pass a parameter into an applet:

A.

B.

C.

D.

Select the most appropriate answer.

Q. 47

Which of the following correctly illustrate how an InputStreamReader can be created:

A. new InputStreamReader(new FileInputStream("data"));

B. new InputStreamReader(new FileReader("data"));

C. new InputStreamReader(new BufferedReader("data"));

D. new InputStreamReader("data");

E. new InputStreamReader(System.in);

Select all correct answers.

Q. 48

What is the permanent effect on the file system of writing data to a new FileWriter("report"), given the file report already exists?

A. The data is appended to the file

B. The file is replaced with a new file

C. An exception is raised as the file already exists

D. The data is written to random locations within the file

Select the most appropriate answer.

Q. 49

What is the effect of adding the sixth element to a vector created in the following manner:

new Vector(5, 10);

A. An IndexOutOfBounds exception is raised.

B. The vector grows in size to a capacity of 10 elements

C. The vector grows in size to a capacity of 15 elements

D. Nothing, the vector will have grown when the fifth element was added

Select the most appropriate answer.

Q. 50

What is the result of executing the following code when the value of x is 2:

switch (x) {

case 1:

System.out.println(1);

case 2:

case 3:

System.out.println(3);

case 4:

System.out.println(4);

}

A. Nothing is printed out

B. The value 3 is printed out

C. The values 3 and 4 are printed out

D. The values 1, 3 and 4 are printed out

Select the most appropriate answer.

Q. 51

Consider the following example:

class First {

public First (String s) {

System.out.println(s);

}

}

public class Second extends First {

public static void main(String args []) {

new Second();

}

}

What is the result of compiling and running the Second class?

A. Nothing happens

B. A string is printed to the standard out

C. An instance of the class First is generated

D. An instance of the class Second is created

E. An exception is raised at runtime stating that there is no null parameter constructor in class First.

F. The class second will not compile as there is no null parameter constructor in the class First

Select the most appropriate answer.

Q. 52 What is the result of executing the following fragment of code:

boolean flag = false;

if (flag = true) {

System.out.println("true");

} else {

System.out.println("false");

}

A. true is printed to standard out

B. false is printed to standard out

C. An exception is raised

D. Nothing happens

Select the most appropriate answer.

Q. 53

Consider the following classes:

public class Test {

public static void test() {

this.print();

}

public static void print() {

System.out.println("Test");

}

public static void main(String args []) {

test();

}

}

What is the result of compiling and running this class?

A. The string Test is printed to the standard out.

B. A runtime exception is raised stating that an object has not been created.

C. Nothing is printed to the standard output.

D. An exception is raised stating that the method test cannot be found.

E. An exception is raised stating that the variable this can only be used within an instance.

F. The class fails to compile stating that the variable this is undefined.

Select all correct answers.

Q. 54

Examine the following class definition:

public class Test {

public static void test() {

print();

}

public static void print() {

System.out.println("Test");

}

public void print() {

System.out.println("Another Test");

}

}

What is the result of compiling this class:

A. A successful compilation.

B. A warning stating that the class has no main method.

C. An error stating that there is a duplicated method.

D. An error stating that the method test() will call one or other of the print() methods.

Select the most appropriate answer.

Q. 55

What is the result of compiling and executing the following Java class:

public class ThreadTest extends Thread {

public void run() {

System.out.println("In run");

suspend();

resume();

System.out.println("Leaving run");

}

public static void main(String args []) {

(new ThreadTest()).start();

}

}

A. Compilation will fail in the method main.

B. Compilation will fail in the method run.

C. A warning will be generated for method run.

D. The string "In run" will be printed to standard out.

E. Both strings will be printed to standard out.

F. Nothing will happen.

Select the most appropriate answer.

Q. 56

Given the following sequence of Java statements

1. StringBuffer sb = new StringBuffer("abc");

2. String s = new String("abc");

3. sb.append("def");

4. s.append("def");

5. sb.insert(1, "zzz");

6. s.concat(sb);

7. s.trim();

Which of the following statements are true:

A. The compiler would generate an error for line 1.

B. The compiler would generate an error for line 2.

C. The compiler would generate an error for line 3.

D. The compiler would generate an error for line 4.

E. The compiler would generate an error for line 5.

F. The compiler would generate an error for line 6.

G. The compiler would generate an error for line 7.

Select all correct answers.

Q. 57

What is the result of executing the following Java class:

import java.awt.*;

public class FrameTest extends Frame {

public FrameTest() {

add (new Button("First"));

add (new Button("Second"));

add (new Button("Third"));

pack();

setVisible(true);

}

public static void main(String args []) {

new FrameTest();

}

}

Select from the following options:

A. Nothing happens.

B. Three buttons are displayed across a window.

C. A runtime exception is generated (no layout manager specified).

D. Only the "first" button is displayed.

E. Only the "second" button is displayed.

F. Only the "third" button is displayed.

Select the most appropriate answer.

Q. 58

Consider the following tags and attributes of tags:

1. CODEBASE

2. ALT

3. NAME

4. CLASS

5. JAVAC

6. HORIZONTALSPACE

7. VERTICALSPACE

8. WIDTH

9. PARAM

10. JAR

Which of the above can be used within the and tags?

A. line 1, 2, 3

B. line 2, 5, 6, 7

C. line 3, 4, 5

D. line 8, 9, 10

E. line 8, 9

Select all correct answers.

Q. 59

Which of the following is a legal way to construct a RandomAccessFile:

A. RandomAccessFile("data", "r");

B. RandomAccessFile("r", "data");

C. RandomAccessFile("data", "read");

D. RandomAccessFile("read", "data");

Select the most appropriate answer.

Q. 60

Carefully examine the following code:

public class StaticTest {

static {

System.out.println("Hi there");

}

public void print() {

System.out.println("Hello");

}

public static void main(String args []) {

StaticTest st1 = new StaticTest();

st1.print();

StaticTest st2 = new StaticTest();

st2.print();

}

}

When will the string "Hi there" be printed?

A. Never.

B. Each time a new instance is created.

C. Once when the class is first loaded into the Java virtual machine.

D. Only when the static method is called explicitly.

Select the most appropriate answer.

Q. 61

Consider the following program:

public class Test { public static void main (String args []) { boolean a = false; if (a = true)

System.out.println("Hello");

Else

System.out.println("Goodbye");

}

}

What is the result:

A. Program produces no output but terminates correctly.

B. Program does not terminate.

C. Prints out "Hello"

D. Prints out "Goodbye"

Select the most appropriate answer.

Q. 62

Examine the following code which includes an inner class:

public final class Test4 implements A {

class Inner {

void test() {

if (Test4.this.flag); {

sample();

}

}

}

private boolean flag = false;

public void sample() {

System.out.println("Sample");

}

public Test4() {

(new Inner()).test();

}

public static void main(String args []) {

new Test4();

}

}

What is the result:

A. Prints out "Sample"

B. Program produces no output but terminates correctly.

C. Program does not terminate.

D. The program will not compile

Select the most appropriate answer.

Q. 63

Carefully examine the following class:

public class Test5 { public static void main (String args []) { /* This is the start of a comment

if (true) {

Test5 = new test5();

System.out.println("Done the test");

}

/* This is another comment */

System.out.println ("The end");

}

}

What is the result:

A. Prints out "Done the test" and nothing else.

B. Program produces no output but terminates correctly.

C. Program does not terminate.

D. The program will not compile.

E. The program generates a runtime exception.

F. The program prints out "The end" and nothing else.

G. The program prints out "Done the test" and "The end"

Select the most appropriate answer.

Q. 64

The following code defines a simple applet:

import java.applet.Applet;

import java.awt.*;

public class Sample extends Applet {

private String text = "Hello World";

public void init() {

add(new Label(text));

}

public Sample (String string) {

text = string;

}

}

It is accessed form the following HTML page:

What is the result of compiling and running this applet:

A. Prints "Hello World".

B. Generates a runtime error.

C. Does nothing.

D. Generates a compile time error.

Select the most appropriate answer.

Q. 65

Examine the following code:

public class Calc {

public static void main (String args []) {

int total = 0;

for (int i = 0, j = 10; total > 30; ++i, --j) {

System.out.println(" i = " + i + " : j = " + j);

total += (i + j);

}

System.out.println("Total " + total);

}

}

Does this code:

A. Produce a runtime error

B. Produce a compile time error

C. Print out "Total 0"

D. Generate the following as output:

i = 0 : j = 10

i = 1 : j = 9

i = 2 : j = 8

Total 30

Please select the most appropriate answer.


Answer # 9 to Java Certification Mock Exam

1. B


2. A


3. A, B, C, E


4. A, B


5. C

6. A, C


7. D


8. A


9. B


10. B

11. B


12. A,B


13. A, B


14. A, B, C, D


15.B, C

16. A, E


17. D


18. D


19. A


20. B

21. B


22. A, C, D, E


23. B


24. A


25. C

26. A


27. C


28. B


29. A, B, C


30. C

31. C


32. A


33. B


34. A, B, C, D


35. new TextField("hello", 10)

36. A, B, C


37. B


38. D


39. B


40. A

41. A


42. D


43. C


44. B


45. B

46. B


47. A, E


48. B


49. C


50. C

51. F


52. A


53. F


54. C


55. D

56. D, F


57. F


58. A, E


59. A


60. C

61. C


62. A


63. F


64. B


65. C