java中8种基本数据类型:
整数型(从小到大):byte(1个字节)/short(2个字节)/int(4个字节)/long(8个字节)
小数型(浮点型):float(单精度,4个字节,6-7位有效数字)单精度运算速度更快
double(双精度,8个字节,15-16位有效数字)
字符型:char(2个字节,一个数字,一个字母,一个符号,称为一个字符)
布尔型:boolean 只能有true/false
2.变量声明:
float:float fNum=1.3f//结尾必须跟f/F,不能省略
double:结尾可以是d/D,也可以省略
char:用''引起来表示字符,只能是一个字母,一个数字,一个符号
int num;//声明变量
num=1;//给变量赋值
int num=1;声明变量同时赋值
float fNum=1.3f;(数字后面必须跟f)
double dNum=5.6;
3.数据类型长度:以int为例,4个字节,32位,可存储2^31到2^31-1(32位中第一位是符号位)
所有数据类型长度是固定的,不随硬件软件的不同而不同
4.常量:
final修饰的变量是常量,常量名所有字母全部大写。
布尔常量:true(真)/false(假)
字符常量:'A','b','5','女'
'\\'(反斜线),'\t'(制表),'\n'(换行)
字符串常量:"HelloWorld","3628773"
基本数据类型转换:
2.自动类型转换:相互转换的两种数据类型必须兼容(boolean除外)
必须是由小数据类型往大数据类型转换
double d=1;//由低级别int往高级别的double转,自动类型转换
数据类型由小到大:byte-short(char)-int-float-long-double
3.强制类型转换:
由大范围数据类型往小数据类型转换,必须强制类型转换
int num2=(int)1.7f;//由float转换为int
注:强制转换时,小数点后面的数字直接舍去,不进行四舍五入
运算符:
1.算数运算符:+、-、*、/、%(取余)
/ :当/的两边都为整数时,不进行四舍五入,直接舍去小数点
当/的任意一边为小数时,结果为小数
+ :有两种作用,分别是加法运算和链接字符串
当+两边为数字时,进行加法运算
当+任意一边为字符串时,起链接作用,结果为字符串(可以打印字符串)
2.关系运算符:==(等于)!=(不等于)>=(大于等于)<=(小于等于)
关系运算符判断的结果,只能有真或假两种情况
判断一个数字是不是处于某个区间,必须使用&&链接。eg:500<=num&&num<=1000
3.逻辑运算符:
&、|、&&、||、!(取反)、~(按位取反)、^(按位异或),异或:相异而或,运算的两个对象不同,结果为真,否则为假
5&6=4(按位取与,将5和6换成二进制,按位求与,|同理)
&/&&:两边为真才为真,否则结果为假
|、||:两边都为假,结果才为假
&可以进行逻辑判断,也可以进行按位与,当&两边为数字时,进行位运算
&&只能进行逻辑判断,不能进行按位与。
当两者都进行逻辑判断时,&&(短路与)从左往右,当判断第一个为假,直接输出结果
&(逻辑与)无论结果为真还是为假,均会判断第二个,之后再输出结果。
最后输出的结果是两个结果与之后的最终结果。
综上所述:逻辑判断是,用&&和||
4.赋值运算:=
复合赋值运算符:+= -= /= %=
i+=1;--> i=i+1 但是i+=1具有更快的运算速度
5.单目运算符:++ --
i++ --> i=i+1
相同点:i++和++i执行完后,i的值都会加1
不同点:i++,先用i运算,再把i+1
++i,先把i+1,再用i+1以后的值计算
6.多目运算符:a>b?true:false;(条件?表达式1:表达式2;条件成立,执行表达式1,否则,执行不表达式2)
benefit=sum>20?50:0;
如果?前面的结果为true,执行:前面的代码
如果?前面的结果为false,执行:后面的代码
7.位移运算符:
<< 带符号左移、>> 带符号右移、<<< 无符号左移、>>>无符号右移
8.运算符优先级:从上到下,优先级从高到低
()优先级最高
! ++ -- 单目运算符
* / %
+ -
> < >= <=
== !=
&&
||
各种赋值符号
&&的优先级比||高