目录
数据类型与运算符
1.0 变量和类型
1.1 整形变量(重点)
1.2 长整型变量
1.3 双精度浮点型变量(重点)
1.4 单精度浮点型变量
1.5 字符类型变量
1.6 字节类型变量
🍹欢迎各路大佬来到 Nick 主页指点
☀️本期文章将学习 [JavaSE] 数据类型(变量、整形、长整型、双精度浮点、单精度浮点、字符、字节),我是博主Nick。✨
✨我的博客主页:Nick_Bears🌹꧔ꦿ
🌹꧔ꦿ博文内容如对您有所帮助,还请给个点赞 + 关注 + 收藏✨
数据类型与运算符
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 变量名 = 初始值;
代码示例:
int num = 10; // 定义一个整型变量System.out.println(num) ;
注意事项:
int 表示变量的类型是一个整型。变量名是变量的标识. 后续都是通过这个名字来使用变量。Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值。(安全性)初始化操作是可选的, 但是建议创建变量的时候都显式初始化。最后不要忘记分号, 否则会编译失败。// 表示注释。注释作为代码的解释说明部分, 不参与编译运行。
变量定义不初始化行吗?
不可以哦,编译器会报错!
体现了Java的安全性
变量命名?
小驼峰 》数字,字母,下划线,美元符(不能数字开头)
下面这些定义可以编译运行嘛?
int ______=10;int __________=101;int 钱 = 100;
可以!合法但不合理!
典型的坑人代码....
为啥钱可以当变量名?
这就是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 中的整型数据范围
System.out.println(Integer.MAX_VALUE); // int 的最大值System.out.println(Integer.MIN_VALUE); // int 的最小值
由此可见4个字节表示的范围是:-2^31 -> 2^31-1 , 也就大概是 -21亿 到 +21亿。
如果给最大值+1,最小值-1呢?
public class a1{public static void main(String[] args){System.out.println(Integer.MAX_VALUE+1); System.out.println(Integer.MIN_VALUE-1); //Integer是int的plus版本,官方称之为包装类!}}
我屮艸芔茻?
居然最大值和最小值互换了?!
数据类型原来就是个圈?
圈儿的范围大小取决于字节大小!
如果运算的结果超出了 int 的最大范围, 就会出现溢出的情况!
21亿这样的数字对于当前的大数据时代来说, 是很容易超出的. 针对这种情况, 我们就需要使用更大范围的数据类型来 表示了. Java 中提供了 long 类型。
1.2 长整型变量
基本语法格式:
long 变量名 = 初始值;
代码示例:
long num = 10L; // 定义一个长整型变量, 初始值写作 10l 也可以(小写的 L, 不是数字1). System.out.println(num) ;
注意事项:
基本语法格式和创建 int 变量基本一致, 只是把类型修改成 long。初始化设定的值为 10L , 表示一个长整型的数字。10l 也可以。使用 10 初始化也可以, 10 的类型是 int, 10L 的类型是 long, 使用 10 L 或者 10 l 更好一些。
Java 中 long 类型占 8 个字节. 表示的数据范围 -2^63 -> 2^63-1
使用以下代码查看 Java 中的长整型数据范围:
System.out.println(Long.MAX_VALUE);System.out.println(Long.MIN_VALUE)// 运行结果9223372036854775807-9223372036854775808
1.3 双精度浮点型变量(重点)
基本语法格式
double 变量名 = 初始值;
代码示例
double num = 2.0;System.out.println(num)
数字游戏 1/2=?
在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。
如果想得到 0.5, 需要使用 double 类型计算。
神奇的代码
double num = 1.1;System.out.println(num * num)// 执行结果1.2100000000000002
Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范围。
Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差。
1.4 单精度浮点型变量
基本格式
float 变量名 = 初始值;
代码示例
float num = 3.0f; // 写作 3.0F 也可以System.out.println(num);
float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都 优先考虑 double, 不太推荐使用 float。
1.5 字符类型变量
基本格式
char 变量名 = 初始值;
代码示例
char ch = 'A'
注意事项
Java 中使用 单引号 + 单个字母的形式表示字符字面值。计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符。因此一 个字符占用两个字节, 表示的字符种类更多, 包括中文。C语言中 char 占一个字节(区别)。
使用一个字符表示一个汉字
char ch = '呵'; System.out.println(ch);
执行 javac 的时候可能出现以下错误:
此时我们在执行 javac 时加上 -encoding UTF-8 选项即可。
javac -encoding UTF-8 a1.java
1.6 字节类型变量
基本语法格式
byte 变量名 = 初始值;
代码示例:
byte value = 0; System.out.println(value);
注意事项:
字节类型表示的也是整数. 只占一个字节, 表示范围较小 ( -128 -> +127 )字节类型和字符类型互不相干
超范围了