Java的8种基本数据类型和3种引用数据类型
背景
最近被一个问题难倒:问到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种引用数据类型的更多相关文章
- 【js实例】js中的5种基本数据类型和9种操作符
js中的5中基本数据类型 js标识符 第一个字符必须为字母,下划线,或美元符 其他字符可以是字母,下划线,美元符,数字 js标识符区分大小写 标识符不能使关键字和保留字 关键字: break do i ...
- java 8 Stream中操作类型和peek的使用
目录 简介 中间操作和终止操作 peek 结论 java 8 Stream中操作类型和peek的使用 简介 java 8 stream作为流式操作有两种操作类型,中间操作和终止操作.这两种有什么区别呢 ...
- Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)
Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477 一.S ...
- 菜鸡的Java笔记 第十三 String 类的两种实例化方法
String 类的两种实例化方法 String 类的两种实例化方式的区别 String 类对象的比较 Stirng 类对象的使用分析 /* 1.String 类的两种实例化方式的区别 ...
- java中基本数据类型和C语言中基本数据类型转换
java中 1 short = 2 byte 1 char = 2 byte 1 int = 4 byte 1 long = 8 byte C语言中 typedef unsigned char ...
- js基本数据类型和typeof
JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 null:空.无.表示不存在,当为对象的属性赋值为null,表示删除该属性 undefined:未定义.当声明变量却没有赋值时会显 ...
- 基本数据类型和string类型的转换
基本数据类型转string类型: 方式1:fmt.Sprintf("%参数", 表达式) [个人习惯这个,灵活] 函数的介绍: func Sprintf func Sprintf( ...
- js的基本数据类型和typeof的关系
JavaScript数据类型是非常简洁的,它定义了6中基本数据类型 null:空.无.表示不存在,当为对象的属性赋值为null,表示删除该属性 undefined:未定义.当声明变量却没有赋值时会显示 ...
- java中,Date数据类型和JSONObject数据类型之间的转换
import java.text.SimpleDateFormat;import java.util.Date;import net.sf.json.JSONObject; public class ...
随机推荐
- Chrome 的 Material Design Refresh UI初探
今天Chrome自动升级到69.0.3497.92, 发现UI已经变成了"Material Design Refresh". Chrome 浏览器的页面标签已经不再像以往那样倾斜和 ...
- Android 开发工具类 35_PatchUtils
增量更新工具类[https://github.com/cundong/SmartAppUpdates] import java.io.File; import android.app.Activity ...
- 关于Android系统的启动流程
当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?什么是Linux内核?桌面系统linux内核与Android系统linux内核有什么区别?什么是引导装载程序?什么是 ...
- Javac中对import关键字进行的处理
参考文章: (1)关于类的符号输入过程第二篇 ImportScope中存储的为ImportEntry,继承了Scope.Entry类并且多定义了个origin属性,也就是符号的最终来源.除此之外还对g ...
- chrome版本与对应的chromedriver驱动【转载】
chrome版本与对应的谷歌驱动(chromedriver) 1.下载chromedriver:http://chromedriver.storage.googleapis.com/index.htm ...
- wangEditor使用简记
页面 <!--用父容器来控制宽度--> <div style="width:800px"> <!--用当前元素来控制高度--> <text ...
- 配置Zookeper
在整个的codis架构之中,codis-proxy将作为所有的codis-server的对外的代理,而在整个的处理之中,codis-proxy所保存的数据一定是所有的codis-server的信息,那 ...
- Centos7 开启端口
CentOS7默认没有使用iptables,所以通过编辑iptables的配置文件来开启80端口是不可以的. CentOS 7 采用了 firewalld 防火墙. 如要查询是否开启80端口: [ro ...
- css text-align文字两端对齐
text-align:start | end | left | right | center | justify | match-parent | justify-all justify: 内容两端对 ...
- 面试:vector类的简单实现
vector类的简单实现 #include <vector> #include <iostream> #include <cstring> #include < ...