• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/85

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

85 Cards in this Set

  • Front
  • Back
What are the principle concepts of OOPS
• Abstraction • Polymorphism • Inheritance • Encapsulation (i.e. easily remembered as A-PIE).
What is Abstraction?
Abstraction refers to theact of representing essential features without including the background detailsor explanations
What is Encapsulation?

Encapsulation is a technique used for hidingthe properties and behaviors of an object and allowing outside access only asappropriate. It prevents other objects from directly altering or accessing theproperties or methods of the encapsulated object.


What is the difference between abstraction and encapsulation?


Abstraction focuses on the outside view of an object (i.e. the interface) Encapsulation (information hiding) prevents clients from seeing it’s inside view, where the behavior of the abstraction is implemented.

Abstraction solves the problem in the design side while Encapsulation is the Implementation.

Encapsulation is the deliverables of Abstraction. Encapsulation barely talks about grouping up your abstraction to suit the developer needs.

What is Inheritance?
Inheritance is the process by which objects of one class acquire the properties of objects of another class.

A class that is inherited is called a superclass.

The class that does the inheriting is called a subclass.

Inheritance is done by using the keyword extends.

The two most common reasons to use inheritance are:

To promote code reuse

To use polymorphism

What is Polymorphism?

Polymorphism is briefly described as "oneinterface, many implementations." Polymorphism is a characteristic ofbeing able to assign a different meaning or usage to something in different contexts- specifically, to allow an entity such as a variable, a function, or an objectto have more than one form.


How does Java implement polymorphism?

(Inheritance, Overloading and Overriding areused to achieve Polymorphism in java).
Polymorphism manifests itself in Java in the form of multiple methods havingthe same name.


In some cases, multiple methods have the same name, but different formal argument lists (overloaded methods).

In other cases, multiple methods have the same name, same return type, and same formal argument list (overridden methods).

Explain the different forms of Polymorphism.


There are two types of polymorphism oneis Compile time polymorphism and the other is run timepolymorphism. Compile time polymorphism is method overloading. Runtimetime polymorphism is done using inheritance and interface.
Note: From a practical programming viewpoint,polymorphism manifests itself in three distinct forms in Java:


Method overloading

Method overriding through inheritance

Method overriding through the Java interface

What is runtimepolymorphism or dynamic method dispatch

In Java, runtime polymorphism or dynamicmethod dispatch is a process in which a call to an overridden method isresolved at runtime rather than at compile-time. In this process, an overriddenmethod is called through the reference variable of a superclass. Thedetermination of the method to be called is based on the object being referredto by the reference variable.


What is Dynamic Binding?

Binding refers to the linking of a procedurecall to the code to be executed in response to the call. Dynamic binding (alsoknown as late binding) means that the code associated with a given procedurecall is not known until the time of the call at run-time. It is associated withpolymorphism and inheritance.


What is method overloading?

Method Overloading means to have two or moremethods with same name in the same class with different arguments. The benefitof method overloading is that it allows you to implement methods that supportthe same semantic operation but differ by argument number or type.
Note:


Overloaded methods MUST change the argument list

Overloaded methods CAN change the return type

Overloaded methods CAN change the access modifier

Overloaded methods CAN declare new or broader checked exceptions

A method can be overloaded in the same class or in a subclass

What is method overriding?


Method overriding occurs when sub classdeclares a method that has the same type arguments as a method declared by oneof its superclass. The key benefit of overriding is the ability to definebehavior that’s specific to a particular subclass type.
Note:


The overriding method cannot have a more restrictive access modifier than the method being overridden (Ex: You can’t override a method marked public and make it protected).

You cannot override a method marked final

You cannot override a method marked static

What are the differencesbetween method overloading and method overriding?
Overloaded Method Overridden Method Arguments Must change Must not change Return type Can change Can’t change except for covariant returns Exceptions Can change Can reduce or eliminate. Must not throw new or broader checked exceptions Access Can change Must not make more restrictive (can be less restrictive) Invocation Reference type determines which overloaded version is selected. Happens at compile time. Object type determines which method is selected. Happens at runtime.

