
22) Java says "write once, run
anywhere". What are some ways this isn't quite true?
Any time you use system calls specific to one operating
system and do not create alternative calls for another operating system, your
program will not function correctly.
Solaris systems and Intel systems order the bits of an
integer differently. (You may have heard of little endian vs. big endian)
If your code uses bit shifting, or other binary operators,
they will not work on systems that have opposide endianism.
23) Describe java's security model.
Java's security model is one of the most interesting and
unique aspects of the language. For the most part it's broken into two pieces:
the user adjustable security manager that checks various API operations like
file access, and the byte code verifier that asserts the validity of compiled
byte code.
public abstract class SecurityManager java.lang.SecurityManager is an abstract
class which different applications subclass to implement a particular security
policy. It allows an application to determine whether or not a particular
operation will generate a security exception.
24) What is the difference between a Vector and
an Array. Discuss the advantages and disadvantages of both?
The vector container class generalizes the concept of an
ordinary C array. Like an array, a vector is an indexed data structure, with
index values that range from 0 to one less than the number of elements
contained in the structure. Also like an array, values are most commonly
assigned to and extracted from the vector using the subscript operator.
However, the vector differs from an array in the following important respects:
The size of
the vector can change dynamically. New elements can be inserted on to the end
of a vector, or into the middle. It is important to note, however, that while
these abilities are provided, insertion into the middle of a vector is not as
efficient as insertion into the middle of a list.
A vector has more
"self-knowledge" than an ordinary array. In particular, a vector can
be queried about its size, about the number of elements it can potentially hold
(which may be different from its current size), and so on.
A vector can only hold
references to objects and not primitive types.
Vector Implementaions are usually slower then array because
of all the functionality that comes with them. As implemented in Java, vector
is a thread-safe class and hence all methods are synchronous methods, which
makes them considerably slow.
25) How many different types of JDBC drivers are
present? Discuss them.
Type 1: JDBC-ODBC Bridge plus
ODBC Driver:
The first type of JDBC driver is the JDBC-ODBC Bridge. It is
a driver that provides JDBC access to databases through ODBC drivers. The ODBC
driver must be configured on the client for the bridge to work. This driver
type is commonly used for prototyping or when there is no JDBC driver available
for a particular DBMS.
Type 2: Native-API partly-Java
Driver:
The Native to API driver converts JDBC commands to
DBMS-specific native calls. This is much like the restriction of Type 1
drivers. The client must have some binary code loaded on its machine. These
drivers do have an advantage over Type 1 drivers because they interface
directly with the database.
Type 3: JDBC-Net Pure Java
Driver:
The JDBC-Net drivers are a three-tier solution. This type of
driver translates JDBC calls into a databaseindependent network protocol that
is sent to a middleware server. This server then translates this
DBMSindependent protocol into a DBMS-specific protocol, which is sent to a
particular database. The results are then routed back through the middleware
server and sent back to the client. This type of solution makes it possible to
implement a pure Java client. It also makes it possible to swap databases
without affecting the client.
Type 4: Native-Protocol Pur
Java Driver
These are pure Java drivers that communicate directly with
the vendor's database. They do this by converting JDBC commands directly into
the database engine's native protocol. This driver has no additional
translation or middleware layer, which improves performance tremendously.
26)
What does the keyword "synchronize" mean in java. When do you use it?
What are the disadvantages of synchronization?
Synchronize is used when u want to make ur methods thread
safe. The disadvantage of synchronise is it will end up in slowing down the
program. Also if not handled properly it will end up in dead lock.
1.
Only use (and minimize it's use) synchronization when
writing multithreaded code as there is a speed (up to five to six time slower,
depending on the execution time of the synchronized/non-synchronized method )
cost associated with its use.
2.
In case of syncronized method modifier, the byte code
generated is the exact same as non-syncronized method. The only difference is
that a flag called ACC_SYNCRONIZED property flag in method's method_info
structure is set if the syncronized method modifier is present.
3.
Also, syncronized keyword can make the code larger in
size if used in the body of the method as bytecode for monitorenter/monitorexit
is generated in addition to any exception handling.
27) What are native methods? How do you use
them?
Native methods are methods that are defined as public static
methods within a java class, but whose implementation is provided in another
programming language such as C.
28) What is RMI?
RMI stands for Remote Method Invocation. Traditional
approaches to executing code on other machines across a network have been
confusing as well as tedious and error-prone to implement. The nicest way to
think about this problem is that some object happens to live on another
machine, and that you can send a message to the remote object and get a result as
if the object lived on your local machine. This simplification is exactly what
Java Remote Method Invocation (RMI) allows you to do.
29) What is JDBC? Describe the steps needed to
execute a SQL query using JDBC.
The JDBC is a pure Java API used to execute SQL statements.
It provides a set of classes and interfaces that can be used by developers to
write database applications.
The steps needed to execute a
SQL query using JDBC:
1. Open
a connection to the database.
2. Execute
a SQL statement.
3. Process
th results.
4. Close the
connection to the database.
30) Access specifiers: "public",
"protected", "private", nothing?
Public – any other class from
any package can instantiate and execute the classes and methods Protected –
only subclasses and classes inside of the package can access the classes and
methods Private – the original class is the only class allowed to executed the
methods.
31) What does the "final" keyword
mean in front of a variable? A method? A class?
FINAL for a variable : value is
constant
FINAL for a method : cannot be
overridden FINAL for a class : cannot be derived
32) Does Java have "goto"?
no
33) Why "bytecode"? Can you
reverse-engineer the code from bytecode?
34) What synchronization constructs does Java
provide? How do they work?
35) Are constructors inherited? Can a subclass
call the parent's class constructor? When?
You cannot inherit a constructor. That is, you cannot create
a instance of a subclass using a constructor of one of it's superclasses. One
of the main reasons is because you probably don't want to overide the superclasses
constructor, which would be possible if they were inherited. By giving the
developer the ability to override a superclasses constructor you would erode
the encapsulation abilities of the language.
36) Does Java have destructors?
No garbage collector does the job working in the background
Abstract keyword declares either a method or a class. If a
method has a abstract keyword in front of it,it is called abstract
method.Abstract method hs no body.It has only arguments and return
type.Abstract methods act as placeholder methods that are implemented in the
subclasses.
Abstract classes can't be
instantiated.If a class is declared as abstract,no objects of that class can be
created.If a class contains any abstract method it must be declared as abstract
38) Name four methods every Java class will
have.
public String toString(); public Object
clone(); public
boolean equals();
public int hashCode();
39) Given a text file, input.txt, provide the
statement required to open
this file with the
appropriate I/O stream to be able to read and process this file.
40) Discuss the differences between
creating a new class, extending a class and
implementing an interface; and when each would be appropriate.
*Creating a new class is simply
creating a class with no extensions and no implementations. The
signature is as follows
public class MyClass()
{
}
*Extending a class is when
you want to use the functionality of another class or classes. The extended
class inherits all of the functionality of the previous class. An example of this when you create
your own applet class and extend from java.applet.Applet. This
gives you all of the functionality of the java.applet.Applet class. The signature would look
like this
public class MyClass extends
MyBaseClass
{
}
*Implementing an interface
simply forces you to use the methods of the interface implemented. This gives
you two advantages. This forces you to follow a standard
(forces you to use certain
methods) and in doing so gives you a channel for polymorphism. This isn’t
the only way you can do polymorphism but this is one of the ways.
public class Fish
implements Animal
{
}
40) What's the difference between the ==
operator and the equals() method? What test does Object.equals() use, and
why?
The == operator would be used,
in an object sense, to see if the two objects were actually the same object.
This operator looks at the actually memory address to see if it actually the same object.
The equals() method is used to compare the values of the object respectively. This
is used in a higher level to see if the object values are equal. Of course the the equals()
method would be overloaded in a meaningful way for whatever object that you
were working with.
41) why do you create interfaces, and when MUST
you use one.
You would create interfaces when you have two or more
functionalities talking to each other. Doing it this way help you in creating a
protocol between the parties involved.
42) What is the difference between instanceof
and isInstance?
instanceof is used to check to
see if an object can be cast into a specified type without throwing a cast
class exception. isInstance()
Determines if the specified
Object is assignment-compatible with the object represented by this Class. This method
is the dynamic equivalent of the Java language instanceof operator. The method
returns true if the specified Object argument is non-null and can be cast to the reference
type represented by this Class object without raising a ClassCastException. It
returns false otherwise.
43) How many methods do u implement if
implement the Serializable Interface?
The Serializable interface is just a
"marker" interface, with no methods of its own to implement. Are
there any other 'marker' interfaces?
java.rmi.Remote
java.util.EventListener