Java的数据类型和运算符
Java数据类型和运算符
一、数据类型
1.基本数据类型(8个)
数值型:
整型:byte、short、int、long。
int:占用4个字节,数值范围21亿,默认整形字面量都是int类型
byte: 占用1个字节=8bit,数值范围[-128-127]
long:占用8个字节,当int不够用时就可以选用long类型
浮点型:float、double。
float:占用4个字节
double:占用8个字节,浮点数字面量默认都是doouble类型
非数值型:char(字符型)、boolean(true/false)。
char:占用2个字节
boolean:真就是true,假就是false,与数字0和1没有任何关系
引用数据类型(4个):类(String)、接口、数组、枚举。
字符串变量 String:是引用数据类型不是基本数据类型
1.常量的定义
常量:是指在Java程序中固定不变的数据
2.变量的定义
变量定义的格式:
数据类型 变量名 = 数据值;
long类型:建议数据后加L表示。
float类型:建议数据后加F表示。
二、数据类型转换
- 自动转换
自动转换 :将取值范围小的类型自动提升为取值范围大的类型
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
一个 int 类型变量和一个 byte 类型变量进行加法运算,运算结果,变量的类型将是 int 类型。
当一个 int 类型变量和一个 double 变量运算时, int 类型将会自动提升为 double 类型进行运算。
1.强制转换
强制类型转换:将取值范围大的类型强制转换成取值范围小的类型
转换格式:数据类型 变量名 =(数据类型)被转数据值
注意点:
(1)不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型;
(2)如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失;
(3) 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查;
(4) 强制类型转换不一定能成功,不相干的类型不能互相转换;
三、运算符
1. 赋值运算符
赋值运算符:“=”
变量名 = 表达式;
表达式是操作符和数据的结合体
1.算数运算符
基本算术运算符:
①+,- ,*, / ,%(取模运算符/取余运算符)
② ++(自增运算符) --(自减运算符)
注意:
1.++/–在变量前或者变量后,此变量都会自增1或者自减1。
2.++/–修饰的变量参与运算,++/–在变量前或变量后,对结果有影响。
3.++/–在变量前,先进行自增或者自减运算,然后再参与其它运算。
4.++/–在变量后,先去参与运算,然后再进行自增或者自减运算。
- 关系运算符
① 关系运算符的结果是布尔类型,要么为true要么为false。
② >、<、>=、<= 运算符的优先级别高于==、!=。
③ >、<、>=、<=运算符只支持数值类型的数据比较。
1.逻辑运算符
逻辑运算符:& &&(短路与) | ||(短路或) !
① 参与逻辑运算的表达式结果要是布尔值。
② 逻辑运算符本身的结果也为布尔值,要么为true,要么为false。
5.1与(&、&&)运算符
& &&运算规律:只有当&和&&左右两边同时为true,&和&的结果才为true。
5.2或(|、||)运算符
| ||运算规律:只要|和||左右两边有一个为true,|和||的运算结果为true
5.3非(!)运算符
运算规律:
① 是非不分,黑白颠倒
② true进行!运算得到false
③ false进行!运算得到true
5.4与(或)和短路与(或)的区别
① &和&&的异同点:
相同点:
运算规律是一样的,只有当&和&&左右两边同时为true的时候,&和&&的运算结果才为true。
不同点:
&&有短路功能:当&&左边表达式的结果为false,不再判断&&右边表达式的结果,直接输出&&d运算结果。
&没有短路功能:不管&左边表达的结果为true还是false,都要先去判断&右边表达式的结果,然后再输出&运算结果。
② |和||的异同点:
相同点:
运算规矩是一样的,只要|和||左右两边有一个为true,|和||的运算结果为true。
异同点:
||有短路功能:当||左边表达式的结果为true,不再判断||右边表达式的结果,直接输出||运算结果。
|没有短路功能:不管|左边表达式的结果为true还是false,都要先去判断|右边表达式的结果,然后再输出|运算结果。
5.5条件运算符(三目运算符/三元运算符)
语法结构:
条件?表达式1:表达式2;
执行规律:
条件为true,执行表达式1
条件为false,执行表达式2
5.6 运算符的优先级
单目运算符包括! ++ --,优先级别高。
①优先级别最低的是赋值运算符。
②可以通过()控制表达式的运算顺序,()优先级最高。
③从右向左结合性的只有赋值运算符、三目运算符和单目运算符。
④算术运算符 > 关系运算符 > 逻辑运算符。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端