当前位置:网站首页>2.2-数据类型
2.2-数据类型
2022-07-28 16:35:00 【night_du】
常量
定义
- 在程序执⾏过程中其值不可以发⽣改变
- 常量就是指我们⽣活中⽤的数值,字⺟等
- 常量⽆法被改变,⼀旦改变,其意义也随之被改变
分类
- 字⾯值常量
- ⾃定义常量(⾯向对象部分再学习)
字⾯值常量的分类
- 字符常量 : ⽤单引号括起来的内容 ‘a’
- 字符串常量 : ⽤双引号括起来的内容 “abc” “ufc”
- 整数常量 : 所有的整数 1 0 3
- ⼩数常量 : 所有的⼩数 1.2
- 布尔常量 : ⽐较特殊, 只有true 和 false
- 空常量 : null(数组部分会讲到)
System.out.println("字符类型常量:" + 'a');
System.out.println("字符串类型常量:" + "abc");
System.out.println("整数型常量:" + 1);
System.out.println("浮点类型常量:" + 12.32);
System.out.println("布尔类型常量:" + true + "\t" + false);
变量
定义
- 在程序执⾏的过程中,在某个范围内可以发⽣改变
- 也就是说,其值是可以被改变的,在不同时期,同⼀个变量可以代表不同的值
- 有了变量之后,我们使⽤起来就⾮常灵活
- 计算机内存中的⼀块存储空间,是存储数据的基本单元
流程
先声明变量,后给变量赋值
声明⼀个变量
数据类型 变量名;
给声明的变量赋值
变量名 = 值
声明变量的进⾏赋值的操作
数据类型 变量名 = 值
同时声明多个同类型的变量与初始化 – 可以拆开
数据类型 变量名1, 变量名2,变量名3,变量名4 = 值第⼀次的赋值操作被称为初始化
public static void main(String[] args) {
int n; //声明int类型的变量(只能装整数),未赋值
n = 10; //给变量n赋值
int m = 20; //声明int类型的变量,赋值
int x = 1, y = 2, z = 3; //声明多个int类型的变量
int a, b, c = 10;
}
数据类型
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FMlALZtu-1645533840481)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831142857741.png)]](/img/0c/1211f58607a97973512d7a7274dd53.png)
字节、字符、字符集与编码方式
- 字节组成字符,字符是我们肉看看到的数据
- 字符集就是字符的集合
- 编码方式就是字符拼成字符集的规则
常见编码方式
ASCII码:⼀个英⽂字⺟(不分⼤⼩写)占⼀个字节的空间,⼀个中⽂汉字占两个字节的空间。⼀个⼆进制数
字序列,在计算机中作为⼀个数字单元,⼀般为8位⼆进制数,换算为⼗进制。最⼩值0,最⼤值255。如⼀
个ASCII码就是⼀个字节。UTF-8编码:⼀个英⽂字符等于⼀个字节,⼀个中⽂(含繁体)等于三个字节。
Unicode编码:⼀个英⽂等于两个字节,⼀个中⽂(含繁体)等于两个字节。
符号:英⽂标点占⼀个字节,中⽂标点占两个字节。举例:英⽂句号“.”占1个字节的⼤⼩,中⽂句号“。”占2
个字节的⼤⼩。GBK编码⽅式是中⽂占两个字节,英⽂占1个字节。
不同数量级间的信息单位换算关系
1B(byte,字节)= 8 bit;
1KB(Kibibyte,千字节)=1024B= 2^10 B;
1MB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;
1GB(Gigabyte,吉字节,⼗亿字节,⼜称“千兆”)=1024MB= 2^30 B;
基本数据类型
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TWcwUx83-1645533840482)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831144316675.png)]](/img/30/60031280a82e0696781dd8dfdd03b0.png)
整数类型:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J6914Uri-1645533840483)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831144417151.png)]](/img/a7/2be9aeacf5f7775c045d864cc25950.png)
创建基本数据类型变量:
byte b = 10;
short s = 20;
int i = 30;
long l = 1000000000000L;
double d = 12.22;
float f = 5.1f;
boolean b1=true;
精度缺失
public static void main(String[] args) {
double a=1.0;
double b=0.9;
System.out.println(a-b);
double c=(1.4-0.5)/0.9;
System.out.println(c);
}
Java中整数型默认的是int ,浮点型默认的是double , double的精度⽐float要⾼,所以如果我们将double转成float可
能会造成丢失精度的问题.所以我们在给float类型的变量赋值时,要⽤f标明数值的类型
使用BigDecimal处理精度缺失问题:
BigDecimal b1=new BigDecimal("1.0");
BigDecimal b2=new BigDecimal("0.9");
System.out.println(b1.subtract(b2));
字符类型
char 占两个字节 0~65535(没有负数)
ASCII:美国信息交换标准码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0exWUHYS-1645533840484)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831163537936.png)]](/img/b6/a33bb455da6089edc5e50f89553099.png)
- Unicode:计算机科学领域的⼀项业界标准,包括字符集。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EEaK46pQ-1645533840484)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831163603439.png)]](/img/29/e6b647782084f251d966e2aebb9abd.png)
public class CharDemo {
public static void main(String[] args) {
//Acsll码
char a = 97;
System.out.println(a);
//Unicode
char b='\u4f01';
System.out.println(b);
}
}
布尔类型
类型转换
自动类型转换
把一个表示数据范围小的数值或变量赋值给另一个表示数据范围大的变量
强制类型转换
把一个表示数据范围大的数值或变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名=(目标数据类型)值或者变量;
范例:int k =(int)88.88;
public class TypeTranslateDemo {
public static void main(String[] args) {
//自动转换
byte b = 10;
int i = b;
System.out.println(i);
//强转
int x = 5;
byte y = (byte) x;
System.out.println(y);
}
}
边栏推荐
猜你喜欢
随机推荐
Distinguish between the export of ES6 and the module.exports of nodejs
[C language must see] yo, writing bugs, I'm sure you've stepped on the pit
Map R language
R language sub() usage
R语言画图/绘图/作图2
easyui tree
MySQL的安装
【p5.js实战】我的自画像
多大适合学习软件测试?
USB virtual serial port (CDC) limit speed test
An article takes you closer to the overview and principle of kubernetes
100+医学影像数据集集锦
Database performance analysis and optimization (internal training materials of Aite future team)
如何看软件测试未来的发展?
点云处理---二叉树
软件测试培训机构可靠吗?
转行学习软件测试有前途吗?
Collection集合
电工学自学笔记1.22
小白如何零基础学习软件测试?









