C/C++ Pointers vs Java references

Java Programming C++Java8

Pointers

In C, C++ programming languages, a pointer is a variable that holds the address of another variable.

example

#include <iostream>
using namespace std;
 
int main() {
   //int variable
   int i = 8;

   //pointer variable
   int * pI;

   //assign the address of i to its pointer
   pI = &amp;i;

   //print the number
   cout<<i<<endl;

   //print the address of the number
   cout<<pI<<endl;

   //print the value pointed by pointer
   count<<*pI<<endl;

   //change the value of variable using its pointer
   *pI = 10;

   //print the number
   cout<<i<<endl;
}

Output

8
0x7fee1ae7bc94
8
10

References

In java programming languages, a reference is a variable that refers to an object and using which we can utilize the properties and functions of an object.

example

Live Demo

public class Tester {
   public static void main(String[] args) {
      Student student = new Student();        
      student.setName("Mahesh");
      System.out.println(student.getName());    
   }
}

class Student {
   String name;

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}

Output

Mahesh

Differences between Pointers and References

Following are some of the differences between C/C++ Pointers and References.

  • No Pointer Arithmetic in Java. Pointers are memory addresses and a pointer points to a memory address of a variable. In C/C++, a pointer can be incremented/decremented to point to a new address but in Java, arithmetic operations on references are not allowed.

  • No Pointer Manipulation in Java Although a reference internally uses a pointer but Java does not allow any manipulation to an underlying pointer using a reference variable. It makes java more secure and robust. A reference can refer to an object or be null only.

  • No Casting of pointers in Java In C/C++, we can cast int* to char* but in Java, only related objects can be cast e.g. object of the same hierarchy.

raja
Published on 20-Jul-2018 16:20:42
Advertisements