Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
47 views

Senior Level: Public Class Extends Implements

The document contains questions and answers related to Java programming for mid-level and senior-level developers. Some key topics covered include: - Redirecting console and error output to different streams - Differences between interfaces and abstract classes - Usage of synchronized blocks vs methods - Purpose of the transient keyword - Forcing garbage collection - Differences between == and equals() for Strings - Importance of catch block order for exceptions - Potential issues with replacing && with & - Differences between Vector and ArrayList - When to use invokeLater() - Calling superclass methods from subclasses

Uploaded by

ctrlaltdel17
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views

Senior Level: Public Class Extends Implements

The document contains questions and answers related to Java programming for mid-level and senior-level developers. Some key topics covered include: - Redirecting console and error output to different streams - Differences between interfaces and abstract classes - Usage of synchronized blocks vs methods - Purpose of the transient keyword - Forcing garbage collection - Differences between == and equals() for Strings - Importance of catch block order for exceptions - Potential issues with replacing && with & - Differences between Vector and ArrayList - When to use invokeLater() - Calling superclass methods from subclasses

Uploaded by

ctrlaltdel17
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

Questions for mid (*) and senior level (**) 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);

* Q2. What's the difference between an interface and an abstract class?

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.
public class TestClass1 extends TestClass2 implements TestInterface1,
TestInterface2{
}

* Q3. Why would you use a synchronized block vs. synchronized method?

A. Synchronized blocks place locks for shorter periods than synchronized methods.

* Q4. Explain the usage of the keyword transient?

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).

* Q5. How can you force garbage collection?

A. You can't force GC, but could request it by calling System.gc(). JVM does not
guarantee that GC will be started immediately.

* Q6. How do you know if an explicit object casting is needed?

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. Yes. Add a main() method to the applet.

* Q9. What's the difference between constructors and other methods?

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. Yes. Use this() syntax.

* Q11. Explain the usage of Java packages.

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?

A.There's no difference, Sun Microsystems just re-branded this version.

* 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.

* 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.

* Q18. What's the main difference between a Vector and an ArrayList

A. Java Vector class is internally synchronized and ArrayList is not.

* Q19. When should the method invokeLater()be used?

A. This method is used to ensure that Swing components are updated through the
event-dispatching thread.

* Q20. How can a subclass call a method or a constructor defined in a


superclass?

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.

** Q21. What's the difference between a queue and a stack?

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()
Why the methods of the Math class are static?

A. Its to reduce un-necessary object creation. Generally utility class methods should
be kept static. See if the methods of Math class are non static then you will have to
create object of Math class every time and that object is of no use after method is
called once. To reduce un necessary object creation and keep the garbage collector
heap healthy method should be made static if they are utility methods.
Math class methods do not depend on instance variables ... hence, why to create a
object of math class....math.min(2,1) -> 1. Method execution in math class depend on
method args, and not instance variables...Even if u tries to create an object of Math
class ... U will get an exception... Since math class has a private constructor..

You might also like