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 ...
随机推荐
- Elasticsearch聚合 Date Histogram聚合
转 http://www.cnblogs.com/xing901022/p/4951603.html Elasticsearch的聚合主要分成两大类:metric和bucket,2.0中新增了pipe ...
- Spring Cloud Hystrix
接上篇: Spring Cloud Eureka 使用命令开启两个服务提供者 java -jar .\hello--SNAPSHOT.jar --server.port= java -jar .\he ...
- ThreadPoolExecutor 中的 shutdown() 、 shutdownNow() 、 awaitTermination() 的用法和区别
Java并发编程中在使用到ThreadPoolExecutor时,对它的三个关闭方法(shutdown().shutdownNow().awaitTermination())的异同点如下: shutd ...
- php -- 获取函数参数
----- 015-parameter.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv=&q ...
- JavaScript -- Math
----- 016-Math.html ----- <!DOCTYPE html> <html> <head> <meta http-equiv=" ...
- Python学习--08函数式编程
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数. 高阶函数 Python支持高阶函数(Higher-order function). 什么是高阶函数呢?把函数作为参 ...
- docker cgroup技术之cpu和cpuset
在centos7的/sys/fs/cgroup下面可以看到与cpu相关的有cpu,cpuacct和cpuset 3个subsystem.cpu用于对cpu使用率的划分:cpuset用于设置cpu的亲和 ...
- map的容量的获取
在go语言中,有两个内建函数分别是len(),cap(),前者用于获取容器的具体内容个数,后者用于获取容器分配的容量大小,但是这个cap对象是不能获取到map具体分配的容量大小的.有没有办法获取到呢, ...
- BVH with SAH (Bounding Volume Hierarchy with Surface Area Heuristic)
- BVH with SAH (Bounding Volume Hierarchy with Surface Area Heuristic) - 0. Overview 包围层次盒(B ...
- mac 上位Idea 配置Project SDK
问题 刚开始没有Project SDK 方法 添加SDK: /Library/Java/JavaVirtualMachines/jdkXYZ_VERSION.jdk/Contents/Home/jre ...