Can overloaded methods be override too?


Yes, derived classes still can override theoverloaded methods. Polymorphism can still happen. Compiler will not bindingthe method calls since it is overloaded, because it might be overridden now orin the future.


Is it possible to override the main method?


NO, because main is a static method. A staticmethod can't be overridden in Java.


How to invoke a superclassversion of an Overridden method?

To invoke a superclass method that has beenoverridden in a subclass, you must either call the method directly through asuperclass instance, or use the super prefix in the subclass itself. From thepoint of the view of the subclass, the super prefix provides an explicitreference to the superclass' implementation of the method.



//From subclass



super.overriddenMethod();


What is super?

super is a keyword whichis used to access the method or member variables from the superclass. If amethod hides one of the member variables in its superclass, the method canrefer to the hidden variable through the use of the super keyword. In the sameway, if a method overrides one of the methods in its superclass, the method caninvoke the overridden method through the use of the super keyword.
Note:


You can only go back one level.

In the constructor, if you use super(), it must be the very first code, and you cannot access any this.xxx variables or methods to compute its parameters.

What is an Interface?


An interface is a description of a set ofmethods that conforming implementing classes must have.
Note:


You can’t mark an interface as final.

Interface variables must be static.

An Interface cannot extend anything but another interfaces.

How do you prevent a methodfrom being overridden?

To prevent a specific method from beingoverridden in a subclass, use the final modifier on the method declaration,which means "this is the final implementation of this method", theend of its inheritance hierarchy.



public final void exampleMethod() {
// Method statements
}


Can we instantiate aninterface?

You can’t instantiate an interface directly,but you can instantiate a class that implements an interface.


Can we create an object foran interface?

Yes, it is always necessary to create anobject implementation for an interface. Interfaces cannot be instantiated intheir own right, so you must write a class that implements the interface andfulfill all the methods defined in it.


Do interfaces have membervariables?

Interfaces may have member variables, but these areimplicitly public, static, and final- in other words, interfaces can declare only constants, notinstance variables that are available to all implementations and may be used askey references for method arguments for example.


What modifiers are allowedfor methods in an Interface?

Only public and abstract modifiers are allowed for methods in interfaces.


What is a marker interface?

Marker interfaces are those which do not declare any requiredmethods, but signify their compatibility with certain operations. The java.io.Serializableinterface and Cloneable are typical marker interfaces. These do not contain anymethods, but classes must implement this interface in order to be serializedand de-serialized.


What is an abstract class?


Abstract classes are classes that contain oneor more abstract methods. An abstract method is a method that is declared, butcontains no implementation.
Note:


If even a single method is abstract, the whole class must be declared abstract.

Abstract classes may not be instantiated, and require subclasses to provide implementations for the abstract methods.

You can’t mark a class as both abstract and final
When should I use abstractclasses and when should I use interfaces?

Use Interfaces when…


You see that something in your design will change frequently.

If various implementations only share method signatures then it is better to use Interfaces.

you need some classes to use some methods which you don't want to be included in the class, then you go for the interface, which makes it easy to just implement and make use of the methods defined in the interface.


Use Abstract Class when…


If various implementations are of the same kind and use common behavior or status then abstract class is better to use.

When you want to provide a generalized form of abstraction and leave the implementation task with the inheriting subclass.

Abstract classes are an excellent way to create planned inheritance hierarchies. They're also a good choice for nonleaf classes in class hierarchies.

When you declare a methodas abstract, can other nonabstract methods access it?

Yes, other nonabstract methods can access amethod that you declare as abstract.


Can we instantiate an abstract class?


An abstract class can neverbe instantiated. Its sole purpose is to be extended (subclassed).

Can there be an abstract class with no abstract methods in it?


Yes, there can be an abstract class withoutabstract methods.


