[JavaSE] 数据类型(变量、整形、长整型、双精度浮点、单精度浮点、字符、字节)
上一篇
刺激到了不?这篇的内容更加让你吃惊哦!
大家跟着Nick来了解下吧~
数据类型与运算符
1.0 变量和类型
变量:指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据。
类型:则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性。
Nick我还是不明白变量是啥?
咳咳!简单来说,变量是一个箱子,箱子有不同的种类和容量,这就是变量的类型和大小。
我们所讨论的 "变量" 主要和我们的 "内存" 这样的硬件设备密切相关。 这里Nick画了一张图。
为啥要了解冯诺依曼?
约翰·冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍
、 、 ,是20世纪最重要的数学家之一。冯·诺依曼是 数学博士,是现代 、 、 和 等领域内的科学全才之一,被后人称为“现代计算机之父”、“ 之父”。
现在很多计算机运行都是根据这个原理的,我们一起来看看吧~
举个例子,你知道java当中定义一个int变量是怎么转存的嘛?上面这张图就能解释,再举一个例子了解这张图,假如你有一部8G+125G的手机,8G就是内存储器CPU,125G就是外存储器内存。我通过点击屏幕(输入设备)输入搜索XXX,手机里的内存储器调用某款搜索引擎程序,通过运算器对你指令的计算,通过控制器对你指令进行逻辑判断,最终将你想要的结果显示在你的输出设备上!
同理,定义一个数据类型
并输出也是同样的原理
回归原题,现在我们来看第一个
1.1 整形变量(重点)
基本语法格式
代码示例:
注意事项:
- int 表示变量的类型是一个整型。
- 变量名是变量的标识. 后续都是通过这个名字来使用变量。
- Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值。(安全性)
- 初始化操作是可选的, 但是建议创建变量的时候都显式初始化。
- 最后不要忘记分号, 否则会编译失败。
- // 表示注释。注释作为代码的解释说明部分, 不参与编译运行。
变量定义不初始化行吗?
不可以哦,编译器会报错!
体现了Java的安全性
变量命名?
小驼峰 》数字,字母,下划线,美元符(不能数字开头)
下面这些定义可以编译运行嘛?
可以!合法但不合理!
典型的坑人代码....
为啥钱可以当变量名?
这就是Java有趣的地方了
它采用Unicode字符集,包含多种语言
给你看个阿里的规范手册
所以嘛!以后去公司少不了一通恶补咯
int是几个字节?
在 Java 中, 一个 int 变量占 4 个字节,4*8=32个比特位。这操作系统没有直接关系,不会因为换了机子而改变自身的位数,在window上运行是4个字节,Linux上还是4字节,体现了Java的可移植性强。
什么是字节?
- 字节是计算机中表示空间大小的基本单位。
- 计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte)。
- 我们平时的计算机为 8GB 内存, 意思是 8G 个字节。
- 其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB。
- 所以 8GB 相当于 80 多亿个字节。
测试int范围小游戏
使用以下代码查看 Java 中的整型数据范围
由此可见4个字节表示的范围是:-2^31 -> 2^31-1 , 也就大概是 -21亿 到 +21亿。
如果给最大值+1,最小值-1呢?
我屮艸芔茻?
居然最大值和最小值互换了?!
数据类型原来就是个圈?
圈儿的范围大小取决于字节大小!
如果运算的结果超出了 int 的最大范围, 就会出现溢出的情况!
21亿这样的数字对于当前的大数据时代来说, 是很容易超出的. 针对这种情况, 我们就需要使用更大范围的数据类型来 表示了. Java 中提供了 long 类型。
1.2 长整型变量
基本语法格式:
代码示例:
注意事项:
- 基本语法格式和创建 int 变量基本一致, 只是把类型修改成 long。
- 初始化设定的值为 10L , 表示一个长整型的数字。10l 也可以。
- 使用 10 初始化也可以, 10 的类型是 int, 10L 的类型是 long, 使用 10 L 或者 10 l 更好一些。
Java 中 long 类型占 8 个字节. 表示的数据范围 -2^63 -> 2^63-1
使用以下代码查看 Java 中的长整型数据范围:
1.3 双精度浮点型变量(重点)
基本语法格式
代码示例
数字游戏 1/2=?
在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。
如果想得到 0.5, 需要使用 double 类型计算。
神奇的代码
Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范围。
Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差。
1.4 单精度浮点型变量
基本格式
代码示例
float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都 优先考虑 double, 不太推荐使用 float。
1.5 字符类型变量
基本格式
代码示例
注意事项
- Java 中使用 单引号 + 单个字母的形式表示字符字面值。
- 计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符。因此一 个字符占用两个字节, 表示的字符种类更多, 包括中文。
- C语言中 char 占一个字节(区别)。
使用一个字符表示一个汉字
执行 javac 的时候可能出现以下错误:
此时我们在执行 javac 时加上 -encoding UTF-8 选项即可。
1.6 字节类型变量
基本语法格式
代码示例:
注意事项:
- 字节类型表示的也是整数. 只占一个字节, 表示范围较小 ( -128 -> +127 )
- 字节类型和字符类型互不相干
超范围了
喜欢的话,欢迎点赞收藏加关注哦!
- 点赞
- 收藏
- 关注作者
评论(0)