What are Java's primitive types?

85,063

Solution 1

In Java, every variable has a type declared in the source code. There are two kinds of types: reference types and primitive types. Reference types are references to objects. Primitive types directly contain values. There are 8 primitive types:

  • byte
  • short
  • int
  • long
  • char
  • float
  • double
  • boolean

Solution 2

What do people mean by "Types"?

In the real world there are different "types" of things. e.g. There are many different "types" of vehicles: "sports cars" for driving fast, "utes" for carrying tools, "trucks" for transporting lots of goods, and limousines for traveling in luxury.

In the same way, in Java, you can have different "types" of data which serve different purposes: e.g. numbers (are used to add/subtract etc), "strings" are used to communicate words and letters. You cannot use letters to add - that just does not make sense, nor could you use numbers to write a sentence.

Primitives vs reference types - what does it mean? What's the difference?

Now there are some "types" of data which are basic. These are already created by the boffins at Redmond/Sun. These are called "primitive" java types, and they store the values within themselves. What does that mean? It's best explained by example:

Example of a primitive type

If I gave you a $50 note, then the note in and of itself is worth $50. The value is stored in the note itself.

Primitives Juxtaposed with Reference Types

Imagine that instead of giving you $50 I gave you an piece of paper which has on it an address to a safe deposit box. The piece of paper i gave you is not worth $50 in and of itself, but it points to an address where you can get your $50. This piece of paper is basically a "reference" type, because it doesn't store any values within and in and of itself, it merely points to certain addresses.

But I can give you an address to anything: planes, castles, rainforrests: anything!

Summary

You can't just hand someone a plane or a Shinkansen train from your back pocket: you just hand them an address to it. Juxtapose this with having $50, or any type of currency: the actual substance is in your back pocket.

That in an nutshell is the difference between primitive and reference types.

(Corny analogy used to help you understand and remember.)

Solution 3

From the Java Language Specification, Chapter 4. Types, Values, and Variables:

The Java programming language is a statically typed language, which means that every variable and every expression has a type that is known at compile time.

The Java programming language is also a strongly typed language, because types limit the values that a variable [...] can hold or that an expression can produce, limit the operations supported on those values, and determine the meaning of the operations. Strong static typing helps detect errors at compile time.

The types of the Java programming language are divided into two categories: primitive types and reference types. The primitive types [...] are the boolean type and the numeric types. The numeric types are the integral types byte, short, int, long, and char, and the floating-point types float and double. The reference types [...] are class types, interface types, and array types. There is also a special null type. An object [...] is a dynamically created instance of a class type or a dynamically created array. The values of a reference type are references to objects. All objects, including arrays, support the methods of class Object [...].

Solution 4

Primitive types in Java are none-class types. They only store values.

double d = 3.0;
d.intValue();  //compiler error!
Double d2 = new Double(3.0);
d2.intValue();  //works!

Solution 5

There are reference types, primitives types and void

For each primitive types (and void) there is a wrapper type which defines a constant called TYPE which have the class of the primitive type.

A compiler way to get a class for a primitive type is to use the .class notation. e.g.

Class<Integer> intClass = int.class; // == Integer.TYPE
Class<Void> voidClass = void.class; // == VOID.TYPE
Share:
85,063
Android Girl
Author by

Android Girl

i am working in a software company as an android developer.join as a freshers.

Updated on July 09, 2022

Comments

  • Android Girl
    Android Girl almost 2 years

    What are primitive type in Java?

    What is the difference between a primitive type and a reference type?

    How many primitive types does Java have, and what are they?

  • Sufiyan Ghori
    Sufiyan Ghori over 9 years
    also, the reference to the Object are passed by value.
  • Michael Borgwardt
    Michael Borgwardt over 9 years
    @sufiyan: correct, but what does that have to do with this question?
  • Sufiyan Ghori
    Sufiyan Ghori over 9 years
    nothing in particular, i just want the future readers not to get confused with this statement "references to objects.", since a lot of beginners starts to assume that Java is pass-by-reference based on the statement "Reference types are references to objects".
  • Shangeeth Sivan
    Shangeeth Sivan about 7 years
    Can be more descriptive