一、变量
a) 概念:计算机内存中的一块存储空间,是存储数据的基本单元。
b) 组成: 数据类型 变量名 值 。
注意:java语言是强类型的编程语言,要求数据类型必须和变量中存储的数据的类型保持一致。
c) 变量的使用方式
i.声明
语法:数据类型 变量名;
ii.赋值
语法:变量名 = 值;
iii.使用
直接通过变量名使用即可。
d)变量定义的其他方式
i.先声明,后赋值
数据类型 变量名;
变量名 = 值;
ii. 声明并赋值【重要】
数据类型 变量名 = 值;
iii.对于多种相同类型的变量的使用[比较少]
数据类型 变量名1,变量2 = 值2,变量名3 = 值3…..;
注意:值2是为变量2赋值,值3是为变量3赋值。
int a,b,c;
二、数据类型
a) 分类 :基本数据类型(简单数据类型)和引用数据类型(对象数据类型)。
b) 基本数据类型:
数据类型 字节数 字面值
整数类型
byte 1 -128~127
short 2 -32768~32767
int 4 -2147483648~2147483647
long 8 -263~263-1
浮点数(小数)类型 float 4 -3.40E+38 ~ +3.40E+38
double 8 -1.79E+308 ~+1.79E+308
字符类型 char 2 ‘’、数字、16进制
布尔类型 boolean 1 true、false
c) 整数类型
注意:整数的默认类型为int类型,如果需要为long类型变量赋值,需要在值的后面加上L/l;建议L。
d) 浮点数类型
注意: 浮点数的默认类型为double类型,如果需要为float类型的变量赋值,需要在值的后面加上F/f。
e)char类型 字符类型
i.定义方式
1.字符方式:char c = ‘’;
2.整数方式:char c = 数字;
3.进制方式:char c = ‘16进制’;
ii.对于一些特殊的符号使用char类型来表示需要用到转义字符。
‘\’’ 表示的是‘字符
‘\”’ 表示的是“字符
‘\’ 表示的是\ 字符
‘\t’ 表示的是水平跳格
‘\n’ 表示的是换行
f) 布尔类型 Boolean
字面值:true(真)|false(假)
注意:在java中,boolean类型的字面值不能参与运算。
g) String 字符串
String s = “字面值”;
注意:字符串可以和任意类型的变量做加法运算,表示拼接。
三、类型转换
a) 自动类型转换
i.两种类型相互兼容(如:两种类型都必须是数字类型)
ii.目标类型大于源类型(目标类型的取值范围比源类型的取值范围大)
目标类型是需要转换成的类型
源类型是原本的类型
可以直接转换
b)强制类型转换
i.两种类型相互兼容
ii.目标类型小于源类型(目标类型的取值范围小于源类型的取值范围)
iii.强转
目标类型 变量名 = (目标类型)源类型;
c)数据类型的取值范围比较
i.byte—short—int—long—float—double()
ii.char----int----long—float—double
四、表达式
a)概念: 由变量、字面值、运算符组成的式子。运算结果也是一个值。
b)自动类型提升
i.如果两个数有一个double类型的变量,那么结果为double。
ii.如果两个数没有double,但是有一个float,那么结果为float。
iii.如果两个数没有double,float,但是有一个为long,那么结果为long。
iv.其余情况为int。
c)运算符
i.算术运算符 + - * / %(取模 两数求除法取余数)
ii.赋值运算符 = += -= *= /= %=
=:表示将等号右边的变量赋值给等号左边的变量
+=:表示将等号左边的值加上等号右边的值再赋值给等号左边。
a = 1; a+=1;//a=a+1;a=2;
注意:b+=1;表示的是将自身的值加上1,相当于与b=b+1;但是b=b+1有可能会做类型提升,而b+=1不会做类型提升。
iii.++(自增)、–(自减)
++自增:在自己本身的基础上加1,相当于+=1;
如:a++就相当于a+=1;
–自减:在自己本身的基础上减1,相当于-=1;
如:a—就相当于a-=1;
注意:++运算符除了可以使用a++,还可以使用++a。
问题:a++和++a的区别。
a++:先赋值再加1
++a:先加1再赋值
不管是a++还是++a,其结果都是为a的值加1。
iv.关系运算符(比较)
== > < >= <= !=
== 判断两个表达式的值是否相等
> = 判断前者是否大于等于后者
!= 判断前者是否和后者不相同
关系运算符结果布尔类型的,要么true,要么为false。
v.逻辑运算符 :
&& : 且 前者和后者都为true,结果才为true
|| : 或 前者和后者有一个为true,结果就会true;
前者后者都为false,结果为false
& : 且 前者和后者都为true,结果才为true
| : 或 前者和后者有一个为true,结果就会true;
前者后者都为false,结果为false
! : 非 求反
&&与&以及||与|的区别
&&、||为短路运算符:
&&前者为false后者不再判断,结果为false
||前者为true后者不再判断,结果为true
&、|为非短路运算符:
& 前者为false后者继续判断,结果还是false
| 前者为true后者继续判断,结果为true
结论:&&效率比&效率高,所以一般情况下都会选择&&。
vi.三元运算符
(布尔表达式)? 表达式1:表达式2;
首先会判断布尔表达式的结果,当结果为true,则选择表达式1的值;当结果为false,则选择表达式2 的值 。