Are the imports checked for
validity at compile time? e.g. will the code
containing an import such as java.lang.ABCD
compile?
A:
Yes the imports are checked for the
semantic validity at compile time. The code
containing above line of import will not
compile. It will throw an error saying,can not
resolve symbol symbol : class
ABCD location: package io import
java.io.ABCD;
Q:
Does importing a
package imports the subpackages as well? e.g.
Does importing com.MyTest.* also import
com.MyTest.UnitTests.*?
A:
No you will have to import the
subpackages explicitly. Importing com.MyTest.*
will import classes in the package MyTest only.
It will not import any class in any of it's
subpackage.
Q:
What is the
difference between declaring a variable and
defining a
variable?
A:
In declaration we just mention the type
of the variable and it's name. We do not
initialize it. But defining means declaration +
initialization. e.g String s; is just a
declaration while String s = new String
("abcd"); Or String s = "abcd"; are both
definitions.
Q:
What is the
default value of an object reference declared as
an instance
variable?
A:
null unless we define it
explicitly.
Q:
Can a top level class be private
or protected?
A:
No. A top level class can not be private
or protected. It can have either "public" or no
modifier. If it does not have a modifier it is
supposed to have a default access.If a top level
class is declared as private the compiler will
complain that the "modifier private is not
allowed here". This means that a top level class
can not be private. Same is the case with
protected.
Q:
What type of
parameter passing does Java
support?
A:
In Java the arguments are always passed
by value .