基本类型,或者叫作内置类型,是JAVA中不一样于类的特殊类型。java
Java中的简单类型从概念上分为四种:实数、整数、字符、布尔值。可是有一点须要说明的是,Java里面只有八种原始类型,其列表以下:数据结构
实数:double、floatdom
整数:byte、short、int、longide
字符:charspa
布尔值:booleancode
复杂类型和基本类型的内存模型本质上是不同的,简单数据类型的存储原理是这样的:全部的简单数据类型不存在“引用”的概念,简单数据类型都是直接存储在内存中的内存栈上的,数据自己的值就是存储在栈空间里面,而Java语言里面只有这八种数据类型是这种存储模型;而其余的只要是继承于Object类的复杂数据类型都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象自己的值存储在内存堆上的。对象
Java的简单数据讲解列表以下:继承
int:int为整数类型,在存储的时候,用4个字节存储,范围为-2,147,483,648到2,147,483,647,在变量初始化的时候,int类型的默认值为0。内存
short:short也属于整数类型,在存储的时候,用2个字节存储,范围为-32,768到32,767,在变量初始化的时候,short类型的默认值为0,通常状况下,由于Java自己转型的缘由,能够直接写为0。字符串
long:long也属于整数类型,在存储的时候,用8个字节存储,范围为-9,223,372,036,854,775,808到9,223,372,036, 854,775,807,在变量初始化的时候,long类型的默认值为0L或0l,也可直接写为0。
byte:byte一样属于整数类型,在存储的时候,用1个字节来存储,范围为-128到127,在变量初始化的时候,byte类型的默认值也为0。
float:float属于实数类型,在存储的时候,用4个字节来存储,范围为32位IEEEE 754单精度范围,在变量初始化的时候,float的默认值为0.0f或0.0F,在初始化的时候能够写0.0。
double:double一样属于实数类型,在存储的时候,用8个字节来存储,范围为64位IEEE 754双精度范围,在变量初始化的时候,double的默认值为0.0。
char:char属于字符类型,在存储的时候用2个字节来存储,由于Java自己的字符集不是用ASCII码来进行存储,是使用的16位Unicode字符集,它的字符范围便是Unicode的字符范围,在变量初始化的时候,char类型的默认值为'u0000'。
boolean:boolean属于布尔类型,在存储的时候不使用字节,仅仅使用1位来存储,范围仅仅为0和1,其字面量为true和false,而boolean变量在初始化的时候变量的默认值为false。
Integer是int的封装类,里面有不少进行处理的静态方法
Integer是对象而int不是,内存的分配位置也不同
int是一种基本数据类型,而Integer是相应于int的类类型,称为对象包装。
实现这种对象包装的目的主要是由于类可以提供必要的方法,用于实现基本数据类型的数值与可打印字符串之间的转换,以及一些其余的实用程序方法;
另外,有些数据结构库类只能操做对象,而不支持基本数据类型的变量,包装类提供一种便利的方式,可以把基本数据类型转换成等价的对象,从而能够利用数据结构库类进行处理。
int 是基本类型,(int)(Math.Random()*100)就是一个数,能够进行加见乘除。 Integer是class ,那么 new Integer(temp)就是一个对象了,能够用到Integer这个class的方法,例如用intvalue()能够返回这个int的值。int a=1;这是基本数据类型是能参与运算的.而Integer b= new Integer(1);c=b.floatvalue;Float a= new Float(null);是能够的用Float初始化一个对象这个a有不少方法而float a;就没有由于原始没有引用类,java 提供两种不一样的类型:引用类型(或者封装类型,Warpper)和原始类型(或内置类型,Primitive)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每一个原始类型提供了封装类。
原始类型 封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
引用类型和原始类型的行为彻底不一样,而且它们具备不一样的语义。引用类型和原始类型具备不一样的特征和用法,它们包括:大小和速度问题,这种类型以哪一种类型的数据结构存储,当引用类型和原始类型用做某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
1 、Boolean VS boolean
public final class Boolean extends Object implementsSerializable,Comparable
Boolean 类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。此外,此类还为boolean和String的相互转换提供了许多方法,并提供了处理 boolean时很是有用的其余一些常量和方法。
二、 Byte VS byte
public final class Byte extends Number implements Comparable
Byte类将基本类型 byte的值包装在一个对象中。一个Byte类型的对象只包含一个类型为 byte的字段。此外,该类还为 byte和 String的相互转换提供了几种方法,并提供了处理 byte时很是有用的其余一些常量和方法。
三、 Character VS char
public final class Character extends Object implements Serializable, Comparable
Character类在对象中包装一个基本类型char的值。
Character类型的对象包含类型为char的单个字段。此外,该类提供了几种方法,以肯定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
4 、Double VS double
public final class Double extends Number implements Comparable
Double类在对象中包装了一个基本类型double的值。每一个Double类型的对象都包含一个double类型的字段。此外,该类还提供了多个方法,能够将double转换为String,将String转换为double,还提供了其余一些处理double时有用的常量和方法。
五、 Float VS float
public final class Float extends Number implements Comparable
Float类在对象中包装了一个float基本类型的值。Float类型的对象包含一个float类型的字段。此外,此类提供了几种方法,可在float类型和String类型之间互相转换,而且还提供了处理float类型时很是有用的其余一些常量和方法。
六、 Integer VS int
public final class Integer extends Number implements Comparable
Integer类在对象中包装了一个基本类型int的值。Integer类型的对象包含一个int类型的字段。
此外,该类提供了多个方法,能在int类型和String类型之间互相转换,还提供了处理int类型时很是有用的其余一些常量和方法。
7 Long VS long
public final class Long extends Number implements Comparable
Long类在对象中封装了基本类型long的值。每一个Long类型的对象都包含一个long类型的字段。
此外,该类提供了多个方法,能够将long转换为String,将String转换为long,除此以外,还提供了其余一些处理long时有用的常量和方法。
八、 Short VS short
public final class Short extends Number implements Comparable
Short类在对象中包装基本类型short的值。一个Short类型的对象只包含一个short类型的字段。另外,该类提供了多个方法,能够将short转换为String,将String转换为short,同时还提供了其余一些处理short时有用的常量和方法。
九、public final class Voidextends Object
Void 类是一个不可实例化的占位符类,它保持一个对表明 Java 关键字 void 的 Class 对象的引用。
类的对象才能为null,不能把null赋值给一个变量不能,如int m=null;但能够String s=null;由于String是个类