0% found this document useful (0 votes)
38 views109 pages

PNR Class Basics

The document discusses defining classes in Java including defining a class, reference variables of a class, instance creation, instance variables, default values, instance variable access, methods, invoking methods, constructors, constructor overloading and finding outputs of code examples.

Uploaded by

Akanksha Bhagat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPSX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views109 pages

PNR Class Basics

The document discusses defining classes in Java including defining a class, reference variables of a class, instance creation, instance variables, default values, instance variable access, methods, invoking methods, constructors, constructor overloading and finding outputs of code examples.

Uploaded by

Akanksha Bhagat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPSX, PDF, TXT or read online on Scribd
You are on page 1/ 109

CHAPTER 5

Defining a Class in
JAVA
Dr. Purvi Ramanuj
Dr Purvi Ramanuj

Dr. Purvi Ramanuj


• Class – Data type
• Objects – variables of type class

Dr. Purvi Ramanuj


1. Defining a Class

Dr. Purvi Ramanuj


2.Reference variable of class

Dr. Purvi Ramanuj


3. Instance creation

Dr. Purvi Ramanuj


4. Instance Variable
• Instances of data type may maintain some information (state)
• This class would require to maintain the length and width – int types
• length and width are known as instance variables.
• Every instance of the Rectangle class will have its own separate copy of length and width

• Default vale = 0 (of all numeric types )

Dr. Purvi Ramanuj


Default Values
• Numeric types : byte, short, int, long, float,
double and char - 0
• Boolean – false
• Reference type – null

Dr. Purvi Ramanuj


5. Instance Variable Access

Dr. Purvi Ramanuj


6. Method

Dr. Purvi Ramanuj


7. Invoking method

Dr. Purvi Ramanuj


8.

Dr. Purvi Ramanuj


9

Dr. Purvi Ramanuj


The whole program : Feel !
class Rectangle1 {
int length;
int width;
int area() {
return length*width;
}
void setDimensions(int l, int w) {
length = l;
width = w;
}
}
class TestRectangle1 {
public static void main(String args[]) {
Rectangle1 r1, r2;
r1= new Rectangle1();
r2= new Rectangle1();
r1.setDimensions(7,5);
System.out.println("area of r1 is : " + r1.area());
}
}

Dr. Purvi Ramanuj


10. Method Overloading

Dr. Purvi Ramanuj


11. Using Overloading method

Dr. Purvi Ramanuj


Dr. Purvi Ramanuj
12. Constructor

Dr. Purvi Ramanuj


Dr. Purvi Ramanuj
Constructor
• A special method automatically called when
an object is created by new()
• Java provide a default one that takes no
arguments and perform no special
initialization
– Initialization is guaranteed
– All fields set to default values: primitive types to 0
and false, reference to null

Dr. Purvi Ramanuj


Constructor (cont.)
• Must have the same name as the class name
– So the compiler know which method to call
• Perform any necessary initialization
• Format: public ClassName(para){…}
• No return type, even no void!
– It actually return current object
• Notice: if you define any constructor, with
parameters or not, Java will not create the
default one for you.

Dr. Purvi Ramanuj


Constructor example

class Circle{
double r;
public static void main(String[] args){
Circle c2 = new Circle(); // OK, default constructor
Circle c = new Circle(2.0); //error!!
}
}

Dr. Purvi Ramanuj


Constructor example
class Circle{
double r;
public Circle (double r) {
this.r = r; //same name!
}
public static void main(String[] args){
Circle c = new Circle(2.0); //OK
Circle c2 = new Circle(); //error!!, no more default
}
}

Circle.java:8: cannot resolve symbol


symbol : constructor Circle ()
location: class Circle
Circle c2 = new Circle(); //error!!
^
1 error
Dr. Purvi Ramanuj
Constructor example
class Circle{
double r;
public Circle(){
r = 1.0; //default radius value;
}
public Circle (double r) {
this.r = r; //same name!
}
public static void main(String[] args){
Circle c = new Circle(2.0); //OK
Circle c2 = new Circle(); // OK now!
}
}

Multiple constructor now!!


Dr. Purvi Ramanuj
constructor
• Constructor is used to initialize the state of an
object.
• Constructor must not have return type.
• Constructor is invoked implicitly.
• The java compiler provides a default
constructor if you don't have any constructor.
• Constructor name must be same as the class
name.
Dr. Purvi Ramanuj
Default
• Numeric types : 0
• Boolean : false
• Reference type : null