What is Constructor?
A constructor is a special method whose task is to initialize the object of its class.

It is special because its name is the same as the class name.

They do not have return types, not even void and therefore they cannot return values.

They cannot be inherited, though a derived class can call the base class constructor.

Constructor is invoked whenever an object of its associated class is created.



How does the Java default constructor be provided?


If a class defined by the code does not haveany constructor, compiler will automatically provide oneno-parameter-constructor (default-constructor) for the class in the byte code.The access modifier (public/private/etc.) of the default constructor is thesame as the class itself.


Can constructor beinherited?

No, constructor cannot be inherited, though aderived class can call the base class constructor.




How are this() and super()used with constructors?
Constructors use this to refer to another constructor in the same class with a different parameter list.

Constructors use super to invoke the superclass's constructor. If a constructor uses super, it must use it in the first line; otherwise, the compiler will complain.

What are Access Specifiers?

One of the techniques in object-oriented programmingis encapsulation. It concerns the hidingof data in a class and making this class available only through methods. Javaallows you to control access to classes, methods, and fields viaso-called access specifiers..




What are Access Specifiers available in Java?


Java offers four access specifiers, listedbelow in decreasing accessibility:


Public- public classes, methods, and fields can be accessed from everywhere.

Protected- protected methods and fields can only be accessed within the same class to which the methods and fields belong, within its subclasses, and within classes of the same package.

Default(no specifier)- If you do not set access to specific level, then such a class, method, or field will be accessible from inside the same package to which the class, method, or field belongs, but not from outside this package.

Private- private methods and fields can only be accessed within the same class to which the methods and fields belong. private methods and fields are not visible within subclasses and are not inherited by subclasses.

What is final modifier?


The final modifier keyword makesthat the programmer cannot change the value anymore. The actual meaning dependson whether it is applied to a class, a variable, or a method.


final Classes- A final class cannot have subclasses.

final Variables- A final variable cannot be changed once it is initialized.

final Methods- A final method cannot be overridden by subclasses.

What are the uses of final method?


There are two reasons for marking a method asfinal:


Disallowing subclasses to change the meaning of the method.

Increasing efficiency by allowing the compiler to turn calls to the method into inline Java code.

What is static block?

Static block which exactly executed exactlyonce when the class is first loaded into JVM. Before going to the main methodthe static block will execute.


What are static variables?


Variables that have only one copy per classare known as static variables. They are not attached to a particular instanceof a class but rather belong to a class as a whole. They are declared by usingthe static keyword as a modifier.



statictype varIdentifier;



where, the name of the variable isvarIdentifier and its data type is specified by type.
Note: Static variables that are not explicitly initialized in thecode are automatically initialized with a default value. The default valuedepends on the data type of the variables.


What is the difference between static and non-static variables?

A static variable is associated with the classas a whole rather than with specific instances of a class. Non-static variablestake on unique values with each object instance.


What are static methods?


Methods declared with the keyword static asmodifier are called static methods or class methods. They are so called becausethey affect a class as a whole, not a particular instance of the class. Staticmethods are always invoked without reference to a particular instance of aclass.
Note:The use of a static method suffers from the followingrestrictions:


A static method can only call other static methods.

A static method must only access static data.

A static method cannot reference to the current object using keywords super or this.

What is an Iterator ?


The Iterator interface is used to step through the elements of a Collection.

Iterators let you process each element of a Collection.

Iterators are a generic way to go through all the elements of a Collection no matter how it is organized.

Iterator is an Interface implemented a different way for every Collection.

How do you traverse through a collection using its Iterator?


To use an iterator to traverse through thecontents of a collection, follow these steps:


Obtain an iterator to the start of the collection by calling the collection’s iterator() method.

Set up a loop that makes a call to hasNext(). Have the loop iterate as long as hasNext() returns true.

Within the loop, obtain each element by calling next().

How do you remove elements during Iteration?


