当前位置:网站首页>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);
}
}
边栏推荐
- Vscode intranet access server
- 如何使用IDEA将项目上传到码云
- 分支与循环(for与do-while)
- Database performance analysis and optimization (internal training materials of Aite future team)
- 【p5.js学习笔记】局部变量(let)与全局变量(var)声明
- JS synchronizes the local time with the server time
- Precautions for $ionicpopup in ionic when calling alert for two consecutive times
- Jerry ac692n --- prompt tone compression and modification
- 软件测试真有网上说的那么好吗?
- 三维点云处理系列----PCA
猜你喜欢

Technical aspects passed easily, HR: those with only three years of experience in large factories are not worth 20K

Sql Server STUFF与FOR XML PATH

es6 Promise

QT programming serial port assistant

点云处理---二叉树

【p5.js学习笔记】鼠标交互事件

Public medical database

Openpcd安装过程记录
@RequestMapping详解

Generation and use of dynamic link library (error summary)
随机推荐
软件测试工作内容太简单怎么办?
都说软件测试是IT行业最差的,是这样的吗?
想学习软件测试,零基础去哪里学呢?
Map R language
软件测试干货
分支与循环(for与do-while)
ROS系统安装
PCA reports error in eigen (crossprod (t (x), t (x)), symmetric = true): 'x' has infinite value or missing value
2021 National Undergraduate data statistics and Analysis Competition
【Unity Tilemap】教程 | Basic、Rule Tile、Prefab Brush、Tilemap Collider
【C语言进阶】——剖析入微数据在内存中的存储 【下】(浮点数存储)
中南大学研究生复试机试题
【p5.js学习笔记】局部变量(let)与全局变量(var)声明
Alibaba P8 architect talk: seven knowledge points (including interview questions) that must be learned well to become an architect
【C语言进阶】——函数指针
MySQL optimization summary
Branch and loop (for and do while)
电工学自学笔记1.21
软件测试真有网上说的那么好吗?
Mmcv installation method