S.No
|
Shallow Cloning
|
Deep Cloning
|
1
|
Here
copied object points to the same location the previous object points to. So
if u want to change anything for main object it will reflect for copied
object also.
|
Here
copied object points to the other location and points to other reference. So
if u want to change anything it wont reflect for main object.
|
2
|
By
default java supports shallow cloning
|
By
default java does not support deep cloning.
|
Wednesday, 18 November 2015
What is the difference between Shallow cloning and Deep cloning
What is Reflection and Interospection
"Reflection" refers to the low-level API with which you
can ask "what are the methods of this class", "what parameters
does this method accept", "what is the parent class of this
class", and so on.
"Introspection" is a higher-level
concept; it generally refers to using the reflection API to learn about a
class. For example, the javax.beans.Introspector class will give you the list
of JavaBeans properties of a class -- i.e., the pairs of matching "Y getX()"/"void
setX(Y)" methods.
Difference between "== operator" and "equals() method" in java
S.No
|
= = Operator
|
equals() method
|
1
|
It is used for reference comparison.
|
It is also used for reference comparison but if we want we can override for content comparison
|
2
|
It can be apply for both primitives and object references.
|
It can be apply for only object references.
|
3
|
s1==s2 is true, iff both s1 & s2 are pointing to the same object on the heap.
|
In the object class, .equals() returns true, iff both s1& s2 are pointing to the same object.
|
4
|
We can't apply == operator for incompatible types of objects violation leads to compile time exception saying incompatible types.
Ex: String s1="getsure"; Student s2 = new Student("suresh"); SOP(s1==s2) --> C.E |
It never rises any compile time / run time exception just it will simply returns false in the case of incompatible types.
|
5
|
In Identity Hashmap, JVM uses == operator to identify duplicate keys.
Ex: IdentityHashMap m=new IdentityHashMap(); Integer i1=new Integer(10); Integer i2=new Integer(10); m.put(i1, "GetSure");m.put(i2, "Infotech"); SOP(m) --> O/P: 10 - GetSure, 10 - Infotech |
In Hashmap, the JVM uses .equals() method to identify duplicate keys.
Ex: HashMap m=new HashMap(); Integer i1=new Integer(10); Integer i2=new Integer(10); m.put(i1, "GetSure");m.put(i2, "Infotech"); SOP(m) --> O/P: Only 10 - Infotech |
What is Serialization and Deserialization? Give me examples
Serialization : Serialization in java is a mechanism of writing the state of an
object into a byte stream.It is mainly used in Hibernate, RMI, JPA, EJB, JMS
technologies. The reverse operation of serialization is called deserialization.
The String class and all the wrapper classes implements java.io.Serializable
interface by default.
Advantages: It is mainly used to travel object's state on the network (known as marshaling).
Example:
1. Banking example: When the account holder tries to withdraw money from the server through ATM, the account holder information along with the withdrawl details will be serialized (marshalled/flattened to bytes) and sent to server where the details are deserialized (unmarshalled/rebuilt the bytes)and used to perform operations. This will reduce the network calls as we are serializing the whole object and sending to server and further request for information from client is not needed by the server.
2. Stock example: Let’s say an user wants the stock updates immediately when he request for it. To achieve this, everytime we have an update, we can serialize it and save it in a file. When user requests the information, deserialize it from file and provide the information. This way we don’t need to make the user wait for the information until we hit the database, perform computations and get the result.
Why we need Serialization: To persist data for future use.
Advantages: It is mainly used to travel object's state on the network (known as marshaling).
Example:
Deserialization : Deserialization is the process of reconstructing the object from
the serialized state.It is the reverse operation of serialization.
Example:
More Explanation:1. Banking example: When the account holder tries to withdraw money from the server through ATM, the account holder information along with the withdrawl details will be serialized (marshalled/flattened to bytes) and sent to server where the details are deserialized (unmarshalled/rebuilt the bytes)and used to perform operations. This will reduce the network calls as we are serializing the whole object and sending to server and further request for information from client is not needed by the server.
2. Stock example: Let’s say an user wants the stock updates immediately when he request for it. To achieve this, everytime we have an update, we can serialize it and save it in a file. When user requests the information, deserialize it from file and provide the information. This way we don’t need to make the user wait for the information until we hit the database, perform computations and get the result.
Why we need Serialization: To persist data for future use.
What are Java 8 & Java 9 Features
Java 5 Features:
> The try-with-resources
> Caching Multiple Exceptions by single catch
> Underscores in Numeric Literals
> Pipelines and Streams
> Date and Time API
> Default Methods
> Type Annotations
> Nashhorn JavaScript Engine
> Concurrent Accumulators
> Parallel operations
> PermGen Error Removed
> TLS SNI
Java 9 Features:
> A light-weight JSON API - which is a source of great speculation right now about how truly useful this feature will be (as proposed by the community process).
> Process API Improvements - to improve the API for controlling and managing OS processes.
> Segmented Code Cache - to improved execution time for complicated benchmarks.
> Smart Java Compilation (Part 2) - Makes the sjavac tool available in the default JDK.
> Modular Source Code - organizes JDK source code into modules.
> For-each loop
> Autoboxing and Unboxing
> Covariant Return Type
> Annotation
> Generics
> Enum
> Static Import
> Varargs
Java 6 Features:
> Instrumentation (premain method)
Java 7 Features:
> String in switch
statement
> Binary Literals> The try-with-resources
> Caching Multiple Exceptions by single catch
> Underscores in Numeric Literals
Java 8 Features:
> Lambda Expressions> Pipelines and Streams
> Date and Time API
> Default Methods
> Type Annotations
> Nashhorn JavaScript Engine
> Concurrent Accumulators
> Parallel operations
> PermGen Error Removed
> TLS SNI
Java 9 Features:
> A light-weight JSON API - which is a source of great speculation right now about how truly useful this feature will be (as proposed by the community process).
> A HTTP 2 Client - for HTTP 2.0 and websockets.
> Process API Improvements - to improve the API for controlling and managing OS processes.
> Improved contended locking -for
increasing performance between threads.
> Segmented Code Cache - to improved execution time for complicated benchmarks.
> Smart Java Compilation (Part 2) - Makes the sjavac tool available in the default JDK.
> Modular Source Code - organizes JDK source code into modules.
Difference between IdentityHashMap and HashMap
In Identity Hashmap, JVM uses == operator to identify duplicate
keys.
Ex: IdentityHashMap m=new IdentityHashMap();
Integer i1=new
Integer(10);
Integer
i2=new Integer(10);
m.put(i1,
"GetSure");m.put(i2, "Infotech");
SOP(m) -->
O/P: 10 - GetSure, 10 - Infotech
In Hashmap, the JVM uses .equals() method to identify duplicate
keys.
Ex: HashMap m=new
HashMap();
Integer
i1=new Integer(10);
Integer
i2=new Integer(10);
m.put(i1,
"GetSure");
m.put(i2,
"Infotech");
SOP(m) -->
O/P: Only 10 - Infotech
What is CopyOnWriteArrayList, how it is different than ArrayList
CopyOnWriteArrayList is a thread-safe
counterpart of ArrayList. All mutable operations like add and set are implement
by using a copy of the underlying array. Write operation is slower when
compared the ArrayList as it takes a snapshot of the instance and does the
write. This is useful when the traversal of the collection need not be
synchronized during traversal with the original instance and the traversal is
larger in count than the updates. This provides a fail safe iterator as it does
not throw exception when the underlying collection is modified. At the same
time the iterator will not reflect the modifications done to the collection, it
just shows the snapshot of state taken at the moment when the iterator is
created.
Subscribe to:
Posts (Atom)