Iterator also has a method remove() whenremove is called, the current element in the iteration is deleted.


What is the difference between Enumeration and Iterator?


Enumeration


Iterator


Enumeration doesn't have a remove() method



Iterator has a remove() method



Enumeration acts as Read-only interface, because it has the methods only to traverse and fetch the objects



Can be abstract, final, native, static, or synchronized


How is ListIterator?

ListIterator isjust like Iterator, except it allows us to access the collection in either theforward or backward direction and lets us modify an element


What is the List interface?
The List interface provides support for ordered collections of objects.

Lists may contain duplicate elements.

What are the main implementations of the List interface ?


The main implementations of the List interfaceare as follows :


ArrayList : Resizable-array implementation of the List interface. The best all-around implementation of the List interface.

Vector : Synchronized resizable-array implementation of the List interface with additional "legacy methods."

LinkedList : Doubly-linked list implementation of the List interface. May provide better performance than the ArrayList implementation if elements are frequently inserted or deleted within the list. Useful for queues and double-ended queues (deques).

What are the advantages ofArrayList over arrays ?

Some of the advantages ArrayList has overarrays are:


It can grow dynamically

It provides more powerful insertion and search mechanisms than arrays.

Difference between ArrayList and Vector ?


ArrayList


Vector


ArrayList is NOT synchronized by default.



Vector List is synchronized by default.



ArrayList can use only Iterator to access the elements.



Vector list can use Iterator and Enumeration Interface to access the elements.



The ArrayList increases its array size by 50 percent if it runs out of room.



A Vector defaults to doubling the size of its array if it runs out of room



ArrayList has no default size.



While vector has a default size of 10.


.How to obtain Array from an ArrayList ?

Array can be obtained from an ArrayListusing toArray() method on ArrayList.



