- What is the signature of the main method from
Java 2.0 onwards?
Method
|
IsValid
|
public
static void main(String[] args)
|
Valid
|
protected
static void main(String[] x)
|
Valid
|
static
void main(String args[])
|
Valid
|
private
static void main(String [] args)
|
Valid
|
- How many primitive Types are there in Java?
There are a total of Eight primitive types in
Java.
Keyword
|
Description
|
Size/Format
|
(integers)
|
|
Bytes
|
Bits
|
Byte
|
Byte-length integer
|
1
|
8-bit two's complement
|
Short
|
Short integer
|
2
|
16-bit two's complement
|
Int
|
Integer
|
4
|
32-bit two's complement
|
Long
|
Long integer
|
8
|
64-bit two's complement
|
(real numbers)
|
Float
|
Single-precision floating
point
|
4
|
32-bit IEEE 754
|
Double
|
Double-precision floating
point
|
8
|
64-bit IEEE 754
|
(other types)
|
Char
|
A single character
|
2
|
16-bit Unicode character
|
Boolean
|
A boolean value (true or false)
|
1
|
true or false
|
- What is the data type in java that supports
Unicode?
char
- What are the default values for any object
variable?
Data Type
|
Value
|
byte
|
0
|
short
|
0
|
int
|
0
|
long
|
0L
|
float
|
0.0f
|
double
|
0.0D
|
char
|
‘\u0000’
|
boolean
|
false
|
Any Object Reference
|
null
|
- Some Method overriding and Object casting
scenarios?
class A {
int
a = 1;
void x(){
}
}
|
class B extends A{
int
a = 2;
void x(){
}
}
|
class C extends A{
int
a = 3;
void x(){
}
}
|
A / \ B C
Scenario
|
IsValid
|
Notes
|
A
a = new A();
B b = new
B();
a.x();
b.x();
|
Legal
|
Calling
a.x() will result in calling class A’s x method
And Calling
b.x() will result in calling class B’s x method
|
A
a = null;
B b = new
B();
a = b;
a.x();
|
Legal
|
In
this scenario calling a.x will result in calling B’s x method ‘cause A’s x
method is being overridden by the B’s x method
|
A a = new A();
B b = null;
b = a;
|
Gives
a compile time error
|
Cannot
cast a parent class to subclass (No automatic conversion)
|
A a = new A();
B b = null;
b = (A)a;
|
Is
legal at compile time but gives Runtime Exception – ClassCastException
|
The
compiler cannot really check whether ‘a’ is an instance of A or B it cannot
be only determined only at runtime. As ‘a’ is really an
instance of A and thus cannot be casted down to a child class
|
B b = new B();
A a = b;
B b1 = a;
|
Gives
a compile time error
|
Cannot
cast a parent class to subclass (No automatic conversion)
|
B b = new B();
A a = b;
B b1 = (B)a;
|
Is
legal at both compile time and runtime.
|
This
time the object ‘a’ is really an instance of class B so casting down again
to ‘b1’ does not give any problem
|
A a = null;
B b = null;
C c = new C();
b = c; (or) b = (B)b
|
Both
b = c &&
b = (B)b
are invalid & code will not compile
|
Casting
of a different which does not fall into one single hierarchy is not legal
both at compile and runtime.
|
A a = null;
B b = null;
C c = new C();
a = c;
b = (B)a;
|
Legal
at compile time but not at runtime will give ClassCastException
|
Point
of failure is
b = (B)a,
as ‘a’ is not an instance of A but C
|
- What are the differences between Interfaces and
abstract classes?
Interfaces
|
Abstract
Classes
|
interface
A {
int i=1;
Void x();
}
|
abstract
class A{
int i=1;
abstract
void x();
void y(){
}
}
|
Interfaces
can have only methods that are by abstract in nature. (Compiler by
default puts the keyword abstract for method x())
|
Methods
in abstract class should be explicitly declared as abstract if they
need to be abstract.
|
All
members of the interface are by nature public even though we do not
declare them as public.
|
Each
method needs to be declared accordingly whether it is public, private or
protected. By default the access modifier is <default> (no
modifier/declaration) which specifies the accessibility as package level.
|
All
variables are by default public static final
|
Again
each variable needs to be declared accordingly and by default they specify
package level accessibility.
|
Interfaces
cannot have methods, which have implementation.
|
There
is No requirement for an Abstract class to have atleast one abstract
method but if a class is having atleast one abstract method then the class must
be declared as abstract.
|
- About ‘final’ variables?
Scenario
|
IsValid
|
class
A{
final int x
= 1;
}
|
Valid
|
class
A{
final int
x;
}
|
Not
valid, final variables must be assigned a value.
|
class
A{
final int
x;
A(){
String st =
"Hello";
x = 1;
}
}
|
Valid,
final variables can be assigned a value in constructor, but only once.
|
class
A{
final int
x;
A(){
String st =
"Hello";
x = 1;
}
A(int abc){
String st =
"Hello";
x = 2;
}
}
|
You
always make sure that if you have n number of constructors, any
final variable if not initialized must be initialized in each and every constructor,
if you miss to initialize the final variable in atleast constructor,
compilation will result in an error.
|
class
A{
final
static int x;
A(){
String st =
"Hello";
x = 1;
}
}
|
This
type of assignment is not valid if a variable is final and static.
|
class
A{
final
static int x = 1;
A(){
String st =
"Hello";
}
}
|
Valid
|
class
A{
final
static int x;
static {
x = 1;
}
A(){
String st =
"Hello";
}
}
|
Valid,
A final static variable should be either assigned a value instantly
or can be assigned a value in & only in a static initializer.
|
- What’s the Core Exception handling API that
Java provides the developers?
java.lang.Object | java.lang.Throwable | --------------------------------- | | java.lang.Error java.lang.Exception | | --------------------------------- | | java.lang.RuntimeException
- What’s Runtime exception and Compile time
exception?
Any exception occurs at runtime, but the exceptions are categorized
as runtime and compile time because of their nature and how the code is being
designed.
Any class which extends from Throwable or Exception is a Compile time
exception, except the RuntimeException which is a subclass of Exception. For example: if a method
Is declared throws Exception or Subclass of Exception NOT
RuntimeException, Any other class or method using that method should either
catch that exception or again Declare that method as throws that particular
Exception, failing to do so will result in a compilation error.
Scenario
|
IsValid
|
class
A{
void A()throws SubclassOfException{
}
}
|
Valid
|
class
A{
void A() {
throw new Subclass OfException();
}
}
|
Not
valid, Either the exception should be caught or the method A should declare
as throws SubclassOfException
|
class
A{
void A() {
throw new
SubclassOfRuntimeException();
}
}
|
Valid,
RuntimeExceptions need not be caught but has to be elegantly dealt with.
|
class
A{
void x()
throws Exception {
}
}
class
B extends A{
void x()
throws TestException {
}
}
class
TestException extends Exception{
}
|
Valid,
The over riding method void x() in class B can throw an Exception
which is a subclass of the Exception which the overridden method is
throwing. Moral, the overriding method MUST not throw an exception that is
different from the overridden method.
|
- Is a java Thread platform Independent? Is the
Execution nature of Java Thread platform independent?
(Yes and No). Since Java VM had been ported to variety of operating systems,
and each operating system has its own way of executing threads. Java uses the
underlying operating systems native threads mostly, so execution nature of
the java thread differs from platform to platform.
- What is the difference between Java Streams and
Readers/Writers?
Java Readers/Writers have
been introduced from JDK1.1 onwards, to support UNICODE character set storage
and retrieval from storage devices. The java Input/OutPut Streams are by
nature Byte Oriented where as Readers and Writers are character oriented
which is a two byte.
- What is serialization? How do you make a Java
class Serializable?
Serialization
is a process of storing Java
Object into a persistent storage device, which can be a file, network, or any
device etc. To make a java Object serializable, it needs to implement
interface java.io.Serializable.
- What are necessary precautions you need to take
when you make a Java class as serializable?
When
you design/develop a java class which implements java.io.Serializable
interface all the member variables must be either primitive types or an instance of a class which implements serializable
interface. Else the when you try to save the object to a persistent storage
device the java Virtual Machine throws a NotSerializableException the
moment it encounters a Non Serializable member variable in the class. To get
around this problem the member variable must be declared as transient.
- What are different types of JDBC Drivers does
Java offer?
I.
A JDBC-ODBC bridge provides JDBC API access via one or more ODBC
drivers. Note that some ODBC native code and in many cases native database
client code must be loaded on each client machine that uses this type of
driver. Hence, this kind of driver is generally most appropriate when
automatic installation and downloading of a Java technology application is
not important.
II.
A native-API partly Java technology-enabled driver converts JDBC calls into
calls on the client API for Oracle, Sybase, Informix, DB2, or other DBMS.
Note that, like the bridge driver, this style of driver requires that some
binary code be loaded on each client machine.
III.
A net-protocol fully Java technology-enabled driver translates JDBC API calls
into a DBMS-independent net protocol which is then translated to a DBMS
protocol by a server. This net server middleware is able to connect all of
its Java technology-based clients to many different databases. The specific
protocol used depends on the vendor. In general, this is the most flexible
JDBC API alternative. It is likely that all vendors of this solution will
provide products suitable for Intranet use. In order for these products to
also support Internet access they must handle the additional requirements for
security, access through firewalls, etc., that the Web imposes. Several
vendors are adding JDBC technology-based drivers to their existing database
middleware products.
IV.
A
native-protocol fully Java technology-enabled driver converts JDBC technology
calls into the network protcol used by DBMSs directly. This allows a direct
call from the client machine to the DBMS server and is a practical solution
for Intranet access. Since many of these protocols are proprietary the
database vendors themselves will be the primary source for this style of
driver.
- Given a resource in a WebServer such as a HTML
Document, images etc., on a WebServer how do you access them using a
standard API?
- How do you send some input to a CGI script
(Such as a Java Servlet, PERL module, C module) on a Webserver and read
the output of the same? (Hint: what’s the Java API that supports this
mechanism and how?)
- What’s the difference between HTTP GET method
and POST method?
- What are the advantages of a Java Servlets over
standard CGI?
- What’s the life cycle of a Servlet?
- What are the bare minimum requirements to
develop a Java Servlet?
- What are the different techniques you implement
to maintain a persistent session between your Web application and the
Users Web Browser?
- How does java HttpSession work? Or what is it’s
underlying mechanism?
- What is the Java Interface that support
interacting with other resources such as Servlets/JSP? (Hint: Servlet
2.2 API).
- How does the JSP Technology work?
- What are the advantages of JSP over Servlets?
- In a Web Application scenario what are the
primary roles of a Servlet, JSP, Java Beans etc?
- What is Java RMI and what is the architecture
of RMI?
- Explain the various components of J2EE
Technology? (Take your own time ;-) )
- What is the common interface the Session Bean
and Entity Bean implement?
- What is the difference between Stateless and
Stateful Session Bean? Architecturally where does they fit in an
Application?
- What are the subtle differences between Bean
Managed and Container Managed Entity Beans? What are the advantages of
one over the other?
- What is the single transaction API that the
J2EE supports to do your custom Transactions?
- What’s the role of XML as a technology in J2EE
Architecture? How does XML enables your EJB components (Which are
Confirmed to EJB 1.0/1.1/2.0 Specification) deployable across
Application servers?
- What is the difference between XML and HTML?
- What is a well formed and a valid XML document?
- What are the advantages of XML based protocols?
- What are the advantages of XML in Business to
Business transactions?
- Can you compare an Object, Database, XML
document and how do you leverage these technologies in developing a Web
application?
|