char 表示一个字符,必须是一个字符.java中默认使用unicode编码。
char a='a';每一个字符都对应一个十进制编号。
(看似是一个字符,本质上是一个整数。)
char a='a' 表示一个单字符,用单引号表示。
字符--unicode编码--十进制编码
可以进行运算 字符--int--运算
基本数据类型的转换
boolean类型不可与其他七种进行转换,剩下的的7种可以进行弧线转换。
(由于数据类型不一致,故需要转换)
转换规则:
默认转换:byte short char>int>long>float>double
(float和long 由于小数在底层储存与整数不同,故4byte的float大于8byte的long,小容量类型,默认转化为大容量类型)
强制类型转换:1.可能会出现数据溢出
2.精度降低
int a=120;
byte b=(byte)a;
有多种类型混合运算时,系统自动将所有数据转化成容量最大的数据类型。
byte cc=11;
byte bb=120;
short dd=(short)(cc+dd);
运算符
+:加法运算:数值+char(char类型可以参与算术运算)
字符传连接:字符串+字符串
- * / % ++ -- 只能进行算术运算
++ 自增1
--自减1
c++先用后加 ++c先加后用
比较运算符
【基本类型和基本类型】比较【比较的就是值】
< > >= <= 只能比大小
*== !=除了进行类型的比较,还可进行引用类型的比较
赋值运算
= += -= *= /=
+=:进行了隐氏的强制数据类型转换
eg: short a=5;
a=a+2;❌
a+=2;(short a=(short)(a+2))
逻辑运算符:
逻辑运算要求:运算符左右两边都是布尔值 & | !^ && ||
还可以参与位运算
& 两边都是true---true
| 两边都是flase---flase
! ~. true--- false
^ 相同为false 不同是true
&当前面的返回值是false,还会继续执行后面的表达式
&&当前面的返回值是false,不会继续执行。
^异或 不同为真,相同为假。
条件运算符---三元运算符
(条件表达式)?表达式1:表达式2; int max=(a>b)?a:b;
条件为true 表达式为1;条件为flase 表达式为2
位运算
位:指的是二进制的bit位 bit位运算 更底层。
<<左移 (a<<1)a左移一位
>>右移 【>>>无符号右移(不管前面符号是什么,移动后自动给数字前补0)】
~非
^异或
&与(只有1&1 才是1)
|或(只有0|0才是0)
交换两个数
int a=4;
int b=3;
a=a^b;//a=7
b=a^b;//b=4
a=a^b;//a=3
System.out.print(a);
System.out.print(b);
a与b交换成功
控制台输入
Q:为什么需要控制台输入?
A:需要用户与程序实现交互式数据输入,但是程序还没操作界面,故java中前期提供Scanner类,通过此类,将数据读取程序中。
控制语句 选择
if(条件表达式){}
if(条件表达式){} else{}
if{} else if{}
if{} else if{} else{}
switch(表达式){
case 常量1:语句块;
default:默认语句块;
}
switch能实现的功能if一定能实现
if能实现的 switch不一定能实现
switch表达式与case后面的值进行匹配String byte short int char 不能有long
switch一般用于固定的选项,选择。
case后的值不能重复