What is the purpose of the wait(),  notify(), and notifyAll() methods?
The wait(),notify(), and notifyAll() methods are used to provide an  efficient way for threads to communicate each other. 
What are the high-level thread states?  
The high-level thread states are ready, running, waiting, and dead.  
What is the difference between yielding and sleeping?  
When a task invokes its yield() method, it returns to the ready state.  When a task invokes its sleep() method, it returns to the waiting state. 
What happens when a thread cannot acquire a lock on an object?  
If a thread attempts to execute a synchronized method or synchronized  statement and is unable to acquire an object's lock, it enters the  waiting state until the lock becomes available. 
What is the difference between Process and  Thread? 
A process can contain multiple threads. In most multithreading operating  systems, a process gets its own memory address space; a thread doesn't. Threads  typically share the heap belonging to their parent process. For instance, a JVM  runs in a single process in the host O/S. Threads in the JVM share the heap  belonging to that process; that's why several threads may access the same  object. Typically, even though they share a common heap, threads have their own  stack space. This is how one thread's invocation of a method is kept separate  from another's. This is all a gross oversimplification, but it's accurate enough  at a high level. Lots of details differ between operating systems. Process vs.  Thread A program vs. similar to a sequential program an run on its own vs.  Cannot run on its own Unit of allocation vs. Unit of execution Have its own  memory space vs. Share with others Each process has one or more threads vs. Each  thread belongs to one process Expensive, need to context switch vs. Cheap, can  use process memory and may not need to context switch More secure. One process  cannot corrupt another process vs. Less secure. A thread can write the memory  used by another thread 
Can an inner class declared inside of a method  access local variables of this method?
  It's possible if these variables are final. 
What can go wrong if you replace &emp;&emp;  with &emp; in the following code: String a=null; if (a!=null && a.length()>10)  {...} 
A single ampersand here would lead to a NullPointerException.
What is the Vector class?  
The Vector class provides the capability to implement a  growable array of objects 
What modifiers may be used with an inner class  that is a member of an outer class? 
A (non-local) inner class may be declared as  public, protected, private, static, final, or abstract. 
If a method is declared as protected, where may  the method be accessed? 
A protected method may only be accessed by classes or interfaces of the  same package or by subclasses of the class in which it is declared. 
What is an Iterator interface?  
The Iterator interface is used to step through the elements of a  Collection. 
How many bits are used to represent Unicode,  ASCII, UTF-16, and UTF-8 characters? 
Unicode requires 16 bits and ASCII require 7 bits. Although the ASCII  character set uses only 7 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. 
What's the main difference between a Vector and  an ArrayList? 
Java Vector class is internally synchronized and ArrayList is not. 
What are wrapped classes?  
Wrapped classes are classes that allow primitive types to be accessed as  objects. 
Does garbage collection guarantee that a  program will not run out of memory? 
No, it doesn't. It is possible for programs to use up memory resources  faster than they are garbage collected. It is also possible for programs to  create objects that are not subject to garbage collection. 
What is the difference between preemptive  scheduling and time slicing? 
Under preemptive scheduling, the highest priority task executes until it  enters the waiting or dead states or a higher priority task comes into  existence. Under time slicing, a task executes for a predefined slice of time  and then reenters the pool of ready tasks. The scheduler then determines which  task should execute next, based on priority and other factors.
No comments:
Post a Comment