Dr. Purvi Ramanuj


Find Output -1
public class MyClass {
int x; // Create a class attribute

// Create a class constructor for the MyClass class


public MyClass() {
x = 5; // Set the initial value for the class attribute x
}
public static void main(String[] args) {
MyClass myObj = new MyClass(); // Create an object of
// class MyClass (This will call the constructor)
System.out.println(myObj.x); // Print the value of x
}
} Dr. Purvi Ramanuj
• Outputs 5

Dr. Purvi Ramanuj


Find Output -2
class Demo{
int value1;
int value2;
Demo(){
value1 = 10;
value2 = 20;
System.out.println("Inside Constructor");
}

public void display(){


System.out.println("Value1 === "+value1);
System.out.println("Value2 === "+value2);
}

public static void main(String args[]){


Demo d1 = new Demo();
d1.display();
}
}

Dr. Purvi Ramanuj


Inside Constructor
Value1 === 10
Value2 === 20

Dr. Purvi Ramanuj


Example -3 – Find output
public class MyClass {
int x;

public MyClass(int y) {
x = y;
}

public static void main(String[] args) {


MyClass myObj = new MyClass(5);
System.out.println(myObj.x);
}
}
Dr. Purvi Ramanuj
• Outputs 5

Dr. Purvi Ramanuj