List arrayList = new ArrayList();
arrayList.add(…





Object a[] = arrayList.toArray();


Why insertion and deletion in ArrayList is slow compared toLinkedList ?


ArrayList internally uses and array to store the elements, when that array gets filled by inserting elements a new array of roughly 1.5 times the size of the original array is created and all the data of old array is copied to new array.

During deletion, all elements present in the array after the deleted elements have to be moved one step back to fill the space created by deletion. In linked list data is stored in nodes that have reference to the previous node and the next node so adding element is simple as creating the node an updating the next pointer on the last node and the previous pointer on the new node. Deletion in linked list is fast because it involves only updating the next pointer in the node before the deleted node and updating the previous pointer in the node after the deleted node.

Why are Iterators returnedby ArrayList called Fail Fast ?

Because, if list is structurally modified atany time after the iterator is created, in any way except through theiterator's own remove or add methods, the iterator will throw aConcurrentModificationException. Thus, in the face of concurrent modification,the iterator fails quickly and cleanly, rather than risking arbitrary,non-deterministic behavior at an undetermined time in the future.


How do you decide when touse ArrayList and When to use LinkedList?

If you need to support random access, withoutinserting or removing elements from any place other than the end, thenArrayList offers the optimal collection. If, however, you need to frequentlyadd and remove elements from the middle of the list and only access the listelements sequentially, then LinkedList offers the better implementation.


What is the Set interface ?

The Set interface provides methods for accessing the elements of a finite mathematical set

Sets do not allow duplicate elements

Contains no methods other than those inherited from Collection

It adds the restriction that duplicate elements are prohibited

Two Set objects are equal if they contain the same elements

What are the main Implementations of the Set interface ?


The main implementations of the List interfaceare as follows:


HashSet

TreeSet

LinkedHashSet

EnumSet

What is a HashSet ?


A HashSet is an unsorted, unordered Set.

It uses the hashcode of the object being inserted (so the more efficient your hashcode() implementation the better access performance you’ll get).

Use this class when you want a collection with no duplicates and you don’t care about order when you iterate through it.

What is a TreeSet ?

TreeSet is a Set implementation that keeps theelements in sorted order. The elements are sorted according to the naturalorder of elements or by the comparator provided at creation time.




What is an EnumSet ?

An EnumSet is a specialized set for use withenum types, all of the elements in the EnumSet type that is specified,explicitly or implicitly, when the set is created.




Difference between HashSet and TreeSet ?


HashSet


TreeSet


HashSet is under set interface i.e. it does not guarantee for either sorted order or sequence order.



TreeSet is under set i.e. it provides elements in a sorted order (acceding order).



We can add any type of elements to hash set.



We can add only similar types
of elements to tree set.


What is a Map ?
A map is an object that stores associations between keys and values (key/value pairs).

Given a key, you can find its value. Both keys and values are objects.

The keys must be unique, but the values may be duplicated.

Some maps can accept a null key and null values, others cannot.

What are the main Implementations of the Map interface ?


The main implementations of the List interfaceare as follows:


HashMap

HashTable

TreeMap

EnumMap

What is a TreeMap ?


TreeMap actually implements the SortedMapinterface which extends the Map interface. In a TreeMap the data will be sortedin ascending order of keys according to the natural order for the key's class,or by the comparator provided at creation time. TreeMap is based on theRed-Black tree data structure.


How do you decide when to use HashMap and when to use TreeMap ?


For inserting, deleting, and locating elementsin a Map, the HashMap offers the best alternative. If, however, you need totraverse the keys in a sorted order, then TreeMap is your better alternative.Depending upon the size of your collection, it may be faster to add elements toa HashMap, then convert the map to a TreeMap for sorted key traversal.


Difference between HashMapand Hashtable ?

HashMap


Hashtable


HashMap lets you have null values as well as one null key.



HashTable does not allows null values as key and value.



The iterator in the HashMap is fail-safe (If you change the map while iterating, you’ll know).



The enumerator for the Hashtable is not fail-safe.



HashMap is unsynchronized.



Hashtable is synchronized.



Note: Onlyone NULL is allowed as a key in HashMap. HashMap does not allow multiple keysto be NULL. Nevertheless, it can have multiple NULL values.


How does a Hashtable internally maintain the key-value pairs?

TreeMap actually implements the SortedMapinterface which extends the Map interface. In a TreeMap the data will be sortedin ascending order of keys according to the natural order for the key's class,or by the comparator provided at creation time. TreeMap is based on theRed-Black tree data structure.


What Are the different Collection Views That Maps Provide?


Maps Provide Three Collection Views.


Key Set - allow a map's contents to be viewed as a set of keys.

Values Collection - allow a map's contents to be viewed as a set of values.

Entry Set - allow a map'scontents
What is a KeySet View ?

KeySet is a set returned by the keySet() methodof the Map Interface, It is a set that contains all the keys present in theMap.


What is a Values CollectionView ?

Values Collection View is a collectionreturned by the values() method of the Map Interface,It contains all the objects present as values in the map.




What is an EntrySet View ?


Entry Set view is a set that is returned bythe entrySet() method in the mapand contains Objects of type Map. Entry each of which has both Key and Value.


How do you sort an ArrayList (or any list) of user-defined objects ?

Create an implementation of the java.lang.Comparable interfacethat knows how to order your objects and pass it to java.util.Collections.sort(List,Comparator).




What is the Comparableinterface ?

The Comparable interface is used to sort collections and arraysof objects using the Collections.sort() and java.utils.Arrays.sort() methodsrespectively. The objects of the class implementing the Comparable interfacecan be ordered.



The Comparable interface in the generic formis written as follows:



interface Comparable



where Tis the name of the type parameter.

All classes implementing the Comparable interface must implement the compareTo() method that has the return type as aninteger. The signature of thecompareTo() methodis as follows:



int i = object1.compareTo(object2)


If object1 < object2: The value of i returned will be negative.

If object1 > object2: The value of i returned will be positive.

If object1 = object2: The value of i returned will be zero.

What is an exception?


An exception is an event,which occurs during the execution of a program, that disrupts the normal flowof the program's instructions.


What is error?


An Error indicates that a non-recoverablecondition has occurred that should not be caught. Error, a subclass ofThrowable, is intended for drastic problems, such as OutOfMemoryError, whichwould be reported by the JVM itself.


Which is superclass of Exception?


Throwable", the parent class of all exception related classes

What are the advantages of using exception handling?


Exception handling provides the followingadvantages over "traditional" error management techniques:


Separating Error Handling Code from "Regular" Code.

Propagating Errors Up the Call Stack.

Grouping Error Types and Error Differentiation.

What are the types of Exceptions in Java


There are two types of exceptions in Java,unchecked exceptions and checked exceptions.


Checked exceptions: A checked exception is some subclass of Exception (or Exception itself), excluding class RuntimeException and its subclasses. Each method must either handle all checked exceptions by supplying a catch clause or list each unhandled checked exception as a thrown exception.

Unchecked exceptions: All Exceptions that extend the RuntimeException class are unchecked exceptions. Class Error and its subclasses also are unchecked.

Why Errors are Not Checked?

A unchecked exception classes which are the error classes(Error and its subclasses) are exempted from compile-time checking because theycan occur at many points in the program and recovery from them is difficult orimpossible. A program declaring such exceptions would be pointlessly.




Why Runtime Exceptions are Not Checked?


The runtime exception classes (RuntimeException and its subclasses) are exempted fromcompile-time checking because, in the judgment of the designers of the Javaprogramming language, having to declare such exceptions would not aidsignificantly in establishing the correctness of programs. Many of theoperations and constructs of the Java programming language can result inruntime exceptions. The information available to a compiler, and the level ofanalysis the compiler performs, are usually not sufficient to establish thatsuch run-time exceptions cannot occur, even though this may be obvious to theprogrammer. Requiring such exception classes to be declared would simply be anirritation to programmers.




Explain the significance of try-catch blocks?


Whenever the exception occurs in Java, we needa way to tell the JVM what code to execute. To do this, we use the try andcatch keywords. The try is used to define a block of code in which exceptionsmay occur. One or more catch clauses match a specific exception to a block ofcode that handles it.


What is the use of finally block?


The finally block encloses code that is alwaysexecuted at some point after the try block, whether an exception was thrown ornot. This is right place to close files, release your network sockets,connections, and perform any other cleanup your code requires.



Note: Ifthe try block executes with no exceptions, the finally block is executedimmediately after the try block completes. It there was an exception thrown,the finally block executes immediately after the proper catch block completes




What if there is a break or return statement in try blockfollowed by finally block?


If there is a return statement in the tryblock, the finally block executes right after the return statement encountered,and before the return executes.


What is the difference throw and throws?


throws: Usedin a method's signature if a method is capable of causing an exception that itdoes not handle, so that callers of the method can guard themselves againstthat exception. If a method is declared as throwing a particular class ofexceptions, then any other method that calls it must either have a try-catchclause to handle that exception or must be declared to throw that exception (orits superclass) itself.







A method that does not handle an exception itthrows has to announce this:



public void myfunc(int arg) throws MyException {

}



throw: Usedto trigger an exception. The exception will be caught by the nearest try-catchclause that can catch that type of exception. The flow of execution stopsimmediately after the throw statement; any subsequent statements are notexecuted.







To throw an user-defined exception within ablock, we use the throw command:



throw new MyException("I always wanted tothrow an exception!");


How to create custom exceptions?


A. By extending the Exception class or one ofits subclasses.



Example:



class MyException extends Exception {
public MyException() { super(); }
public MyException(String s) { super(s); }
}


What are the different waysto handle exceptions?

There are two ways to handle exceptions:


Wrapping the desired code in a try block followed by a catch block to catch the exceptions.

List the desired exceptions in the throws clause of the method and let the caller of the method handle those exceptions.