JAVA Interview Questions
JAVA Interview Questions
Definitions
• Encapsulation::
Encapsulation is the mechanism that binds together code and the data it manipulates and keeps both
safe from outside interference and misuse.
• Inheritance :
Inheritance is the process by which one object acquires the properties of another object.
• Polymorphism :
Polymorphism is a feature that allows one interface to be used for a general class of actions. The
specific action is determined by the exact nature of actions.
• Code Blocks :
Two or more statements which is allowed to be grouped into blocks of code is otherwise called as
Code Blocks.This is done by enclosing the statements between opening and closing curly braces.
• Floating-point numbers:
Floating-point numbers which is also known as real numbers, are used when evaluating expressions
that require fractional precision.
• Unicode:
Unicode defines a fully international character set that can represent all of the characters found in all
human languages. It is a unification of dozens of character sets, such as Latin, Greek, Arabic and
many more.
• Booleans:
Java has a simple type called boolean, for logical values. It can have only on of two possible values,
true or false.
• Casting:
A cast is simply an explicit type conversion. To create a conversion between two incompatible types,
you must use a cast.
• Arrays:
An array is a group of like-typed variables that are referred to by a common name. Arrays offer a
convenient means of grouping related information. Arrays of any type can be created and may have
one or more dimension.
• Relational Operators:
The relational operators determine the relationship that one operand has to the other. They determine
the equality and ordering.
The secondary versions of the Boolean AND and OR operators are known as short- circuit logical
operators. It is represented by || and &&..
• Switch:
The switch statement is Java’s multiway branch statement. It provides an easy way to dispatch
execution to different parts of your code based on the value of an experession.
• Jump Statements:
Jump statements are the statements which transfer control to another part of your program. Java
Supports three jump statements: break, continue, and return.
• Instance Variables:
The data, or variable, defined within a class are called instance variable.
Top
1) The Java interpreter is used for the execution of the source code.
a) True
b) False
Ans: a.
b) False
Ans: a.
a) True
b) False
Ans: a.
a) True
b) False
Ans: a.
6) What are the two parts in executing a Java program and their purposes?
The Java Compiler is used for compilation and the Java Interpreter is used for execution of
the application.
Ans : Encapsulation, Inheritance and Polymorphism are the three OOPs Principles.
Encapsulation: Is the Mechanism that binds together code and the data it manipulates, and
keeps both safe from outside interference and misuse.
Inheritance: Is the process by which one object acquires the properties of another object.
Polymorphism: Is a feature that allows one interface to be used for a general class of actions.
Ans : a.
10) In order for a source code file, containing the public class Test, to successfully compile, which of the
following must be true?
Ans : b
Ans : Identifiers are used for class names, method names and variable names. An identifier
may be any descriptive sequence of upper case & lower case letters,numbers or underscore or
dollar sign and must not begin with numbers.
Ans : void
Ans : A – Z, a – z, _ ,$
2) /* --
3) /** --
*/ documentation
16) What is the difference between constructor method and method?
Ans : Constructor will be automatically invoked when an object is created. Whereas method
has to be call explicitly.
Ans : Bin contains all tools such as javac, applet viewer, awt tool etc., whereas Lib contains
all packages and variables
Top
Ans: Variables are locations in memory that can hold values. Before assigning any value to a
variable, it must be declared.
2) What are the kinds of variables in Java? What are their uses?
Ans: Java has three kinds of variables namely, the instance variable, the local variable and
the class variable.
Local variables are used inside blocks as counters or in methods as temporary variables and
are used to store information needed by a single method.
Instance variables are used to define attributes or the state of a particular object and are used
to store information needed by multiple methods in the objects.
Class variables are global to a class and to all the instances of the class and are useful for
communicating between different objects of all the same class or keeping track of global
states.
Ans: Variables can be declared anywhere in the method definition and can be initialized
during their declaration.They are commonly declared before usage at the beginning of the
definition.
Variables with the same data type can be declared together. Local variables must be given a
value before usage.
Ans: Variable types can be any data type that java supports, which includes the eight
primitive data types, the name of a class or interface and an array.
Ans: A literal represents a value of a certain type where the type describes how that value
behaves.There are different types of literals namely number literals, character literals,
boolean literals, string literals,etc.
7) What is an array?
Ans: Array variable indicates the type of object that the array holds.
a)True
b)False
Ans: a.
a)True
b)False
Ans: a.
a)True
b)False
Ans: a.
13) When a string literal is used in the program, Java automatically creates instances of the string class.
a)True
b)False
Ans: a.
1. String[ ] s;
2. String [ ]s:
3. String[ s]:
4. String s[ ]:
Ans : a, b and d
16) What is the value of a[3] as the result of the following array declaration?
1. 1
2. 2
3. 3
4. 4
Ans : d
1. byte
2. String
3. integer
4. Float
Ans : a.
1. 0 to 2 16
2. 0 to 2 15
3. 0 to 2 16-1
4. 0 to 2 15-1
Ans. d
float, double
boolean
char
Ans :
int - 0
short - 0
byte - 0
long - 0 l
float - 0.0 f
double - 0.0 d
boolean - false
char - null
a)True
b)False
Ans: b.
Ans : The array subscript expression can be used to change the values of the elements of the
array.
Ans : If a variable is declared as final variable, then you can not change its value. It becomes
constant.
Top
Operators
1) What are operators and what are the various types of operators available in Java?
Ans: Operators are special symbols used in expressions. The following are the types of
operators:
Arithmetic operators,
Assignment operators,
Logical operators,
Biwise operators,
Conditional operators
2) The ++ operator is used for incrementing and the -- operator is used for
decrementing.
a)True
b)False
Ans: a.
a)True
b)False
Ans: a.
a)True
b)False
Ans: a.
1. 3
2. 5
3. 7
4. 9
Ans : c.
Ans : No.
Ans : Yes
Ans : Order of precedence the order in which operators are evaluated in expressions.
Ans : = operator.
13) What is the difference between prefix and postfix of -- and ++ operators?
Ans : The prefix form returns the increment or decrement operation and returns the value of
the increment or decrement operation.
The postfix form returns the current value of all of the expression and then
x = 5; y = ++x;
Ans : x = 6; y = 6
x = 5; z = x++;
Ans : x = 6; z = 5
Top
Control Statements
Ans:
a) Sequential
2) class conditional {
int i = 20;
int j = 55;
int z = 0;
a)True
b)False
Ans: b.
a)True
b)False
Ans: a.
5) The while loop repeats a set of code while the condition is false.
a)True
b)False
Ans: b.
6) The do-while loop repeats a set of code atleast once before the condition is tested.
a)True
b)False
Ans: a.
Ans: The break keyword halts the execution of the current loop and forces control out of the
loop.
The continue is similar to break, except that instead of halting the execution of the loop, it
starts the next iteration.
8) The for loop repeats a set of statements a certain number of times until a condition is matched.
a)True
b)False
Ans: a.
Ans : A while statement checks at the beginning of a loop to see whether the next loop
iteration should occur.
A do statement checks at the end of a loop to see whether the next iteration of a loop should
occur. The do statement will always execute the body of a loop at least once.
Top
2) The new operator creates a single instance named class and returns a reference to that object.
a)True
b)False
Ans: a.
a)True
b)False
Ans: a.
Ans: When an object is no longer referred to by any variable, Java automatically reclaims
memory used by that object. This is known as garbage collection.
Ans: Methods are functions that operate on instances of classes in which they are
defined.Objects can communicate with each other using methods and can call methods in
other classes.
Method definition has four parts. They are name of the method, type of object or primitive
type the method returns, a list of parameters and the body of the method. A method's
signature is a combination of the first three parts mentioned above.
6) What is calling method?
Ans: Calling methods are similar to calling or referring to an instance variable. These
methods are accessed using dot notation.
Ex: obj.methodname(param1,param2)
Ans: getClass( ) method can be used to find out what class the belongs to. This class is
defined in the object class and is available to all objects.
8) All the classes in java.lang package are automatically imported when a program is compiled.
a)True
b)False
Ans: a.
import classname;
Ans: A constructor is a special kind of method that determines how an object is initialized
when created.
Ans: new.
a)True
b)False
Ans: a.
15) What is casting?
16) Casting between primitive types allows conversion of one primitive type to another.
a)True
b)False
Ans: a.
a)True
b)False
Ans: a.
18) Boolean values can be cast into any other primitive type.
a)True
b)False
Ans: b.
a)True
b)False
Ans: a.
20) Which cast must be used to convert a larger value into a smaller one?
22) Which of the following features are common to both Java & C++?
Ans: a,b,c.
23) Which of the following statements accurately describe the use of access modifiers within a class
definition?
Ans: a,b,d.
24) Suppose a given instance variable has been declared private. Can this instance variable be manipulated
by methods out side its class?
a.yes
b.no
Ans: b.
25) Which of the following statements can be used to describe a public method?
d.The only way to gain access to this method is by calling one of the public class
methods
Ans: a,c.
26) Which of the following types of class members can be part of the internal part of a class?
d.Private methods
Ans: b,d.
27) You would use the ____ operator to create a single instance of a named class.
a.new
b.dot
Ans: a.
28) Which of the following statements correctly describes the relation between an object and the instance
variable it stores?
a.Each new object has its own distinctive set of instance variables
c.the instance variable of each object are seperate from the variables of other objects
d.The instance variables of each object are stored together with the variables of other objects
Ans: a,b,c.
29) If no input parameters are specified in a method declaration then the declaration will include __.
Ans: a.
a.It enables you to access instance variables of any objects within a class
Ans: a,b,c.
Ans: c.
a.static
b.non-static
Ans: b.
33) Which of the following operators are used in conjunction with the this and super references?
Ans: c.
a. true
b. false
Ans: a.
b. When the name of the constructor differs from that of the class
Ans: c.
a. true
b.false
Ans: a.
37) When an object is referenced, does this mean that it has been identified by the finalizer method for
garbage collection?
a.yes
b.no
Ans: b.
38) Because finalize () belongs to the java.lang.Object class, it is present in all ___.
a.objects
b.classes
c.methods
Ans: b.
Ans: a,c.
40) When you write finalize() method for your class, you are overriding a finalizer inherited from a super
class.
a.true
b.false
Ans: a.
41) Java memory management mechanism garbage collects objects which are no longer referenced
a true
b.false
Ans: a.
42) are objects referenced by a variable candidates for garbage collection when the variable goes out of
scope?
a yes
b. no
Ans: a.
43) Java's garbage collector runs as a ___ priority thread waiting for __priority threads to relinquish the
processor.
a.high
b.low
Ans: a,b.
44) The garbage collector will run immediately when the system is out of memory
a.true
b.false
Ans: a.
45) You can explicitly drop a object reference by setting the value of a variable whose data type is a
reference type to ___
Ans: null
46) When might your program wish to run the garbage collecter?
Ans: a,b,d
47) For externalizable objects the class is solely responsible for the external format of its contents
a.true
b.false
Ans: a
48) When an object is stored, are all of the objects that are reachable from that object stored as well?
a.true
b.false
Ans: a
49) The default__ of objects protects private and trancient data, and supports the __ of the classes
a.evolution
b.encoding
Ans: b,a.
a) NULL
b) sizeof
c) friend
d) extends
e) synchronized
Ans : d and e
51) When must the main class and the file name coincide?
Ans : public, private, protected, default, static, trancient, volatile, final, abstract.
1. Inner class
2. Anonymous classes
3. Method overloading
4. Method overriding
Ans : c
Top
Ans :The package statement defines a name space in which classes are stored.If you omit the
package, the classes are put into the default package.
Use: * It specifies to which package the classes defined in a file belongs to. * Package is both
naming and a visibility control mechanism.
Ans :"java.applet.Applet" will import only the class Applet from the package java.applet
Where as "java.applet.*" will import all the classes from java.applet package.
private: Anything declared in the private can’t be seen outside of its class.
Ans : It is similar to class which may contain method’s signature only but not bodies.
Methods declared in interface are abstract methods. We can implement many interfaces on a
class which support the multiple inheritance.
Ans : public.
Ans : Yes we can define a variable in an interface. They are implicitly final and static.
Ans : All the methods declared inside an Interface are abstract. Where as abstract class must
have at least one abstract method and others may be concrete or abstract.
In Interface we need not use the keyword abstract for the methods.
True/False
Ans : True
10) Java compiler stores the .class files in the path specified in CLASSPATH
environmental variable.
True/False
Ans : False
11) User-defined package can also be imported just like the standard packages.
True/False
Ans : True
12) When a program does not want to handle exception, the ______class is used.
Ans : Throws
Ans : RuntimeException
Ans : Throwable
Ans : Exception
16) The catch clause of the user-defined exception class should ______ its Base class catch clause.
Ans : Exception
17) A _______ is used to separate the hierarchy of the class while declaring an Import statement.
Ans : Package
18) All standard classes of Java are included within a package called _____.
Ans : java.lang
19) All the classes in a package can be simultaneously imported using ____.
Ans : *
20) Can you define a variable inside an Interface. If no, why? If yes, how?
21) How many concrete classes can you have inside an interface?
Ans.: None
Ans.: Yes
23) Is it necessary to implement all the methods of an interface while implementing the interface?
Ans.: No
24) If you do not implement all the methods of an interface while implementing , what specifier should you
use for the class ?
Ans.: abstract
a)True
b) false
Ans : a.
28) Can variables be declared in an interface ? If so, what are the modifiers?
Ans : Yes. final and static are the modifiers can be declared in an interface.
29) What are the possible access modifiers when implementing interface methods?
Ans : public.
Ans : Yes.
a)True
b)False
Ans : b.
Top
Exception Handling
1) What is the difference between ‘throw’ and ‘throws’ ?And it’s application?
Ans : Exceptions that are thrown by java runtime systems can be handled by Try and catch
blocks. With throw exception we can handle the exceptions thrown by the program itself. If a
method is capable of causing an exception that it does not
handle, it must specify this behavior so the callers of the method can guard
Ans : Exception and Error are the subclasses of the Throwable class. Exception class is used
for exceptional conditions that user program should catch. With exception class we can
subclass to create our own custom exception.
Error defines exceptions that are not excepted to be caught by you program. Example is
Stack Overflow.
Ans : Freeing up other resources that might have been allocated at the beginning of a method.
Ans : Finally block will execute whether or not an exception is thrown. If an exception is
thrown, the finally block will execute even if no catch statement match the exception. Any
time a method is about to return to the caller from inside try/catch block, via an uncaught
exception or an explicit return statement, the finally clause is also execute.
Catch (Throwable t)
Ans :
Signature is..
9) The finally block is executed when an exception is thrown, even if no catch matches it.
True/False
Ans : True
10) The subclass exception should precede the base class exception when used within the catch clause.
True/False
Ans : True
True/False
Ans : True
12) The statements following the throw keyword in a program are not executed.
True/False
Ans : True
True/False
Ans : True
Top
Multi Threading
Ans :
1.process-based
2.Thread-based
Ans :
Ans : run()
5) What is the data type for the method isAlive() and this method is available in which class?
Ans : boolean, Thread
Ans :
1.isAlive()
2.join()
3.resume()
4.suspend()
5.stop()
6.start()
7.sleep()
8.destroy()
7) What are all the methods used for Inter Thread communication and what is the class in which these
methods are defined?
Ans :
2. Object class
8) What is the mechanisam defind by java for the Resources to be used by only one Thread at a time?
Ans : Synchronisation
ob.sleep(1000)
11) What is the data type for the parameter of the sleep() method?
Ans : long
12) What are all the values for the following level?
max-priority
min-priority
normal-priority
Ans : 10,1,5
Ans : setPriority()
14) What is the default thread at the time of starting the program?
True/ False
Ans : False
16) Which priority Thread can prompt the lower primary Thread?
Ans : one
18) What are all the four states associated in the thread?
True /False
Ans : False
20) The run() method should necessary exists in clases created as subclass of thread?
True /False
Ans : True
21) When two threads are waiting on each other and can't proceed the programe is said to be in a deadlock?
True/False
Ans : True
1) wait(),notify(),notifyall() are defined as final & can be called only from with in a
synchronized method
1. 1
2. 2
3. 3
4. 1&2
5. 1,2 & 3
Ans : D
Ans : low-priority
Ans : Timeslicing is the method of allocating CPU time to individual threads in a priority
schedule.
26) What is meant by daemon thread? In java runtime, what is it's role?
Ans : Daemon thread is a low priority thread which runs intermittently in the background
doing the garbage collection operation for the java runtime system.
Top
Inheritance
Ans : A super class is a class that is inherited whereas subclass is a class that does the
inheriting.
Ans : extends
3) Subclasses methods can access superclass members/ attributes at all times?
True/False
Ans : False
True/False
Ans : True
True/False
Ans : False
8) What is inheritance?
Ans : Deriving an object from an existing class. In the other words, Inheritance is the process
of inheriting all the features from a class
Ans : Reusability of code and accessibility of variables and methods of the superclass by
subclasses.
10) Which method is used to call the constructors of the superclass from the subclass?
Ans : super(argument)
11) Which is used to execute any method of the superclass from the subclass?
Ans : super.method-name(arguments)
12) Which methods are used to destroy the objects created by the constructor methods?
Ans : finalize()
Ans: It must provide all of the methods in the interface and identify the interface in its
implements clause.
True/False
Ans : False
True/False
Ans: True
True/False
Ans : True
Ans: A class does not inherit constructors from any of it's super classes.
Ans: Two methods may not have the same name and argument list but different return types.
Ans : Overridden methods must have the same name , argument list , and return type. The
overriding method may not limit the access of the method it overridees.The overriding
method may not throw any exceptions that may not be thrown by the overridden method.
24) What modifiers may be used with an inner class that is a member of an outer class?
Ans : a (non-local) inner class may be declared as public, protected, private, static, final or
abstract.
b)It's a superclass
Ans: c
a)Non-abstract
b)Implemented
c)unimplemented
Ans:c
Top
String Handling
5) Which method can be used to perform a comparison between strings that ignores case differences?
Ans : valueOf( ) method converts data from its internal format into a human-readable form.
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.
8) Which method can be used to find out the total allocated capacity of a StrinBuffer?
9) Which method can be used to set the length of the buffer within a StringBuffer object?
Ans : setLength( ).
Ans : String objects are constants, whereas StringBuffer objects are not.
String class supports constant strings, whereas StringBuffer class supports growable,
modifiable strings.
Ans : Wrapper classes are classes that allow primitive types to be accessed as objects.
1. String
2. Integer
3. Boolean
4. Character
Ans : a.
13) What is the output of the following program?
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.
14) Which of the following methods are methods of the String class?
1. delete( )
2. append( )
3. reverse( )
4. replace( )
Ans : d.
15) 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. True
2. False
Ans : b.
17) If you run the code below, what gets printed out?
int iBegin=1;
char iEnd=3;
System.out.println(s.substring(iBegin,iEnd));
1. Bic
2. ic
3. icy
4. error: no method matching substring(int,char)
Ans : b.
1. s3=s1 + s2;
2. s3=s1 - s2;
3. s3=s1 & s2
4. s3=s1 && s2
Ans : a.
a)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
Ans : b.
Top
Exploring Java.lang
1. True
2. False
Ans : a
3) What are the constants defined by both Flaot and Double classes?
Ans : MAX_VALUE,
MIN_VALUE,
NaN ,
POSITIVE_INFINITY,
NEGATIVE_INFINITY and
TYPE.
4) What are the constants defined by Byte, Short, Integer and Long?
Ans : MAX_VALUE,
MIN_VALUE and
TYPE.
5) What are the constants defined by both Float and Double classes?
Ans : MAX_RADIX,
MIN_RADIX,
MAX_VALUE,
MIN_VALUE and
TYPE.
Ans : The purpose of the Runtime class is to provide access to the Java runtime system.
7) What is the purpose of the System class?
Ans : The purpose of the System class is to provide access to system resources.
Ans : The Class class can be used to obtain information about an object’s design.
Ans : E is the base of the natural logarithm and PI is the mathematical value pi.
12) Which of the following classes is used to perform basic console I/O?
1. System
2. SecurityManager
3. Math
4. Runtime
Ans : a.
Ans : c and d.
14) Which of the following methods are methods of the Math class?
1. absolute( )
2. log( )
3. cosine( )
4. sine( )
Ans : b.
15) Which of the following are true about the Error and Exception classes?
Ans : a.
Ans : d.
1. System.out.println(Math.floor(-4.7));
2. System.out.println(Math.round(-4.7));
3. System.out.println(Math.ceil(-4.7));
4. System.out.println(Math.Min(-4.7));
Ans : c.
Ans : e.
19) What will happen if you attempt to compile and run the following code?
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.
Top
1) What is meant by Stream and what are the types of Streams and classes of the Streams?
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.
Ans : d.
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.
4) The File class contains a method that changes the current working directory.
1. True
2. False
Ans : b.
5) It is possible to use the File class to list the contents of the current working directory.
1. True
2. False
Ans : a.
6) Readers have methods that can read and return floats and doubles.
1. True
2. False
Ans : b.
7) You execute the code below in an empty directory. What is the result?
Ans : e.
8) What is the difference between the Reader/Writer class hierarchy and the InputStream/OutputStream
class hierarchy?
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.
Ans : The File class is used to create objects that provide access to the files and directories of
a local file system.
11) 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.
12) 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.
13) What class allows you to read objects directly from a stream?
Ans : The ObjectInputStream class supports the reading of objects from input streams.
14) 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.
15) 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.
16) 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.
Ans : a and c.
Ans : c and d.
Ans : a and b.
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.
21) Which of the following are true about the File class?
Ans : b, d and e.
Ans : c.
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.
24) 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.
25) Reading or writing can be done even after closing the input/output source.
1. True.
2. False.
Ans : b.
Ans : flush( ).
1. True.
2. False.
Ans : a.
Ans : StreamTokenizer breaks up InputStream into tokens that are delimited by sets of
characters.
Ans : Serialization is the process of writing the state of an object to a byte stream.
30) Which of the following can you perform using the File class?
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.
Top
Applets
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.
String URLString
try{
}
context. showDocument (targetURL);
Ans : No. Not Directly. The applets will exchange the information at one meeting place
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.
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 : 2.
10) The <PARAM> tag contains two attributes namely _________ and _______.
Ans : .html.
12) What tags are mandatory when creating HTML to display an applet
Ans : 4.
1. True.
2. False.
Ans : a.
14) What are the Applet’s Life Cycle methods? Explain them?
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.
Ans : getAppletInfo( ) method : Returns a string describing the applet, its author ,copy
1. True.
2. False.
Ans : a.
1. True.
2. False.
Ans : a.
c) Execute the appletviewer, specifying the name of your applet’s source file.
19) Applets are executed by the console based Java run-time interpreter.
1. True.
2. False.
Ans : b.
Ans : Applet class consists of a single class, the Applet class and three interfaces:
AppletContext,
21) 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( )
22) When an applet is terminated, the following sequence of method cals takes place :
1. stop( )
2. destroy( )
1. True.
2. False
Ans : a.
Top
Event Handling
1) The event delegation model, introduced in release 1.1 of the JDK, is fully compatible with the event
model.
1. True
2. False
Ans : b.
2) 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.
Ans : The java.awt.AWTEvent class is the highest-level class in the AWT event class
hierarchy.
Ans : The ActionEvent event is generated as the result of the clicking of a button.
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.
8) 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.
9) 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.
Ans :The enableEvents( ) method is used to enable an event for a particular object.
Ans : c.
12) 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.
13) When two or more objects are added as listeners for the same event, which listener is first invoked to
handle the event?
Ans : c.
1. Buttons
2. Labels
3. Check boxes
4. Windows
Ans : a.
Ans : a and d.
17) 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.
Ans : b.
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.
20) How many types of events are provided by AWT? Explain them?
21) 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.
22) Semantic event : Semantic event is defined at a higher-level to encapsulate the semantics of a user
interface component’s model.
Ans : source.
24) The event listener corresponding to handling keyboard events is the _________ .
Ans : KeyListener.
a) mousePressed(MouseEvent e){}
b) MousePressed(MouseClick e){}
c) functionKey(KeyPress k){}
d) componentAdded(ContainerEvent e){}
Ans : a and d.
Ans : b and c.
Top
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.
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.
g.setColor(Color.black);
g.setColor(Color.RED);
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.
Ans : b, d and e.
5) What code would you use to construct a 24-point bold serif font?
Ans : 4.
g.drawString("question #6",10,0);
Ans : 2.
g.drawString("question #6",10,0);
Ans : 4.
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.
10) 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.
11) What is the difference between the Font and FontMetrics classes?
12) 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.
13) 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. Canvas
2. Image
3. Frame
4. Graphics
Ans : a and c.
1. drawRect( )
2. drawImage( )
3. drawPoint( )
4. drawString( )
Ans : a, b and d.
16) Which Font attributes are available through the FontMetrics class?
1. ascent
2. leading
3. case
4. height
Ans : a, b and d.
Ans : a and b.
18) Which method is used to size a graphics object to fit the current size of the window?
19) What are the methods to be used to set foreground and background colors?
20) You have created a simple Frame and overridden the paint method as follows
g.drawString("Dolly",50,10);
What will be the result when you attempt to compile and run the program?
Ans : c.
21) 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.
Ans : c.
a)s.setBackground(Color.pink);
b)s.setColor(PINK);
c)s.Background(pink);
d)s.color=Color.pink
Ans : a.
Top
Ans : Controls are componenets that allow a user to interact with your application.
Labels
Push buttons
Check boxes
Choice lists
Lists
Scroll bars
Text components
2) You want to construct a text area that is 80 character-widths wide and 10 character-heights tall. What
code do you use?
Ans: b.
3) 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.)
Ans : c.
1. True
2. False
Ans : b.
1. a) Container class
2. b) MenuComponent class
3. c) Dialog class
4. d) Applet class
5. e) Menu class
b) MenuComponent - Object
c) Dialog - Window
d) Applet - Panel
e) Menu - MenuItem
6) What are the SubClass of Textcomponent Class?
7) Which method of the component class is used to set the position and the size of a component?
Ans : setBounds()
Ans : setEditable()
Ans : getState()
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 : 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( )
A Scrollpane is a Container and handles its own events and performs its own
scrolling.
Ans : Canvas.
1. Button
2. Label
3. CheckboxMenuItem
4. Toolbar
5. Frame
Ans : a, b and e.
1. Frame
2. TextArea
3. MenuBar
4. FileDialog
5. Applet
1. setText( )
2. setLabel( )
3. setTextLabel( )
4. setLabelText( )
Ans : a.
Ans : a.
21) Which of the following creates a List with 5 visible items and multiple selection enabled?
Ans : a.
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.
24) 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
Ans : a.
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 : The Container class has three major subclasses. They are :
1. Window
2. Panel
3. ScrollPane
1. True.
2. False.
Ans : b.
1. True.
2. False.
Ans : b.
31) Which components are used to get text input from the user.
Ans : CheckboxGroup.
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?
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).
setBounds(Rectangle r)
setSize(Dimension d)
setLocation(int x, int y)
setLocation(Point p)
aWindow.setLayout(new FlowLayout());
aWindow.getBounds(50,50,200,200);
aWindow.show();
41) What is the default Layout Manager for the Window and Window subclasses (Frame,Dialog)?
Ans : BorderLayout().
Ans : FlowLayout : The elements of a FlowLayout are organized in a top to bottom, left to
right fashion.
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.
more than one row or column of the grid. In addition, the rows and columns may have
different sizes.
Ans : The Window, Frame and Dialog classes use a BorderLayout as their default layout.
Ans : The preferred size of a component size that will allow the component to display
normally.
1. startLayout( )
2. initLayout( )
3. layoutContainer( )
4. setLayout( )
Ans : d.
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.
50) 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.
51) 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.
52) 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.
53) 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.
54) 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));
3. setGridLayout(2,2,))
4. 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?
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.
Ans : a and d.
59) Which method does display the messages whenever there is an item selection or deselection of the
CheckboxMenuItem menu?
Ans : CheckboxMenuItem.
Ans : setState(boolean).
1. A separator
2. A check box
3. A menu
4. A button
5. A panel
Ans : a and c.
1. A panel
2. A frame
3. An applet
4. A menu bar
5. A menu
Ans : b
Ans : The CheckboxMenuItem class extends the MenuItem class to support a menu item
Ans : c and d.
Top
Utility Package
ANSWER : The Vector class provides the capability to implement a growable array of
objects.
ANSWER : The Set interface provides methods for accessing the elements of a finite
mathematical set.Sets do not allow duplicate elements.
ANSWER : The Dictionary class is the abstarct super class of Hashtable and Properties
class.Dictionary provides the abstarct functions used to store and retrieve objects by key-
value.This class allows any object to be used as a key or value.
ANSWER : The Hashtable class implements a hash table data structure. A hash table
indexes and stores objects in a dictionary using hash codes as the objects' keys. Hash codes
are integer values that identify objects.
Answer : The properties class is a subclass of Hashtable that can be read from or written to a
stream.It also provides the capability to specify a set of default values to be used if a
specified key is not found in the table. We have two methods load() and save().
6) What changes are needed to make the following prg to compile?
import java.util.*;
class Ques{
String s1 = "abc";
String s2 = "def";
v.add(s1);
v.add(s2);
System.out.println(s3);
D) Import java.lang
import java.util.*;
class Ques{
String s1 = "abc";
String s2 = "def";
stack.push(s2);
try{
System.out.println(s3);
A) abcdef
B) defabc
C) abcabc
D) defdef
ANSWER : B) defabc
A)Collection
B) List
C) Map
D) Set
ANSWER : A and B Neither a Map nor a Set may have duplicate elements.
import java.util.*;
class Ques{
String s1 = "abc";
String s2 = "def";
String s3 = "";
set.add(s1);
set.add(s2);
set.add(s1);
set.add(s2);
Iterator i = set.iterator();
while(i.hasNext())
s3 += (String) i.next();
System.out.println(s3);
ResourceBundle subclasses are used to store locale-specific resources that can be loaded by a
program to tailor the program's appearence to the paticular locale in which it is being run.
Resource Bundles provide the capability to isolate a program's locale-specific resources in a
standard and modular manner.
14) How are Observer Interface and Observable class, in java.util package, used?
ANSWER : Objects that subclass the Observable class maintain a list of Observers. When an
Observable object is updated it invokes the update() method of each of its observers to notify
the observers that it has changed state. The Observer interface is implemented by objects that
observe Observable objects.
ANSWER : The EventObject class and the EventListener interface support event processing.
16) Does java provide standard iterator functions for inspecting a collection of objects?
ANSWER : The Enumeration interface in the java.util package provides a framework for
stepping once through a collection of objects. We have two methods in that interface.
boolean hasMoreElements();
Object nextElement();
17) The Math.random method is too limited for my needs- How can I generate random numbers more
flexibly?
ANSWER : The random method in Math class provide quick, convienient access to random
numbers, but more power and flexibility use the Random class in the java.util package.
The Random class provide methods returning float, int, double, and long values.
nextGaussian() // type double; has Gaussian("normal") distribution with mean 0.0 and
standard deviation 1.0)
Top
JDBC
ANSWER : This involves two steps: (1) loading the driver and (2) making the connection.
ANSWER : Loading the driver or drivers you want to use is very simple and involves just
one line of code. If, for example, you want to use the JDBC-ODBC Bridge driver, the
following code will load it:
Eg.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Your driver documentation will give you the class name to use. For instance, if the class
name is jdbc.DriverXYZ , you would load the driver with the following line of code:
Eg.
Class.forName("jdbc.DriverXYZ");
When you have loaded a driver, it is available for making a connection with a DBMS.
Eg.
ANSWER : A Statement object is what sends your SQL statement to the DBMS. You
simply create a Statement object and then execute it, supplying the appropriate execute
method with the SQL statement you want to send. For a SELECT statement, the method to
use is executeQuery. For statements that create or modify tables, the method to use is
executeUpdate.
Eg.
ANSWER : Step 1.
JDBC returns results in a ResultSet object, so we need to declare an instance of the class
ResultSet to hold our results. The following code demonstrates declaring the ResultSet object
rs.
Eg.
Step2.
String s = rs.getString("COF_NAME");
The method getString is invoked on the ResultSet object rs , so getString will retrieve (get)
the value stored in the column COF_NAME in the current row of rs
ANSWER : This special type of statement is derived from the more general class,
Statement.If you want to execute a Statement object many times, it will normally reduce
execution time to use a PreparedStatement object instead.
The advantage to this is that in most cases, this SQL statement will be sent to the DBMS
right away, where it will be compiled. As a result, the PreparedStatement object contains not
just an SQL statement, but an SQL statement that has been precompiled. This means that
when the PreparedStatement is executed, the DBMS can just run the PreparedStatement 's
SQL statement without having to compile it first.
Eg.
ANSWER : When a connection is created, it is in auto-commit mode. This means that each
individual SQL statement is treated as a transaction and will be automatically committed
right after it is executed. The way to allow two or more statements to be grouped into a
transaction is to disable auto-commit mode
Eg.
con.setAutoCommit(false);
Once auto-commit mode is disabled, no SQL statements will be committed until you call the
method commit explicitly.
Eg.
con.setAutoCommit(false);
updateSales.setInt(1, 50);
updateSales.setString(2, "Colombian");
updateSales.executeUpdate();
updateTotal.setInt(1, 50);
updateTotal.setString(2, "Colombian");
updateTotal.executeUpdate();
con.commit();
con.setAutoCommit(true);
Eg.
ResultSet rs = cs.executeQuery();
ANSWER : SQLWarning objects are a subclass of SQLException that deal with database
access warnings. Warnings do not stop the execution of an application, as exceptions do; they
simply alert the user that something did not happen as planned.
Eg.
if (warning != null) {
System.out.println("\n---Warning---\n");
System.out.println(warning.getErrorCode());
System.out.println("");
warning = warning.getNextWarning();
12) How can you Move the Cursor in Scrollable Result Sets ?
ANSWER : One of the new features in the JDBC 2.0 API is the ability to move a result set's
cursor backward as well as forward. There are also methods that let you move the cursor to a
particular row and check the position of the cursor.
Eg.
ResultSet.CONCUR_READ_ONLY);
The first argument is one of three constants added to the ResultSet API to indicate the type of
a ResultSet object: TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE , and
TYPE_SCROLL_SENSITIVE .
The second argument is one of two ResultSet constants for specifying whether a result set is
read-only or updatable: CONCUR_READ_ONLY and CONCUR_UPDATABLE . The point
to remember here is that if you specify a type, you must also specify whether it is read-only
or updatable. Also, you must specify the type first, and because both parameters are of type
int , the compiler will not complain if you switch the order.
Specifying the constant TYPE_FORWARD_ONLY creates a nonscrollable result set, that is,
one in which the cursor moves only forward. If you do not specify any constants for the type
and updatability of a ResultSet object, you will automatically get one that is
TYPE_FORWARD_ONLY and CONCUR_READ_ONLY
ANSWER : You will get a scrollable ResultSet object if you specify one of these ResultSet
constants.The difference between the two has to do with whether a result set reflects changes
that are made to it while it is open and whether certain methods can be called to detect these
changes. Generally speaking, a result set that is TYPE_SCROLL_INSENSITIVE does not
reflect changes made while it is still open and one that is TYPE_SCROLL_SENSITIVE
does. All three types of result sets will make changes visible if they are closed and then
reopened
Eg.
srs.afterLast();
while (srs.previous()) {
ANSWER : Another new feature in the JDBC 2.0 API is the ability to update rows in a
result set using methods in the Java programming language rather than having to send an
SQL command. But before you can take advantage of this capability, you need to create a
ResultSet object that is updatable. In order to do this, you supply the ResultSet constant
CONCUR_UPDATABLE to the createStatement method.
Eg.
ResultSet.CONCUR_UPDATABLE);
Top
Networking Concepts
1) The API doesn't list any constructors for InetAddress- How do I create an InetAddress instance?
E.g.
InetAddress add1;
InetAddress add2;
try{
add1 = InetAddress.getByName("java.sun.com");
add2 = InetAddress.getByName("199.22.22.22");
}catch(UnknownHostException e){}
ANSWER : Factory methods are merely a convention whereby static methods in a class
return an instance of that class. The InetAddress class has no visible constructors. To create
an InetAddress object, you have to use one of the available factory methods. In InetAddress
the three methods getLocalHost, getByName, getByAllName can be used to create instances
of InetAddress.
ANSWER : These two protocols differ in the way they carry out the action of
communicating. A TCP protocol establishes a two way connection between a pair of
computers, while the UDP protocol is a one-way message sender. The common analogy is
that TCP is like making a phone call and carrying on a two-way communication, while UDP
is like mailing a letter.
ANSWER : A proxy server speaks the client side of a protocol to another server. This is
often required when clients have certain restrictions on which servers they can connect to.
And when several users are hitting a popular web site, a proxy server can get the contents of
the web server's popular pages once, saving expensive internetwork transfers while providing
faster access to those pages to the clients.
ANSWER : It ensures that the mail gets to its destination. If a packet fails to get its
destination, it handles the process of notifying the sender and requesting that another packet
be sent.
8) What is DHCP?
ANSWER : Dynamic Host Configuration Protocol, a piece of the TCP/IP protocol suite that
handles the automatic assignment of IP addresses to clients.
9) What is SMTP?
ANSWER : Simple Mail Transmission Protocol, the TCP/IP Standard for Internet mails.
SMTP exchanges mail between servers; contrast this with POP, which transmits mail
between a server and a client.
10) In OSI N/w architecture, the dialogue control and token management are responsibilities of...
Top
Networking
ANSWER : You obtain a URL instance and then invoke openConnection on it.
URLConnection is an abstract class, which means you can't directly create instances of it
using a constructor. We have to invoke openConnection method on a URL instance, to get
the right kind of connection for your URL.
URLConnection connection;
conection = url.openConnection();
}catch (MalFormedURLException e) { }
3) What Is a Socket?
A socket is one end-point of a two-way communication link between two programs running
on the network. A socket is bound to a port number so that the TCP layer can identify the
application that data is destined to be sent.Socket classes are used to represent the connection
between a client program and a server program. The java.net package provides two classes--
Socket and ServerSocket--which implement the client side of the connection and the server
side of the connection, respectively.
ServerSocket is used for normal two-way socket communication. Socket class allows us to
read and write through the sockets. getInputStream() and getOutputStream() are the two
methods available in Socket class.
ANSWER : When the specified URL is not connected then the URL throw
MalformedURLException and If InetAddress’ methods getByName and getLocalHost are
unabletoresolve the host name they throwan UnknownHostException.
Top
Servlets
Servlets are to servers what applets are to browsers. Unlike applets, however, servlets have
no graphical user interface.
ANSWER : Servlets provide a way to generate dynamic documents that is both easier to
write and faster to run. Servlets also address the problem of doing server-side programming
with platform-specific APIs: they are developed with the Java Servlet API, a standard Java
extension.
ANSWER : A servlet can handle multiple requests concurrently, and can synchronize
requests. This allows servlets to support systems such as on-line conferencing.
Servlets can forward requests to other servers and servlets.Thus servlets can be used to
balance load among several servers that mirror the same content, and to partition a single
logical service over several servers, according to task type or organizational boundaries.
ANSWER : The central abstraction in the Servlet API is the Servlet interface. All servlets
implement this interface, either directly or, more commonly, by extending a class that
implements it such as HttpServlet.
Servlets-->Generic Servlet-->HttpServlet-->MyServlet.
The Servlet interface declares, but does not implement, methods that manage the servlet and
its communications with clients. Servlet writers provide some or all of these methods when
developing a servlet.
6) When a servlet accepts a call from a client, it receives two objects- What are they?
ANSWER : ServeltRequest: Which encapsulates the communication from the client to the
server. ServletResponse: Whcih encapsulates the communication from the servlet back to the
client. ServletRequest and ServletResponse are interfaces defined by the javax.servlet
package.
7) What information that the ServletRequest interface allows the servlet access to?
ANSWER : Information such as the names of the parameters passed in by the client, the
protocol (scheme) being used by the client, and the names of the remote host that made the
request and the server that received it.
The input stream, ServletInputStream.Servlets use the input stream to get data from clients
that use application protocols such as the HTTP POST and PUT methods.
8) What information that the ServletResponse interface gives the servlet methods for replying to the
client?
ANSWER : It Allows the servlet to set the content length and MIME type of the reply.
Provides an output stream, ServletOutputStream and a Writer through which the servlet can
send the reply data.
ANSWER : An HTTP Servlet handles client requests through its service method. The
service method supports standard HTTP client requests by dispatching each request to a
method designed to handle that request.
2. Q: What is ActionServlet?
A: The class org.apache.struts.action.ActionServlet is the called the ActionServlet. In the the Jakarta Struts
Framework this class plays the role of controller. All the requests to the server goes through the controller.
Controller is responsible for handling all the requests.
3. Q: How you will make available any Message Resources Definitions file to the Struts Framework
Environment?
A: Message Resources Definitions file are simple .properties files and these files contains the messages that can be
used in the struts project. Message Resources Definitions files can be added to the struts-config.xml file through
<message-resources /> tag.
Example:
<message-resources parameter="MessageResources" />
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
The Validator framework was developed by David Winterfeldt as third-party add-on to Struts. Now the Validator
framework is a part of Jakarta Commons project and it can be used with or without Struts. The Validator framework
comes integrated with the Struts Framework and can be used without doing any extra settings.
10. Q. How you will enable front-end validation based on the xml in validation.xml?
A: The <html:javascript> tag to allow front-end validation based on the xml in validation.xml. For example the
code: <html:javascript formName="logonForm" dynamicJavascript="true" staticJavascript="true" /> generates the
client side java script for the form "logonForm" as defined in the validation.xml file. The <html:javascript> when
added in the jsp file generates the client site validation script.
http://java.sys-con.com/read/48839.htm
Core Java Interview Questions
JDJ Enterprise Editor Yakov Fain Offers 30 Core Java Questions You Might Expect During Interviews
By: Yakov Fain
May 5, 2005 12:00 AM
If you are planning to hit the job market, you may need to refresh some of the Java basic terms and
techniques to prepare yourself for a technical interview. Let me offer you some of the core Java questions
that you might expect during the interviews.
For most questions I’ve provided only short answers to encourage further research. I have included only
questions for mid (*) and senior level (**) Java developers. These sample questions could also become
handy for people who need to interview Java developers (see also the article "Interviewing Enterprise Java Developers").
*Q1. How could Java classes direct program messages to the system console, but error messages, say to a file?
A. The class System has a variable out that represents the standard output, and the variable err that represents the standard
error device. By default, they both point at the system console. This how the standard output could be re-directed:
Stream st = new Stream(new FileOutputStream("output.txt")); System.setErr(st); System.setOut(st);
A. An abstract class may contain code in method bodies, which is not allowed in an interface. With abstract classes, you
have to inherit your class from it and Java does not allow multiple inheritance. On the other hand, you can implement
multiple interfaces in your class.
*Q3. Why would you use a synchronized block vs. synchronized method?
A. Synchronized blocks place locks for shorter periods than synchronized methods.
A. This keyword indicates that the value of this member variable does not have to be serialized with the object. When the
class will be de-serialized, this variable will be initialized with a default value of its data type (i.e. zero for integers).
A. You can't force GC, but could request it by calling System.gc(). JVM does not guarantee that GC will be started
immediately.
A. If you assign a superclass object to a variable of a subclass's data type, you need to do explicit casting. For example:
Object a; Customer b; b = (Customer) a;
When you assign a subclass to a variable having a supeclass type, the casting is performed automatically.
*Q7. What's the difference between the methods sleep() and wait()
A. The code sleep(1000); puts thread aside for exactly one second. The code wait(1000), causes a wait of up to one second.
A thread could stop waiting earlier if it receives the notify() or notifyAll() call. The method wait() is defined in the class
Object and the method sleep() is defined in the class Thread.
*Q8. Can you write a Java class that could be used both as an applet as well as an application?
A. Constructors must have the same name as the class and can not return a value. They are only called once while regular
methods could be called many times.
*Q10. Can you call one constructor from another if a class has multiple constructors
A. This is a way to organize files when a project consists of multiple modules. It also helps resolve naming conflicts when
different packages have classes with the same names. Packages access level also allows you to protect data from being
used by the non-authorized classes.
*Q12. If a class is located in a package, what do you need to change in the OS environment to be able to use it?
A. You need to add a directory or a jar file that contains the package directories to the CLASSPATH environment variable.
Let's say a class Employee belongs to a package com.xyz.hr; and is located in the file c:\dev\com\xyz\hr\Employee.java. In
this case, you'd need to add c:\dev to the variable CLASSPATH. If this class contains the method main(), you could test it
from a command prompt window as follows:
c:\>java com.xyz.hr.Employee
*Q13. What's the difference between J2SDK 1.5 and J2SDK 5.0?
*Q14. What would you use to compare two String variables - the operator == or the method equals()?
A. I'd use the method equals() to compare the values of the Strings and the == to check if two variables point at the same
instance of a String object.
*Q15. Does it matter in what order catch statements for FileNotFoundException and IOExceptipon are written?
A. Yes, it does. The FileNoFoundException is inherited from the IOException. Exception's subclasses have to be caught
first.
*Q16. Can an inner class declared inside of a method access local variables of this method?
*Q17. What can go wrong if you replace && with & in the following code:
String a=null; if (a!=null && a.length()>10) {...}
A. A single ampersand here would lead to a NullPointerException.
A. This method is used to ensure that Swing components are updated through the event-dispatching thread.
A. Use the following syntax: super.myMethod(); To call a constructor of the superclass, just write super(); in the first line
of the subclass's constructor.
A. Stacks works by last-in-first-out rule (LIFO), while queues use the FIFO rule
**Q22. You can create an abstract class that contains only abstract methods. On the other hand, you can create an
interface that declares the same methods. So can you use abstract classes instead of interfaces?
A. Sometimes. But your class may be a descendent of another class and in this case the interface is your only option.
**Q23. What comes to mind when you hear about a young generation in Java?
A. Garbage collection.
**Q24. What comes to mind when someone mentions a shallow copy in Java?
A. Object cloning.
**Q25. If you're overriding the method equals() of an object, which other method you might also consider?
A. hashCode()
**Q26. You are planning to do an indexed search in a list of objects. Which of the two Java collections should you
use:
ArrayList or LinkedList?
A. ArrayList
**Q27. How would you make a copy of an entire Java object with its state?
A. Have this class implement Cloneable interface and call its method clone().
**Q28. How can you minimize the need of garbage collection and make the memory use more effective?
**Q29. There are two classes: A and B. The class B need to inform a class A when some important event has
happened. What Java technique would you use to implement it?
A. If these classes are threads I'd consider notify() or notifyAll(). For regular classes you can use the Observer interface.
*Q30. What access level do you need to specify in the class declaration to ensure that only classes from the same
directory can access it?
A. You do not need to specify any access level, and Java will use a default package access level.
Print Story
Java comes with thousands of classes that are organized in packages (similar to files and directories on you disk). Some
packages include classes responsible for drawing, while other have classes for the Internet access, and so on. For example
the class String is located in the package called java.lang, and the fully qualified name of this class is java.lang.String.
The Java compiler only knows where to find classes that are located in the package java.lang,
but there are many other packages with useful classes, and it's your responsibility to let the
compiler know where the classes that are used in your program live. For example, the package
java.io contains classes responsible for input/output operations, while most of the Swing classes
live in the following two packages:
javax.swing
javax.swing.event
It would be annoying to write a full class name every time you use it, for example:
javax.swing.JButton myButton = new javax.swing.JButton();
javax.swing.JFrame myFrame = new javax.swing.JFrame();
To avoid this you can use import statements right above the class declaration line, for example:
import javax.swing.JFrame;
import javax.swing.JButton;
class Calculator{
JButton myButton = new JButton();
JFrame myFrame = new JFrame();
}
These import statements allow you to use short class names like JFrame or JButton, and the Java compiler will know where
to find them. Please note, that nothing is actually imported into your program: it's just a name resolution mechanism that
helps the compiler to find classes and make your program more readable. If your need to use several classes from the same
package, you do not have to list each of them in the import statement, just use the wild card. In the following example the
asterisk (*) makes all classes from the package javax.swing visible to your program:
import javax.swing.*;
Still, it's better to use separate import statements, so you can see clearly which classes are imported from a particular
package.
When programmers work on large projects that have lots of classes, they usually organize them in different packages. For
example, one package can have all classes that display graphical windows, while another can contain data access classes.
Let's create a new project called PingPong in the Eclipse IDE. This project will have classes in two packages: screens and
engine. Now create a new class PingPongTable and enter the word screens in the field Package:
Press the button Finish and Eclipse will generate the code that will include the line with the package name.
package screens;
Since each package is stored in a different folder on a disk, Eclipse creates the folder called screens and puts the file
PinPongTable.java there. Check it out - there should be a folder c:\eclipse\workspace\PingPong\screens on your disk with
files PingPongTable.java and PingPongTable.class.
Now create another class called PingPongEngine and enter the word engine as the package name. The PingPong project
has two packages now:
Since our two classes are located in two different packages (and folders), the class PingPongTable won't see the class
PingPongEngine unless you add the appropriate import statement.
package screens;
import engine.PingPongEngine;
Java packages not only help better organize your classes, but also can be used to hide their classes from the "foreigners"
living in other packages. In Java you can use public, private and protected keywords to specify the access level to a
particular method or a class. But if you do not use any of these keywords in the method or class declaration, you'll be able
to access them only from the classes located in the same package. We've discussed access levels briefly in Lesson 3 of this
series.
Please note that you have to use a dot as a separator (not a slash!) between the package and class names. Make sure that the
system variable classpath includes the dot (see the very first lesson of this series) to let JVM know that it has to look for
classes starting from the current directory.
Naming Conventions
If you are starting a new project, you need to come up with the directory structures and the names for your packages and
these are some considerations to keep in mind:
• Think of the future uses of your packages. For example, if the invoicing package may be reused in a different application, do
not include there classes that are specific to your Shipping application.
• If you have some useful classes that perform such commonly used functions as date formatting or logging, create separate
directory for them like util and log.
Static Imports
Java 5.0 has introduced a new element called static imports. While regular import statements allow you to use the class
name without specifying its package name, static imports go further and allow using static members of another class
without specifying their class name. Let's use our good old HelloWorld program as an example:
public class HelloWorld {
}
}
Based on this syntax, we can guess that there is a static variable out in the class System that represents some object that in
turn has a static method println(). Let's add the static import to eliminate the need of specifying the name of the class
System in front of the variable out:
import static java.lang.System.*;
public class HelloWorld {
}
}
You do not have to use the wildcard (*) and import all static members from a class, but rather specific ones, for example
import static java.lang.System.out;
or for the PI constant from the Math package it can look like this:
import static java.lang.Math.PI;
For example:
import static java.lang.System.out;
import static java.lang.Math.PI;
The good news is that if you need to call the println() method multiple times, your program becomes shorter now.
The bad side effect of static imports is that if you'll start overusing this feature, pretty soon your program will actually
become less readable. For example, if you'll use static imports of multiple constants from various packages, and someone
else (or even yourself five months later) will need to read this program, it may become difficult to understand where all
these constants are coming from, especially if you've been using wildcards. The last HelloWorld example gives you an
impression that PI constant has been declared somewhere in the HelloWorld class itself. In a small program it's easy to see
that this is not the case, but in more complex applications consisting of hundreds of classes this can cause unnecessary
confusions.
Prior to Java 5.0 you could have created Java interfaces containing only final static variables, for example
public interface MyConstants {
public static final String companyName="XYZ, Inc.";
public static final String companyAddress="123 Main st.";
}
Now any class that implements MyConstants can use this variables without even mentioning the name of the interface:
class Invoice implements MyConstants{
public static void main(){
System.out.println("Name:"+ companyName);
System.out.println("Address: "+ companyAddress);
}
}
Strictly speaking, if a class implements an interface, you'd expect it to implement some behavior which is not the case in
the above example. That's why it's not a recommended way of using interfaces. Oh well, unless you have multiple
interfaces with hundreds of constants, I do not see any damage in use of static imports or constant-only interfaces.