Example -4 – Find output
public class Car {
int modelYear;
String modelName;

public Car(int year, String name) {


modelYear = year;
modelName = name;
}

public static void main(String[] args) {


Car myCar = new Car(1969, “Maruti");
System.out.println(myCar.modelYear + " " + myCar.modelName);
}
}
Dr. Purvi Ramanuj
• Outputs 1969 Maruti

Dr. Purvi Ramanuj


Find Output - 5
class Demo{
int value1;
public static void main(String args[]){
int value2; Demo d1 = new Demo();
/*Demo(){
Demo d2 = new Demo(30);
value1 = 10;
value2 = 20; Demo d3 = new Demo(30,40);
System.out.println("Inside 1st Constructor"); d1.display();
}*/
Demo(int a){ d2.display();
value1 = a; d3.display();
System.out.println("Inside 2nd Constructor");
}
}
Demo(int a,int b){ }
value1 = a;
value2 = b;
System.out.println("Inside 3rd Constructor");
}
public void display(){
System.out.println("Value1 === "+value1);
System.out.println("Value2 === "+value2);
}

Dr. Purvi Ramanuj


Error

Every class has a default Constructor. Default


Constructor for class Demo is Demo(). In case
you do not provide this constructor the compiler
creates it for you and initializes the variables to
default values. You may choose to override this
default constructor and initialize variables to
your desired values as shown in Example
Dr. Purvi Ramanuj
Find Output -6
class Geek
{
int num;
String name;

// this would be invoked while an object of that class is created.


Geek()
{
System.out.println("Constructor called");
}
}
class GFG
{
public static void main (String[] args)
{
// this would invoke default constructor.
Geek geek1 = new Geek();

// Default constructor provides the default values to the object like 0, null
System.out.println(geek1.name);
System.out.println(geek1.num);
}
}
Dr. Purvi Ramanuj
Constructor called
null
0

Dr. Purvi Ramanuj


Find Output -7
class Geek
{
String name;
int id;
Geek(String name, int id)
{
this.name = name;
this.id = id;
}
}
class GFG
{
public static void main (String[] args)
{
Geek geek1 = new Geek("adam", 1);
System.out.println("GeekName :" + geek1.name + " and GeekId :" + geek1.id);
}
Dr. Purvi Ramanuj
}
GeekName :adam and GeekId :1

Dr. Purvi Ramanuj


constructor overloading : Find Output -8
import java.io.*;

class Geek
{
// constructor with one argument
Geek(String name)
{
System.out.println("Constructor with one " + "argument - String : " + name);
}

// constructor with two arguments


Geek(String name, int age)
{
System.out.println("Constructor with two arguments : " + " String and Integer : " + name + " "+ age);
}

// Constructor with one argument but with different type than previous..
Geek(long id)
{
System.out.println("Constructor with one argument : " + "Long : " + id);
}
}

Dr. Purvi Ramanuj


class GFG
{
public static void main(String[] args)
{
// Creating the objects of the class named 'Geek‘ by passing different arguments

// Invoke the constructor with one argument of type 'String'.


Geek geek2 = new Geek("Shikhar");

// Invoke the constructor with two arguments


Geek geek3 = new Geek("Dharmesh", 26);

// Invoke the constructor with one argument of type 'Long'.


Geek geek4 = new Geek(325614567);
}
}

Dr. Purvi Ramanuj


Constructor with one argument - String : Shikhar
Constructor with two arguments - String and
Integer : Dharmesh 26
Constructor with one argument - Long :
325614567

Dr. Purvi Ramanuj


Dr. Purvi Ramanuj
Dr. Purvi Ramanuj
Dr. Purvi Ramanuj
Use of this keyword

Used to call
constructor of same
class from another
constructor

Dr. Purvi Ramanuj


Dr. Purvi Ramanuj
What is output??

Dr. Purvi Ramanuj


What is output??

Dr. Purvi Ramanuj


What is Solution??

Dr. Purvi Ramanuj


How instance method works?
Person a=new Person(), b=new Person();
a.setWeight(100); b.setWeight(120);

• How can the method know whether it’s been


called for object a or b?
– Internal: Person.setWeight(a, 100);
• Invisible additional parameter to all instance
methods: this
• It holds a reference to the object through
which the method is invoked
– a.setWeight(100)  this=a
Dr. Purvi Ramanuj
Keyword this
• Can be used only inside method
• When call a method within the same class, don’t
need to use this, compiler do it for you.
• When to use it?
– method parameter or local variable in a method has the
same name as one of the fields of the class
– Used in the return statement when want to return the
reference to the current object.
• Example …

Dr. Purvi Ramanuj


Keyword this example I
class A{
int w;
public void setValue (int w) {
this.w = w; //same name!
}
}

When a method parameter or local variable in a


method has the same name as one of the fields of the
class, you must use this to refer to the field.

Dr. Purvi Ramanuj


Keyword this example II
class Exp{
public int i=0;
public Exp increment () {
i++;
return this; // return current object
}

public static void main (String[] args){


Exp e = new Exp();
int v = e.increment().increment().i; // v=2!!
}
}

Dr. Purvi Ramanuj


Method overload
• It’s legal for a class to define more than one method
with the same name, as long as they have different
list of parameters
– Different number of parameter, or different type of
parameter, or different order
• The compiler will decide which method to use based
on the number and type of arguments you supply

Dr. Purvi Ramanuj


Unsuccessful overloading
• Return type is NOT enough!!
int foo (double d);
double foo (double d);
• Won’t compile
• What if in my code, I just have
foo(3.0);

Dr. Purvi Ramanuj


Overload example
class Overload{
int r;
String s;
public void setValue (int r, String s) {
this.r = r; this.s = s;
}
public void setValue (String s, int r) {
this.r =r; this.s =s;
}
public static void main (String[] args){
Overload o = new Overload();
o.setValue(10, “ok”);
o.setValue(“ok?”, 20); //both are OK!
}
}

The compiler will decide which method to use based on


the number and type of arguments
Dr. Purvi Ramanuj
you supply
Rewrite:
class Overload{
int r;
String s;
public void setValue (int r, String s) {
this.r = r; this.s = s;
}
public void setValue (String s, int r) {
this.setValue (r, s); //another usage of this
}
public static void main (String[] args){
Overload o = new Overload();
o.setValue(10, “ok”);
o.setValue(“ok?”, 20); //both are OK!
}
}

Avoid writing duplicate code


Dr. Purvi Ramanuj
Multiple constructor
• Can invoke one constructor from another
• Use this(para)
• Useful if constructors share a significant
amount of initialization code, avoid repetition.
• Notice: this() must be the first statement in a
constructor!! Can be called only once.

Dr. Purvi Ramanuj


Example revisited

class Circle{
double r;
public Circle(){
// r = 1.0; //default radius value;
this (1.0); //call another constructor
}
public Circle (double r) {
this.r = r; //same name!
}
public static void main(String[] args){
Circle c = new Circle(2.0); //OK
Circle c2 = new Circle(); // OK now!
}
}

Dr. Purvi Ramanuj


Write program :
• Write a program to find area of rectangle/square.
– One class called Rectangle
– Use overloaded setdimentions() method to set the
instance variable values
– Write overloaded constructors to call the
setdimentions() method.
– Use this keyword to call another constructor
– Another class called TestRectangle with main method.

Dr. Purvi Ramanuj


class Rectangle {
class TestRectangle {
int length;
int width; public static void main(String args[]) {
int area() { Rectangle r1,r2;
return length*width; r1= new Rectangle(7,5);
} r2= new Rectangle(7);
void setDimensions(int l, int w) { System.out.println("area of r1 is :
length = l; " + r1.area());
width = w;
} System.out.println("area of r2 is :
void setDimensions(int l) { " + r2.area());
setDimensions( l, l);
} }
Rectangle (int l, int w){ }
setDimensions(l,w);
}
Rectangle(int l){
this(l,l);
}
Dr. Purvi Ramanuj
}
• Find Output

Dr. Purvi Ramanuj


class Rectangle {
class TestRectangle {
int length;
public static void main(String args[]) {
int width;
int area() {
Rectangle r1,r2;
return length*width; r1= new Rectangle(7,5);
} r2= new Rectangle(7);
void setDimensions(int l, int w) { System.out.println("area of r1 is : "
+ r1.area());
length = l;
width = w;
} System.out.println("area of r2 is : "
+ r2.area());
void setDimensions(int l) {
setDimensions( l, l);
}
Rectangle (int l, int w){ r2=r1;
setDimensions(l,w); r1.setDimensions(9,5);
}
Rectangle(int l){ System.out.println("area of r2 is : "
this(l,l); + r2.area());
} }}
Dr. Purvi Ramanuj
}
Dr. Purvi Ramanuj
Example

Dr. Purvi Ramanuj


Comparing Object Reference
class equalex
{
public static void main(String args[])
{
String s1 = new String ("Purvi");
String s2 = new String ("Purvi");
System.out.println(s1==s2); //false
System.out.println(s1.equals(s2)); //true
}
}
Dr. Purvi Ramanuj
Output

Dr. Purvi Ramanuj


• In Java, the == operator compares that two
references are identical or not. Whereas
the equals() method compares two objects.
• Objects are equal when they have the same
state (usually comparing variables). Objects
are identical when they share the class identity.
• For example, the expression obj1==obj2 tests
the identity, not equality. While the
expression obj1.equals(obj2) compares equality.
Dr. Purvi Ramanuj
Find output
class equalex
{
public static void main(String args[])
{
String s1 = new String ("Purvi");
String s2 = new String ("Purvi");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
String s3 = new String();
s1=s3; // s3 refereeing to same place of s1
System.out.println(s1==s3);
}
}
Dr. Purvi Ramanuj
Dr. Purvi Ramanuj
What is Static Variables??

They are also called class Variables

These variable exist without depend on


instance of class

static int count;

Dr. Purvi Ramanuj


What is Static Variables??
Only 1 copy exist in JVM

Created when class Loaded

Exist even if no instance created

Dr. Purvi Ramanuj


Dr. Purvi Ramanuj
What is Static Methods??

They are also called class Methods

These method exist without depend on


instance of class

Invoke using class name


Dr. Purvi Ramanuj
Static method example
public class staticdemo
{
static int count;
static int getCount()
{
staticdemo.count++;
return count;
}
public static void main(String args[])
{
System.out.println("1 " + staticdemo.getCount());
System.out.println("2 " + staticdemo.getCount());
System.out.println("3 " + staticdemo.getCount());
}
}

Dr. Purvi Ramanuj


output

Dr. Purvi Ramanuj


What is Initializer Block??

Block with No Name

Cant directly call from application as No


Name

Dr. Purvi Ramanuj


When Initializer Block called??

Called on instance Before Constructor

Dr. Purvi Ramanuj


Dr. Purvi Ramanuj
How Execution take place??

Student s1=new Student();

1
E_Number
2 Give Default Values

Marks

3 Call Initialize Block


4 Call Constructor

Dr. Purvi Ramanuj


new
• 1 space for instance variable created
• 2. default value stored
• 3. if variable assignment
• 4. initializer block
• 5. code of constructor

Dr. Purvi Ramanuj


What is Class Initialize Block??

Used to initialize class variables

Declare using static word

Dr. Purvi Ramanuj


Dr. Purvi Ramanuj
• 5.24
• 5.25
• 66

Dr. Purvi Ramanuj


Object life cycle
• Life cycles of dynamically created objects
• C
– alloc() – use – free()
• C++
– new() – constructor() – use – destructor()
• Java
– new() – constructor() – use – [ignore / garbage
collection]

Dr. Purvi Ramanuj


Finalization – opposite of initialization
• Garbage collection can ONLY free the memory
resources
• Need finalize() to free other resources, for
example, network connection, DB connection,
file handler, etc.
• finalize() takes no argument, return void
• Invoked automatically by Java
• Rarely used for application-level programming

Dr. Purvi Ramanuj


Finalize method
• protected void finalize()
• Exa : Count no of instances alive
• Rectangle (int l, int w) {
count ++;
setDimentions(l,w);
}
..
protected void finalize() {
count--; } // used by garbage collector

(count should be static)


Dr. Purvi Ramanuj
• System.gc()

• Finaliseexa.java

Dr. Purvi Ramanuj


Example system.gc()
class finaliseexa {
static int count;
public static void main(String args[]) {
int length; finaliseexa r1,r2;
int width;
int area() { r1= new finaliseexa(7,5);
return length*width;
} r2= new finaliseexa(7);
void setDimensions(int l, int w) {
length = l;
System.out.println("area of r1 is : " + r1.area());
width = w; System.out.println("area of r2 is : " + r2.area());
}
void setDimensions(int l) { r2=r1;
setDimensions( l, l);
}
r1.setDimensions(9,5);
finaliseexa (int l, int w){ System.out.println("area of r2 is : " + r2.area());
setDimensions(l,w);
} System.out.println(count);
finaliseexa(int l){
this(l,l); System.gc();
}
protected void finalize() {
}
System.out.println("finalize called"); }
count--;
System.out.println(count);
}
{
count++;
} Dr. Purvi Ramanuj
Dr. Purvi Ramanuj
Dr. Purvi Ramanuj
Dr. Purvi Ramanuj
JDK Versions

Dr. Purvi Ramanuj


Java SE Version Version Number Release Date

JDK 1.0(Oak) 1 Jan-96

JDK 1.1 1.1 Feb-97

J2SE 1.2 (Playground) 1.2 Dec-98

J2SE 1.3(Kestrel) 1.3 May-00

J2SE 1.4(Merlin) 1.4 Feb-02

J2SE 5.0(Tiger) 1.5 Sep-04

Java SE 6(Mustang) 1.6 Dec-06

Java SE 7(Dolphin) 1.7 Jul-11

Java SE 8 1.8 Mar-14

Java SE 9 9 September, 21st 2017

Java SE 10 10 March, 20th 2018

Java SE 11 11 September, 25th 2018

Java SE 12 12 March, 19th 2019

Java SE 13 13 September, 17th 2019

Java SE 14 14 March, 17th 2020

Java SE 15 15 September, 15th 2020

Java SE 16 16 March, 16th 2021

Java SE 17 17 September, 14th 2021


Dr. Purvi Ramanuj
Popular Java IDEs
• NetBeans
• Eclipse

Dr. Purvi Ramanuj


Differences between Java EE and Java SE
J av a t ec hnolo gy

programming language Java platform

Standard Enterprise Micro


Edition (Java Edition (Java Edition (Java JavaFX
SE) EE) ME)

• The Java programming language is a high-level object-


oriented language that has a particular syntax and style.
• A Java platform is a particular environment in which
Java programming language applications run.
Dr. Purvi Ramanuj
• All Java platforms = Java Virtual Machine (VM)
+ application programming interface (API).
• The Java Virtual Machine is a program, for a
particular hardware and software platform,
that runs Java technology applications.
• An API is a collection of software components
that you can use to create other software
components or applications.

Dr. Purvi Ramanuj


• Java SE
• When most people think of the Java programming language,
they think of the Java SE API.

• Java SE's API provides the core functionality of the Java


programming language.

• It defines everything from the basic types and objects of the


Java programming language to high-level classes that are used
for networking, security, database access, graphical user
interface (GUI) development, and XML parsing.
• In addition to the core API, the Java SE platform consists of a
virtual machine, development tools, deployment technologies,
and other class libraries and toolkits commonly used in Java
technology applications.

Dr. Purvi Ramanuj


• JSE − Java Standard Edition using this, you can develop stand-alone applications. This provides the
following packages −
• java.lang − This package provides the language basics.
• java.util − This package provides classes and interfaces (API’s) related to collection framework, events,
data structure and other utility classes such as date.
• java.io − This package provides classes and interfaces for file operations, and other input and output
operations.
• java.math − This package provides classes and interfaces for multiprecision arithmetics.
• java.nio − This package provides classes and interfaces the Non-blocking I/O framework for Java
• java.net − This package provides classes and interfaces related to networking.
• java.security − This package provides classes and interfaces such as key generation, encryption, and
decryption which belongs to the security framework.
• java.sql − This package provides classes and interfaces for accessing/manipulating the data stored in
databases and data sources.
• java.awt − This package provides classes and interfaces to create GUI components in Java.
• java.text − This package provides classes and interfaces to handle text, dates, numbers, and messages.
• java.rmi − Provides the RMI package.
• java.time − The main API for dates, times, instants, and durations.
• java.beans − The java.beans package contains classes and interfaces related to JavaBeans
components.
Dr. Purvi Ramanuj
• Java EE
• The Java EE platform is built on top of the Java SE platform.
• The Java EE platform provides an API and runtime environment
for developing and running large-scale, multi-tiered, scalable,
reliable, and secure network applications.
• JEE − Java Enterprise Edition using this, you can develop
Enterprise applications. This includes
• API’s like Servlets, WebSocket, JavaServerFaces, Unified
Expression Language.
• Web service specifications like API for Restful web services, API
for JSON processing, API for JSON Bonding, Architecture for XML
binding, API for XML web services.
• Enterprise specifications like Dependency Injection, Enterprise
JavaBean, Java Persistence API, Java Transaction API.
Dr. Purvi Ramanuj
• Java ME
• The Java ME platform provides an API and a small-footprint
virtual machine for running Java programming language
applications on small devices, like mobile phones.
• The API is a subset of the Java SE API, along with special class
libraries useful for small device application development.
• Java ME applications are often clients of Java EE platform
services.
• JME − Java Micro Edition using this, you can develop
applications that run on small scale devices like mobile
phones.

Dr. Purvi Ramanuj


• JavaFX
• JavaFX is a platform for creating rich internet
applications using a lightweight user-interface API.
• JavaFX applications use hardware-accelerated
graphics and media engines to take advantage of
higher-performance clients and a modern look-and-
feel as well as high-level APIs for connecting to
networked data sources.
• JavaFX applications may be clients of Java EE
platform services.
Dr. Purvi Ramanuj
JDK Editions
• Java Standard Edition (J2SE)
– J2SE can be used to develop client-side standalone
applications or applets.
• Java Enterprise Edition (J2EE)
– J2EE can be used to develop server-side applications
such as Java servlets, Java ServerPages, and Java
ServerFaces.
• Java Micro Edition (J2ME).
– J2ME can be used to develop applications for mobile
devices such as cell phones.
This book uses J2SE to introduce Java
programming.
Dr. Purvi Ramanuj
Java Runtime Environment (JRE)
• JRE refers to a runtime environment in which
Java bytecode can be executed.
• It implements the JVM (Java Virtual Machine)
and provides all the class libraries and other
support files that JVM uses at runtime.
• Basically, it is an implementation of the JVM
which physically exists.

Dr. Purvi Ramanuj


Java Development Kit (JDK)
• It is the tool necessary to
– Compile
– Document
– Package Java programs
• The JDK completely includes JRE which contains tools for Java programmers.
• Along with JRE, it includes an
– compiler (javac)
– application launcher (java / appletviewer)
– interpreter/loader
– archiver (jar)
– documentation generator (javadoc)
– other tools needed in Java development.
• In short, it contains JRE + development tools.
• The Java Development Kit is freeware available on
https://www.oracle.com/technetwork/java/javase/downloads/index.html

Dr. Purvi Ramanuj


JVM vs JRE vs JDK

Dr. Purvi Ramanuj


•Thank you

Dr. Purvi Ramanuj

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy