基本类型,或者叫做内置类型,是java中不同于类的特殊类型。

java中的简单类型从概念上分为四种:实数、整数、字符、布尔值。但是有一点需要说明的是,java里面只有八种原始类型,其列表如下:

  实数:double、float

  整数:byte、short、int、long

  字符:char

  布尔值:boolean

复杂类型和基本类型的内存模型本质上是不一样的,简单数据类型的存储原理是这样的:所有的简单数据类型不存在“引用”的概念,简单数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面,而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 extendsObject  implementsSerializable,Comparable<Boolean>

Boolean 类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。此外,此类还为boolean和String的相互转换提供了许多方法,并提供了处理 boolean时非常有用的其他一些常量和方法。

2、 Byte VS byte

public final class Byteextends NumberimplementsComparable<Byte>

Byte类将基本类型 byte的值包装在一个对象中。一个Byte类型的对象只包含一个类型为 byte的字段。此外,该类还为 byte和 String的相互转换提供了几种方法,并提供了处理 byte时非常有用的其他一些常量和方法。

3、 Character VS char

public final class Character extends Object  implements Serializable, Comparable<Character>

Character类在对象中包装一个基本类型char的值。
       Character类型的对象包含类型为char的单个字段。此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。

4 、Double VS double

public final class Double extends Number implements Comparable<Double>

Double类在对象中包装了一个基本类型double的值。每个Double类型的对象都包含一个double类型的字段。此外,该类还提供了多个方法,可以将double转换为String,将String转换为double,还提供了其他一些处理double时有用的常量和方法。

5、 Float VS float

public final class Float extends Number implements Comparable<Float>

Float类在对象中包装了一个float基本类型的值。Float类型的对象包含一个float类型的字段。此外,此类提供了几种方法,可在float类型和String类型之间互相转换,并且还提供了处理float类型时非常有用的其他一些常量和方法。

6、 Integer VS int

public final class Integer extends Number implements Comparable<Integer>

Integer类在对象中包装了一个基本类型int的值。Integer类型的对象包含一个int类型的字段。

此外,该类提供了多个方法,能在int类型和String类型之间互相转换,还提供了处理int类型时非常有用的其他一些常量和方法。

7 Long VS long
public final class Long extends Number implements Comparable<Long>

Long类在对象中封装了基本类型long的值。每个Long类型的对象都包含一个long类型的字段。

此外,该类提供了多个方法,可以将long转换为String,将String转换为long,除此之外,还提供了其他一些处理long时有用的常量和方法。

8、 Short VS short
public final class Short extends Number implements Comparable<Short>

Short类在对象中包装基本类型short的值。一个Short类型的对象只包含一个short类型的字段。另外,该类提供了多个方法,可以将short转换为String,将String转换为short,同时还提供了其他一些处理short时有用的常量和方法。

9、public final class Voidextends Object

Void 类是一个不可实例化的占位符类,它保持一个对代表 JAVA关键字 void 的 Class 对象的引用。

类的对象才能为null,不能把null赋值给一个变量不能,如int m=null;但可以String s=null;因为String是个类。

转载于:https://blog.51cto.com/xiaodu1993/1262724

Java各种数据类型详细介绍及其区别相关推荐

  1. 各类数据类型的用法java_Java各种数据类型详细介绍及其区别

    基本类型,或者叫做内置类型,是java中不同于类的特殊类型. java中的简单类型从概念上分为四种:实数.整数.字符.布尔值.但是有一点需要说明的是,java里面只有八种原始类型,其列表如下: 实数: ...

  2. Java基本数据类型详细介绍一览

    关键字 类型 长度 说明 表示方法 默认值 最小值 最大值 byte 整数 8bit 有符号 二进制补码 0 −27=−128-2^7=-128−27=−128 27−1=1272^7-1=12727 ...

  3. VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别.ziw

    2017年1月10日, 星期二 VMware网络连接模式-桥接.NAT以及仅主机模式的详细介绍和区别 在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机 ...

  4. java中的泛型是什么_Java中泛型是什么?Java泛型的详细介绍

    本篇文章给大家带来的内容是关于Java中泛型是什么?Java泛型的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.什么是泛型? Java泛型设计原则:只要在编译时期没有出 ...

  5. java中Cookie详细介绍

    Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是 ...

  6. Java线程池详细介绍与使用

    文章目录 前言 一.线程池基础 1.什么是线程池 2.为什么使用线程池 3.线程池有那些优势 二.线程池使用 1.Java内置线程池:ThreadPoolExecutor 2.通过Executor工厂 ...

  7. java之Stack详细介绍

    1  Stack介绍 Stack简介 Stack是栈.它的特性是:先进后出(FILO, First In Last Out). java工具包中的Stack是继承于Vector(矢量队列)的,由于Ve ...

  8. VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别

    在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥 ...

  9. java基础数据类型与String类型区别

    区别:Java内存存放位置不一样,基本数据类型存在栈(stack),String的对象实例存在堆(heap).另外String,不是基本数据类型,判断是否相等,不能使用==,而应该使用equals方法 ...

最新文章

  1. 2021 年技术 5 大趋势
  2. 【转】Android真机抓屏- Android Screen Monitor
  3. 【好文推荐】查看mysql安装位置
  4. http请求响应的组成部分的介绍 用cherome查看请求响应内容 curl命令行的使用
  5. MySQLWorkbench链接MySQL数据库
  6. java search 不能使用方法_java – 无法使用TERMS QUERY从ELASTIC SEARCH查询字母数字字段...
  7. 每天进步一点点《ML - 逻辑回归》
  8. 2017.9.24 三色二叉树 思考记录
  9. python一次性输入多个数_python如何利用input函数输入多个参数?
  10. ~~并查集模板(数据结构)(附题目AcWing 836. 合并集合)
  11. jq cookie的使用
  12. JAVA调用海康威视SDK
  13. 计算机c盘红色,win7系统c盘空间不足变红了如何解决_windows7的C盘变成红色怎么办...
  14. [转]94个比付费软件更好的免费软件
  15. 微信小程序使用三元运算符
  16. 中国AI方法影响越来越大,天大等从大量文献中挖掘AI发展规律
  17. 说出ArrayList,Vector,nbsp;Linke…
  18. 个人博客地址,http://devopslinux.com/
  19. 基于STM32的单片2KW+全数控移相全桥开关电源研发记录
  20. platform设备驱动模型理解

热门文章

  1. 代友招中高级.NET开发工程师【上海-徐汇】
  2. Mysql Explain 详解
  3. Failed to resolve:com.android.support:appcompat-v7
  4. 提高sqlmap爆破效率
  5. iOS 9应用开发教程之ios9中实现按钮的响应
  6. 帆软报表调用mysql存储过程_FineReport单行与数据库交互的方法
  7. mysql导出数据 程序_MySQL数据导出与导入程序代码
  8. python socket发送组播数据_python3通过udp实现组播数据的发送和接收操作
  9. oauth最后的确认按钮_绕过GitHub的OAuth授权验证机制($25000)
  10. 奥密克戎新毒株XE出现!传播速度快10%