当前位置:网站首页>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);
}
}
边栏推荐
- 软件测试培训需要多久?
- 【C语言进阶】——指针进阶[Ⅰ]
- 【Unity Scriptable Object】教程 | 在Unity中使用 Scriptable Object 存储物体数据信息
- Solve package is not available (for R ve [package 'xxx' is not available (for R version x.y.z) "warning?]
- 小白如何零基础学习软件测试?
- 【p5.js】实战临摹——国际象棋盘
- 软件测试需求人才越来越多,走上测试道路的人却越来越少?
- 点云处理--voxel filter
- 点云处理---二叉树
- 7-8 浪漫侧影(25分)建树+新解题思路
猜你喜欢
随机推荐
Openpcd安装过程记录
【Unity】Timeline学习笔记(七):自定义片段(Clip)
7-8 浪漫侧影(25分)建树+新解题思路
软件测试工作内容太简单怎么办?
[阅读笔记]-2 通过朴素贝叶斯模型学习机器学习分类
JS implementation of special prime numbers
【C语言笔记分享】自定义类型:结构体,枚举,联合(建议收藏)
完全未接触过软件测试的人,培训两个月就可以上岗,真的现实吗?
Branch and loop (for and do while)
软件测试培训一般多少钱?
图像处理代码整理
零基础软件测试培训可靠吗?
Distinguish between the export of ES6 and the module.exports of nodejs
es6 Promise
软件测试零基础入门好学吗?
软件测试工程师如何突破职业发展瓶颈
点云处理--voxel filter
零基础转行软件测试到底能不能行?
Public medical database
多大适合学习软件测试?








![【C语言进阶】——剖析入微数据在内存中的存储[上]](/img/6a/ac723cee2543cd2403a7e58d556c8e.png)