一、变量
在程序执行过程中,其值可以发生改变的量,在内存中开辟一块空间,存储指定类型的数据
java是一个强类型的语言 :声明变量的时候就要先确定类型
语法:1.声明的同时赋值:
数据类型 变量名 = 赋值;
常用的数据类型: int整数 double小数 String字符串"" boolean布尔类型 char字符型’’
2.先声明 后赋值:
数据类型 变量名; --声明
变量名=赋值; --赋值
3.同时声明多个变量:
“=”是java中唯一一个自右向左运算的符号
变量关注的点:
1.数据类型 2.变量名(标识符的规则|规范) 3.值 4.作用域 { }
使用变量时需要注意的问题(1.输出 2.赋值 3.运算):
1.变量必须已声明
2.变量必须已赋值
变量的分类:成员变量|实例变量 :只声明不赋值存在默认值
int->0 double->0.0 字符串->null char->’ ’ boolean->false
类中方法外|语句块外定义的变量
局部变量: 使用前必须声明并且赋值
方法中语句块中定义的变量就是局部变量
二、数据类型
基本数据类型 四类八种
计算机中基本存储单位: 字节 1byte =8bit
整型:
表示形式 表示名称 范围 大小
byte 字节型 [-128,127] 1字节8bit
short 短整型 [-32768,32767] 2字节16bit
int 整型 ±21亿 4字节32位
long 长整型 非常大 8字节
整数字面常量值默认是int类型的,如果给byte,short赋值,只要在其范围内的字面常量值都能成功赋值给long赋值,需要在数据的后面添加l/L,推荐使用L
浮点型:
表示形式 表示名称 大小 精度
float 单精度 4个字节 小数点后7位左右
double 双精度 8个字节 小数点后15为左右
小数类型会有精度不准确的问题,参与运算可能会失真 BigDecimal
小数的字面常量值默认是double类型的,如果给float赋值,数据后面添加f/F
字符型:
表示形式 表示名称 范围 大小
char 字符型 [0,65535] 2个字节
字符型的表示形式:
- ''中给单个字符 ‘1’ ', ’ ’
- 0~65535 根据Unicode字符集进行确认 去 ascii
当字符型参与运算的时候,先转为10进制的数再去参与运算
布尔型:
boolean true|false 1位
引用数据类型: 类 接口 数组
三、数据类型转换
1.boolean不参与类型转换
2.自动类型转换|提升
从小范围类型的数据->大范围类型的数据
多个类型的值参与运算,最终结果的数据类型默认自动提升为最大的参与运算的数据的类型;多个数据的类型,如果只有byte,short,char任意组合,最终的结果会自动提升成为int;byte,short,char赋值,只要是在其范围内的常量值都可以成功赋值
3.强制类型转换 ,强制类型转换有可能会损失精度
小范围数据类型 变量名 = (小范围数据类型)大范围类型的数据;
数据类型范围由小至大依次为:byte -> short-> int -> long-> float ->double
四、运算符
算术运算符
赋值运算符
比较运算符
逻辑运算符
条件运算符
位运算符
操作数: 运算符左右两边的数就是操作数
表达式: 运算符连接左右两边的操作数叫做表达式
语句: “;”代表一个语句的结束
一元运算符|单目运算符:操作数只有一个的运算符 ++ –
二元运算符|双目运算符:操作有两个 + -
三元运算符|三目运算符:条件运算符
算数运算符:
+ - * / % ++ –
+:
- 正号(省略)
2)加法运算
3)字符串的连接符使用 : 当+左右两边只要有字符串的出现,那么就作为连接符使用,会把拼接为一整个字符串
赋值运算符:
基础赋值运算符 =
= 优先级最低
唯一一个自右向左运算符的符号
扩展赋值运算符(基础赋值运算符+算数运算符)
+= -= *= /= %=
a+=1 ==>a=a+1;
优点: 提高执行效率,否则编译器也会把数据优化成为扩展赋值运算符的形式,能够成倍提高效率
比较运算符|关系运算符
< >= <= 只能比较byte,short,int,long,float,double,char
== !=可以使用基本数据类型|引用数据类型,结果都是boolean类型的结果
逻辑运算符:
操作数是值为boolean类型的表达式
& 与: 两边都为true结果才为true,一个为false结果为false
| 或: 一个为true就是true,两个都为false才是false
! 非: 取反 !true–>false
^ 亦或: 两个操作数相同为false,不同为true
短路的作用:如果第一个操作数就已经能够决定最终的结果了,第二个表达式不再执行
&&、||