Java数据类型和运算符
标识符
- 作用
常量、变量、方法、类和包等的名称 - 命名规则
- 硬性规定:
1、标识符必须以字母,下划线或者美元符号开头
2、其他部分必须是字母,数字,下划线或者美元符号,但是不能出现特殊符号
3、标识符大小写敏感
4、不能是java的关键字或者保留字(留给系统使用的表示特殊含义的字符串) - 常规建议:
1、驼峰标识
(1)类名,接口名称在命名的时候要首字符大写
(2)方法,变量命名的时候首字符要小写
(3)多个单词拼接表示一个标识符的时候,每个单词的首字符都大写
2、见名知义
(1)通过标识符的名称能知道代表的含义
(2)千万不要写拼音
- 硬性规定:
- 注意
1、Java不采用通常语言使用的ASCII字符集
2、Java采用unicode这样的标准的国际字符集。因此,这里的字母的含义:英文、汉字等等。(不建议大家使用汉字来定义标识符!)
常量和变量
常量:在程序运行过程中,值不会发生改变的量叫做常量
变量:在程序运行过程中,值会发生改变的量叫做变量
变量:变量名称,变量类型,作用域
1、先声明,后赋值
int a;声明
a =10;赋值
2、声明+赋值
常量:
使用final关键字修饰的变量称之为常量或者叫做最终常量,表示不可修改
注意:
在类内,方法外定义的变量叫成员变量,会存在默认值
在方法内,定义的变量必须要进行初始化操作,不会存在默认值
在一行中可以定义多个变量,但是不推荐,每个变量最好单独一行
给变量赋值过程中,变量的值成为常量
数据类型
Java是一种强类型的语言
- 强类型表示,变量在定义的时候必须显式的声明类型是什么,例:java
- 弱类型表示,变量会根据值自己去推断,不需要指定类型是什么,例:js,python,scala
java数据类型
- 基本数据类型(4类8种)
- 整数类型:byte short int long(不同类型表示不同的长度)
byte: 使用一个字节存储,因此范围是 -128 ~ 127
short: 使用两个字节存储,因此范围是 -215 ~ 215-1(-32768 ~ 32767)
int: 使用四个字节存储,因此范围是 -231 ~ 231-1,约21亿
long: 使用八个字节存储,因此范围是 -263 ~ 263-1
注意:
1. 在使用整型类型的时候,默认都是int类型,
2. 如果需要使用long类型的话,必须要在数字的后面添加L,建议使用大写,小写容易跟1混淆。 - 浮点类型: float、double 小数类型:使用小数点 使用科学计数法
float: 单精度,精度可以精确到小数点后7位
double: 双精度,精度是float的双倍
注意:
1、默认浮点类型是double类型
2、使用float的时候,数字后要添加f
3、浮点类型并不能表示一个精确的值,会损失一定的精度 - 字符类型: char
占用2个字节,使用的时候使用’ '表示 - 布尔类型: boolean
只有true和false两值,在存储的时候占1位
- 整数类型:byte short int long(不同类型表示不同的长度)
- 引用数据类型:
类
接口
数组
运算符
算术运算符: +,-,*,/,%,++,--
/ 取整除,或者取商,% 取余数,或者取模
++ 或 --,表示在变量原有的基础上+1或-1,谁在前,先运算谁
赋值运算符 =
java中 = 表示赋值运算符,== 表示相等的操作
扩展赋值运算符:+=,-=,*=,/=
d是byte,d+1整体变成int类型,需要将int类型的值转换位byte,会有精度损失,因此需要强制转换,
建议在进行操作的时候使用扩赋值运算符 d += 1
关系运算符: >,<,>=,<=,==,!=
用来比较两值的关系,返回的值是布尔类型,也就是说只有true和false两情况
逻辑运算符: &&,||,!
逻辑运算符一般两边的值不是具体的值,而是表达式
&&: 表示短路与,两边表达式中只要有一个是false,整体结果就是false
两边表达式从左向右开始对比,如果左边的表达式是false,右边不需要进行判断
||: 表示短路或,两边表达式中只要有一个是true,整体结果就是true
两边表达式从左向右开始对比,如果左边的表达式是true,右边不需要进行判断
!: 取反,如果是true,取反是false,如果是false,取反就是true
&: 与运算符,两边都会参与运算
|: 或运算符,两边都会参与运算
位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
只能操作数值,操作的时候会转成二进制进行运算
条件运算符 ?(三目运算符):
使用的时候需要跟一个表达式,表达式如果是true,则返回?后的结果,
如果是false,则返回:后的结果
注意:
- 整数运算
- 如果两个操作数有一个为Long, 则结果也为long
- 没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
- 浮点运算:
- 如果两个操作数有一个为double, 则结果为double
- 只有两个操作数都是float, 则结果才为float.
- 运算符优先级表如下:
赋值 < 三目 < 逻辑 < 关系 < 算术 < 单目
基本数据类型的类型转换
自动转换(隐形转换)
强制转换
注意:
1、在进行算术运算操作的时候,必须要求数据类型一致,否则无法操作
2、在运算过程中,如果两个值得类型不一致,会自动将小的类型转换为大的类型
3、在运算过程中,可以手动强制转换,将大的类型转换为小的类型
实现方式,(datatype)
4、强制转换,会发生精度损失,结果可能不准确