摘要:数据类型结构图基本数据类型布尔值数值类型定点类型字符字节短整数整数长整数浮点类型单精度浮点数双精度浮点数引用数据类型类或枚举或接口数组基本数据类型由上图可知,基本数据类型只有种。变量的变量一般有四个基本属性变量名数据类型储存单元变量值。
数据类型结构图
基本数据类型
布尔值 (true / false)
数值类型
定点类型
字符 char
字节 byte
短整数 short
整数 int
长整数 long
浮点类型
单精度浮点数
双精度浮点数
引用数据类型
类或枚举或接口
数组
基本数据类型由上图可知,java基本数据类型只有8种。即布尔值(boolean),字符(char),字节(byte),短整数(short),整数(int),长整数(long),单精度浮点(float)、双精度浮点(double)。
类型 | 占用位数 | 数值范围 | 初始值 | 标准 |
---|---|---|---|---|
boolean | 8 | 只有true和false | false | |
char | 16 | 从"u0000"到"uFFFF",即0到65535 | "u0000" | ISO Unicode字符集 |
byte | 8 | 从-128到+127,即-2^7 - 2^7-1 | (byte)0 | |
short | 16 | -2^16 - 2^16-1 | (short)0 | |
int | 32 | -2^31 - 2^31-1 | 0 | |
long | 64 | -2^63 - 2^63-1 | 0L | |
float | 32 | 范围不知道怎么算 | 0.0f | IEEE 754标准 |
double | 64 | 范围不知道怎么算 | 0.0d | IEEE 754标准 |
java中,在书写一个数组时,可以用后缀标示数据类型。例如
0L 长整数类型的0 0.0f 代表单精度浮点 0.0d 代表双精度浮点直接量
直接量通俗的讲法就是这里显式地表示基本数据类型数据、字符串值和空引用值的表达式,该表达式中没有运算符号。
直接量其实是与之前的基本数据类型是一一相关的。
只有true和false。
字符(char)直接量java采用的是ISO规定的Unicode字符集。每个字符占2个字节,即16位。字符的写法由4种:
采用整数直接量的写法。该整数的取值范围为0~65535
System.out.print((char)88); //输出 X
用单引号括起来的单个字符。例如"h","奥"等。
用单引号括起来的Unicode字符。例如"u0061"等。用"u"引导,后面接着4位16进制
用单引号括起来的转义字符。例如"t"表示制表符。
字节、短整数和整数的直接量三者的表示方式类似。仅仅是整数的范围不一致。其可以有下列三种进制。
十进制。由+、-、0~9组成的整数形式。需要注意,除了整数0之外,其余整数的第一个数字不能是0,否者会被java理解成8进制
八进制。由数字0引导,用+、-、0~9组成。
十六进制。由0x或者0X引导。由+、-、数字0~9和字符a~f, A~F组成。
长整数直接量与整数类似,但是需要在整数后直接加上L或者l。
单精度浮点数和双精度浮点数通常由+、-、十进制消暑、指数再加上表示精度的后缀表示。
小数点前或后可以有一侧没有数字。
例如.02f, 2.f
例如:"Hello word"
null直接量标示空的引用值,不指向任何对象。
变量java的变量一般有四个基本属性:变量名、数据类型、储存单元、变量值。
变量名和数据类型没啥好说的。
每一个变量都拥有一个存储单元。存储单元的大小由数据类型决定。在变量的纯粗单元中存放的事该变量的变量值。
如果变量值的数据类型是基本数据类型,那么该变量的储存的是具体的数值。
如果变量值的数据类型是引用数据类型,则在变量的存储单元中存放的事引用值。引用值指向的是一个具体的变量。
java在使用一个变量之前,必须线定义该变量。
定义后需要对变量进行初始化。
初始化之前,该变量的存储单元中存放的内容是该变量的初始值。引用类型的变量初始值是null。
各个数据类型在数据类型转换中具有强弱关系。
byte < short -| |- < int < long < float < double char -|
这里的强弱其实是指哪个数据类型覆盖的范围更广。
boolean 不能与其它数据类型进行互相转换。
弱类型可以通过直接赋值的方式,隐式地转换为强类型。
例如 double x = 1;
强类型的数据可以转化成弱类型的数据。这叫强制转换。该转换过程可能会伴随着信息的丢失。
int i = (int)2.03
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/66379.html
摘要:本文参照深入了解虚拟机周志明,纯粹做做笔记,写写自己觉得较为重要的内容方便理解虚拟机运行时数据区如下程序计数器程序计数器寄存器是一块较小的内存空间,看做是当前线程所执行的字节码的行指示器。异常情况也与虚拟机栈一致。 本文参照深入了解Java虚拟机-周志明,纯粹做做笔记,写写自己觉得较为重要的内容方便理解 Java虚拟机运行时数据区如下: showImg(https://segmentf...
摘要:程序是写给人读的只是偶尔让计算机执行一下当你刚刚组建一个团队时团队中的每个人都各自有一套编程习惯毕竟每个成员都有着不同的背景有些人可能来自某个皮包公司身兼数职在公司里面什么事都做还有些人会来自不同的团队对某种特定的做事风格情有独钟或恨之入骨 程序是写给人读的,只是偶尔让计算机执行一下. Donald Knuth 当你刚刚组建一个团队时,团队中的每个人都各自有一套编程习惯.毕竟,...
摘要:此内存区域是唯一一个在虚拟机规范中没有规定任何情况的区域。其中位长度的和类型的数据会占用个局部变量空间,其余数据类型只占用个。内存区域异常线程请求栈深度大于虚拟机允许的深度,将抛出。上限控制异常直接内存 showImg(https://segmentfault.com/img/bVbundc?w=800&h=559); 运行时数据区域 程序计数器 线程正在执行时,如果执行的是一个Jav...
摘要:运行时数据区域虚拟机在执行程序的过程中会把它管理的内存划分成若干个不同的数据区域。堆虚拟机所管理的内存中最大的一块,堆是所有线程共享的一块内存区域,在虚拟机启动时创建。 《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》读书笔记 1 概述 对于Java程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个new 操作去写对应的delete/...
摘要:深入理解虚拟机高级特性与最佳实践第二版读书笔记与常见面试题总结本节常见面试题介绍下内存区域运行时数据区。运行时数据区域虚拟机在执行程序的过程中会把它管理的内存划分成若干个不同的数据区域。 《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》读书笔记与常见面试题总结 本节常见面试题: 介绍下Java内存区域(运行时数据区)。 对象的访问定位的两种方式。 1 概述 对于Java...
阅读 598·2021-09-22 10:02
阅读 6216·2021-09-03 10:49
阅读 549·2021-09-02 09:47
阅读 2137·2019-08-30 15:53
阅读 2903·2019-08-30 15:44
阅读 811·2019-08-30 13:20
阅读 1795·2019-08-29 16:32
阅读 867·2019-08-29 12:46