Object in Java
Object in Java programming language or any other Object oriented
programming language like C++ are core of OOPS concept and that's why the name.
Class
and Object along with Inheritance,
Polymorphism,
Abstraction
and Encapsulation
forms basis of any Object oriented programming language e.g. Java. Objects are
instances of Class, Class define blue prints and Objects are thing which are
created based upon that blueprint. Object are also known as instance in Java,
e.g. When we say an instance of String class, we actually mean an Object of
String class. Object has state and behaviour in Java. State is represented
using instance
variable and static
variable in Java class and behaviors are implemented using methods in Java.
What differentiate two Objects of same class are there state e.g. if we take
two instance of String class "A" and "B" there contents are
different which is there state. In OOPS programming, we model real world things into Class and
Object e.g. Car class is a blue print of car which may
specify that car should have 4 gears, 4 seats an engine etc and every single car
is an Object or instance of Car class. If you like to learn more
on OOPS concepts and designs, I suggest to read 10
OOPS and SOLID design principles in Java, That will also help to improve
your OOPS programming.
There are multiple ways to create Objects in Java e.g. Reflection, Serialization, Cloning etc but most common and easy way to create Object in Java is by using new() keyword. When we create an object of any class in Java, its constructor gets called, which initialized object with its default or initial state. Since a class can contain overloaded constructors in Java, you can also invoke any particular constructor by using new() keyword with argument list of that constructor. for example String class has multiple overloaded Constructors, one of them accept another String instance. You can also use Factory methods to creates Objects in Java. Factory methods are created as part of Factory design pattern which is a Creational design pattern in Java and best suited to create instance of Immutable classes.
Difference between Class and Object in Java
Many Java programmers especially beginners confused between Class and Object. When I started programming, I was also on same boat and don't understand difference between Class and Object in Java, even after reading there definition. To be fair, it does look simple but understanding OOPS concept takes some time. Anyway, main difference between Class and Object in Java is that Class is a blueprint or a model while Objects are actual things which are created out of those blueprint or model. Best way to understand this is, thinking in terms of model and design. Before actually building a Car or Vehicle a design is created which specifies How many gears car should have, how many seats, how it will start, stop etc. All details of it is captured. This is a class which can be created using class keyword in Java. Actual cars which will be produced based upon those blueprints are objects. If you want to differentiate Class and Object in Java code, then you can not because all you see is code, wrapped inside a class. Objects are created at runtime when you start JVM with java command and JVM will start executing your code, whenever JVM encountered new keyword it will create an Object.
1) Objects can be serialized in Java by using Serialization process, which stores state of Object into persistence e.g. file or database so that later in time, same Object can be recreated.
2) Classes which have just one Object or one instance in whole application are known as Singleton in Java. It's tricky to create thread-safe Singleton in Java but they are very useful. One example of Singleton in Java is java.lang.Runtime
3) Java programming language provides mechanism which converts primitive data types like int, long, double into respective Objects e.g. Integer, Long and Double and this process is called Autoboxing in Java. opposite of converting Object to primitive is known as Unboxing in Java.
4) Objects in Java are created in heap memory, which is allocated when we start JVM by java command.
7) Objects which are unreachable by any Thread in JVM is known as dead objects are eligible for Garbage collection. When garbage collector runs, it cleans those objects and reclaim memory from them.
Top 20 software design and design pattern Interview Question – Answered
How to implement Builder design pattern in Java
When to use Observer design pattern in Java with real life example
Why use Decorator design pattern in Java
How to implement Producer consumer design pattern using BlockingQueue in Java
No comments:
Post a Comment