What are Java's primitive types?
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
Android Girl
i am working in a software company as an android developer.join as a freshers.
Updated on July 09, 2022Comments
-
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?
-
Ben Pearson over 11 yearsIn addition to the answers below, it might help to also know the difference between variables of primitive data type and scalar variables as sometimes the distinction is not apparent: stackoverflow.com/q/6623130/346232
-
Hari Das about 10 yearsData type which holds values only are called primitive data types(byte,short,int etc.). And the other data types which contains references are called as reference data type (Integer,Boolean,String etc...).
-
Nisal Edu over 6 years
-
Jameer Mulani over 6 years
-
-
Sufiyan Ghori over 9 yearsalso, the reference to the
Object
are passed by value. -
Michael Borgwardt over 9 years@sufiyan: correct, but what does that have to do with this question?
-
Sufiyan Ghori over 9 yearsnothing 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 about 7 yearsCan be more descriptive