HISTORY
OAK
- 1990
- Platform Independent
- Not Popular
- Desktop Application
JAVA
- FOSS : FREE AND OPEN SOURCE
- Java is an Object-Oriented programming language
- Most of it is free and open source!
- It is developed in the early 1990s, by James Gosling of Sun Microsystems
- It allows development of software applications.
- It is amongst the preferred choice for developing internet-based applications
Key 💡
The main advantage of JVM is that JVM makes Java
platform-independent by executing bytecodes.
Sample

- Good Practise to follow convention
- Class Name shound be Noun
- Always Start class name with Captial Letter.
Key 💡
JVM enters into the program by main method So the
main method should always be public
Min method always be static
In Static object is not required
Member can access only through object method. So instance doesn't requied to have
object to access the
Main method is accesd by JVM.
If the main method is not a static, then JVM won't able to access the main
method.
Since object creation is not a part of the JVM, JVM doesn't create object to
access the main method. So, the main method should always be public static.

- Every class has a constructor whether it’s a normal class or a abstract class.
- Constructors are not methods and they don’t have any return type.
- Constructor name should match with class name .
- Constructor can use any access specifier, they can be declared as private also.
Private constructors are possible in java but there scope is within the class
only.
- Like constructors method can also have name same as class name, but
still they have return type, though which we can identify them that they are
methods not constructors.
- If you don’t implement any constructor within the class, compiler will do it
for.
- this() and super() should be the first statement in the constructor
code. If you don’t mention them, compiler does it for you
accordingly.
- Constructor overloading is possible but overriding is not possible. Which means
we can have overloaded constructor in our class but we can’t override a
constructor.
- Constructors can not be inherited.
- If Super class doesn’t have a no-arg(default) constructor then compiler would
not insert a default constructor in child class as it does in normal scenario.
- Interfaces do not have constructors.
- Abstract class can have constructor and it gets invoked when a class, which
implements interface, is instantiated. (i.e. object creation of concrete
class).
- A constructor can also invoke another constructor of the same class – By using
this(). If you want to invoke a parameterized constructor then do it like this:
this(parameter list).