Java数据类型转换 变量 运算符
一、数据类型转换(掌握)
boolean类型与所有其他7种类型(byte、short、int、long、float、double、char)都不能进行转换
(一)自动类转换
小数据类型转大数据类型
byte----char----short----int----long----float----double
-
如果2个操作数有byte、short、char、int,都将会转换为int类型
-
表达式的结果的类型为表达式中最高的精度类型
-
char不能与short和byte相互自动转换,因为char没有负数范围
-
char类型向int转换时,会转换为对应的ASCII码值
65 - 90:A - Z 97 - 122:a - z
char a ='A'; int b = a;//65
-
特例:只看类型不看值
1. int a = 129; byte b = (byte)a;//编译器只看容器不看值 System.out.println(b);//结果为-127 2. byte b = 100//int转byte类型
(二)强制类转换
大数据类型转小数据类型
数据类型 变量名 = (数据类型)值或变量;
float a = (float)6.4;
二、常量(掌握)
固定不变的值,可以直接放在打印语句中打印
分类
整数常量 例如:100 、200、 600L
小数常量 例如:1.3 、2.5 、2.1F
字符串常量 例如:”你好” 、“我也是醉了”
字符常量 例如: ‘A’ 、‘a’
布尔常量 例如:true 、false
三、转义字符
\r 相当于按下了回车键
\n 表示换行
\ \表示一个斜杠\
\t 表示相当于Table键制表符
四、变量(掌握)
计算机分配一块用来存储数据的内存地址,通俗一点就是存放数据的容器
声明方式
定义的同时赋值 数据类型 变量名 = 值;
先定义后赋值 数据类型 变量名;
变量名 = 值;
同时赋多个值 数据类型 变量名1 = 值;变量名2 = 值;变量名3 = 值;
(一)成员变量
声明在类中,整个类中都可以使用,有默认值
整数类型默认值:0
小数默认值:0.0
字符默认值:空(’\u0000’)
布尔类型默认值:false
引用数据类型默认值:NULL
(二)局部变量
1.声明在方法或代码块中 ,作用在声明的方法或者代码块中 ,没有默认值 ,使用之前需要赋予初始值
2.如果成员变量与局部变量重名的时候,取值采取就近原则
static int i = 36;
public static void main(String[] args){
int i = 58;
System.out.println(i);//58
}
3.static作用:jvm优先加载
五、表达式(掌握)
由常量、变量、运算符、括号组成的按照一定规则得到一定结果
括号可以提高优先级
六、运算符
1.算术运算符(掌握)
加法(+) 减法(-) 乘法 (*) 除法(/) 取模(取余)(%)
如果是整数用来相除不会保留小数
System.out.println(10/3);//3
2.自增自减(掌握)
自增是表示对变量在原来的基础之上增加1
语法: i++ 或 ++i
1)i++ 或 ++i 是一个表达式,是一个整体,都会对i的值增加1
2) i++这种变量名在++的前面,i++表达式的值等于i自增之前的值,即 i++ = i;
3)++i这种变量名在++的后面,++i表达式的值等于i自增之后的值,即 ++i = i+1;
3.位运算(了解)
二进制的运算
4.赋值运算(掌握)
= += -= *= /= %=
int i = 2;
i += 3;//相当于i = i + 3 = 2 + 3 = 5
赋值运算有可能涉及到隐式的自动转换
5.比较运算符(掌握)
== !=(不等于) > < >= <=
用来比较两个常量或者变量,结果为布尔类型
6.逻辑运算符(掌握)
1)| || 单或 双或 两个表达式中有一个为true,逻辑运算为true,||具有短路(如果第一个表达式为true,就不 用判断第二个表达式,直接逻辑运算为true)
2)& && 双与 双与 两个表达式同时为true,逻辑运算为true,&&具有短路(如果第一个表达式为false,就不 用判断第二个表达式,直接逻辑运算为false)
3)! 取反
4)^ 异或 两个表达式不同的情况才为true
7.位运算符(了解)
二进制的运算
8.三目运算符(掌握)
由?和:分割的三个表达式组成 X?Y:Z;
X 为true,就是 Y 的结果值
X为false,就是 Z 的结果值
X :布尔类型的值或者结果为布尔类型的表达式
Y、Z :一般来说数据类型相同的值或者表达式