背景

最近被一个问题难倒:问到Java的基本数据类型有8种,具体是哪几个?一起复习下:

Java数据类型概述

变量就是申请内存来存储值,即当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,确定了变量的类型,即确定了数据需分配内存空间的大小,数据在内存的存储方式。

Java两大数据类型:内置数据类型/基本数据类型、引用数据类型

  • 基本数据类型:都是直接存储在内存中的内存上,数据本身的值就是存储在栈空间;
  • 引用数据类型:引用类型继承与Object类,引用(即指针)是存储在有序的内存栈上,而对象本身的值存储在内存堆中。

内置数据类型/基本数据类型(8种)

  • 整数型(4种):byte、short、int、long、
  • 浮点型(2种):float、double
  • 字符类型(1种):char
  • 布尔类型(1种):boolean

具体如下:

类型 概述 范围 默认值 作用 例子
byte 8位、有符号,以二进制补码表示的整数 -2^7 ~ (2^7-1),即 -128 ~ 127 0 byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int的四分之一; 例子:byte a=-2
short 16位,有符号,以二进制补码表示的整数 -2^15 ~ 2^15-1, 即 -32768 ~ 32767 0 short占用空间是int的二分之一 例子:short s=-20000
int 32位、有符号,以二进制补码表示的整数 -2^31 ~ 2^31-1 0 一般整数型默认为int类型; 例子:int=-200000
long 64位、有符号,以二进制补码表示的整数 -2^63 ~ 2^63-1 0L 主要使用在需要比较大整数的系统上 例子:long a=10000L
float 32位、单精度,浮点数 浮点数不能用于表示精确的值 0.0f 在存储大型浮点数组的时候可以节省内存空间 例子:float f1=0.3f
double 64位、双精度,浮点数 double也不能表示精确的值 0.0d 浮点数的默认类型为double类型 例子:double d1=12.3
boolean 表示一位的信息 取值:true/false false 只作为一种标志类记录 true/false 情况 例子:boolean one=true
char 是一个单一的16位Unicode字符 \u0000(即0)~\uffff(65,535) '\u0000' char可以存储任何字符 例子:char letter='A'

引用数据类型(3种)

  • 引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时候被指定为一个特定的类型,声明之后不能改变。
  • 引用数据类型包括:类(对象)、接口、数组。
  • 所有引用类型默认值都是null.
  • 一个引用变量可以用于引用任何与之兼容的类型。

Java的8种基本数据类型和3种引用数据类型的更多相关文章

  1. 【js实例】js中的5种基本数据类型和9种操作符

    js中的5中基本数据类型 js标识符 第一个字符必须为字母,下划线,或美元符 其他字符可以是字母,下划线,美元符,数字 js标识符区分大小写 标识符不能使关键字和保留字 关键字: break do i ...

  2. java 8 Stream中操作类型和peek的使用

    目录 简介 中间操作和终止操作 peek 结论 java 8 Stream中操作类型和peek的使用 简介 java 8 stream作为流式操作有两种操作类型,中间操作和终止操作.这两种有什么区别呢 ...

  3. Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)

    Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477 一.S ...

  4. 菜鸡的Java笔记 第十三 String 类的两种实例化方法

    String 类的两种实例化方法 String 类的两种实例化方式的区别 String 类对象的比较 Stirng 类对象的使用分析 /*    1.String 类的两种实例化方式的区别       ...

  5. java中基本数据类型和C语言中基本数据类型转换

    java中 1 short = 2 byte 1 char  = 2 byte 1 int    = 4 byte 1 long = 8 byte C语言中 typedef unsigned char ...

  6. js基本数据类型和typeof

    JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 null:空.无.表示不存在,当为对象的属性赋值为null,表示删除该属性 undefined:未定义.当声明变量却没有赋值时会显 ...

  7. 基本数据类型和string类型的转换

    基本数据类型转string类型: 方式1:fmt.Sprintf("%参数", 表达式) [个人习惯这个,灵活] 函数的介绍: func Sprintf func Sprintf( ...

  8. js的基本数据类型和typeof的关系

    JavaScript数据类型是非常简洁的,它定义了6中基本数据类型 null:空.无.表示不存在,当为对象的属性赋值为null,表示删除该属性 undefined:未定义.当声明变量却没有赋值时会显示 ...

  9. java中,Date数据类型和JSONObject数据类型之间的转换

    import java.text.SimpleDateFormat;import java.util.Date;import net.sf.json.JSONObject; public class ...

随机推荐

  1. JavaScript -- Enumerator

    -----022-Enumerator.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=&q ...

  2. 前端通信:ajax设计方案(七)--- 增加请求错误监控、前端负载均衡以、请求宕机切换以及迭代问题修复

    距离上个迭代过了很长时间,中间经历了很多事情,也在每个空余时间构思了这个迭代的东西以及下个迭代要做的东西.时间周期稍微长了,望见谅. 而且,至今这个开源库的start也已经到了165个了,会支持关注和 ...

  3. vmware workstation 下安装ubuntu

    安装时我是借鉴 https://blog.csdn.net/xiaohua0877/article/details/78507631 期间遇到几个问题 键盘不好使,解决办法是重新运行wmware wo ...

  4. C++ string中的几个小陷阱,你掉进过吗?

    C++开发的项目难免会用到STL的string,使用管理都比char数组(指针)方便的多,但在得心应手的使用过程中也要警惕几个小陷阱,避免我们项目出bug却迟迟找不到原因. 1.  结构体中的stri ...

  5. mac 入门操作

    1. 打开制定目录 在finder里使用command+shift+g 快捷键可以完成到达某路径的操作选中文件/目录,显示简介可以查看路径 2. home end pageUp pageDown 在苹 ...

  6. 线性回归浅谈(Linear Regression)

    在现实生活中普遍存在着变量之间的关系,有确定的和非确定的.确定关系指的是变量之间可以使用函数关系式表示,还有一种是属于非确定的(相关),比如人的身高和体重,一样的身高体重是不一样的.       线性 ...

  7. 版本管理(一)之Git和GitHub的区别(优点和缺点)

    Git 简介 https://www.yiibai.com/git/getting-started-git-basics.html Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或 ...

  8. ActiveMQ P2P版的HelloWorld

    1.2 JMS应用程序接口 ConnectionFactory: 用户用来创建到JMS提供者的连接的被管对象.JMS客户通过可移植的接口访问连接,这样当下层的实现改变时,代码不需要进行修改. 管理员 ...

  9. Linux的IO模型

    在输入输出系统一文中介绍了系统内核操作IO设备的机制. 我们了解到内核可以直接访问IO设备, 用户进程无法IO设备. 就是说IO操作需要分为两个过程, 内核从IO设备读取数据保存到内核空间, 将数据由 ...

  10. C++中的 CONST 含义(从#define 到 CONST 的转变)

    const 与define 两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一些.#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似 ...