Java语言基础——变量专题
一、含义
变量是编程中的最基本的概念之一。对于Java语言而言,每一个都变量都代表着内存中的一小块区域,而这块区域能够用来存放某个数据。就像生活当中,如果把数据比作东西,变量就是盒子。
定义变量:变量类型 变量名;比如 int a;
二,数据/变量类型
强类型:变量类型必须和数据类型一致
弱类型:变量类型可以和数据类型不一致
在Java语言中,变量都是强类型的。
数据类型分为对象类型和简单类型(基本类型/原始类型)。对象类型有很多,但基本类型有8种。
基本类型:
①整数类型
一个字节8位,0或1。 2^8=256个数
引入一个概念字面值,即可以为一种数据类型的变量赋予的什么样的值。
如:byte b=200; 错误
short s=200; 正确
200不是byte的字面值但可以是short的字面值
再如long l=10L;
在10后面加字母L更加明确的表示10是long的字面值,如果不加L也对,但系统会默认10是int的字面值,相当于是int赋值给long.其中所加字母L大小写不区分
②浮点类型
float 单精度浮点数 4B 如float f=1.4f;
double 双精度浮点数 8B 如double d= 1.4d;
注意:1,float类型后面赋值数一定要加f,大小写均可,double类型后面赋值数可以省略d。
2,double赋值数也可以用科学计数法,如double d=1.4e10;其中1.4e10=1.4*10^10.
3,一般小数默认为double类型。如1.4——系统默认为double类型。
③字符类型
Ⅰ,char 采用unicode国际编码方式 2B
一个字符和一个正数都是对应的,因为一个字符需要转化成整数存储在硬盘里。如’a’<==>65
char有三种字面值
char c1=’a’;
char c2=65;
char c3=’\u0041’;
1,所以char和int是相通的,可以参与运算
2,’\u0041’是16进制表示法
char 2B 16bit
二进制数有16个数转换成16进制就有4个数,四个一位,所以就是0041
Ⅱ,转义字符
‘\t’ 水平挑格
‘\n’ 换行
‘\’’ 单引号
‘\”’ 双引号
‘\\’ 反斜杠
④布尔类型
boolean 字面值是true false,有特殊含义不能作为标识符,也不能参与运算
注意:除了8种类型之外,还要强调一下String 字符串,不算基础类型,字面值是“HelloWorld”,只能参加加法运算,表示字符串连接,如
“AB”+”CD”=”ABCD”
“AB”+10=”AB10”
除了8种基本类型和特殊的String外,其他变量都不可以参加运算
三,类型转换
类型转换分为自动类型转换和强制类型转换.
如果把类型比作盒子,字节小的就是小盒子,字节大的就是大盒子,小盒子放在大盒子里很容易(自动类 型转换),大盒子放在小盒子里放不下,强制把大盒子放进小盒子里,就需要把大盒子多余的地方舍去再放进 去,但舍去的一部分如果有东西,那么这个盒子就变了(数值发生变化),但舍去的地方没用,这个盒子就没 什么 变化(数值恰好不变)(强制类型转换)。
如:int i; short s;
自动类型转换 i=s; ——数值不变
强制类型转换 s=(short)i; ——数值可能变化
①,自动类型转换
int 4B 10——> double 8B 10.0
②,强制类型转换
int i=10; 4B
short s=(short)i; 2B
把int比作4个盒子,short比作2个盒子
Ⅰ,数值不变
short s=10;
byte b=(byte)s;
10 short ——>0000 0000 0000 1010 ——>10
10 byte ——> 0000 1010 ——>10
舍掉高字节,数值不变
Ⅱ,数值变化
short s=280;
byte b=(byte)s;
280 short ——>0000 0010 0001 1000 ——>280
280 byte ——> 0001 1000 ——>24
舍掉高字节,数值变化
四,自动类型提升
a+b
如果a和b有double ====>double
如果a和b有float ====>float
如果a和b有long ====>long
其他默认结果 ====>int
五,运算符
表达式:变量和字面值用某个运算符连接的式子。如a+b,2+c。表达式必须有固定的值,形成表达式的关键元素——运算符。
运算符
①数学运算符
+ - * / %(模)
10%3=1
a%2=___ 1 奇数
a%2=___ 0 偶数
4/5=0 4 .0/5=0.8
②赋值运算符
= += -= /= ++ --……
a+=3 ==>a=a+3
a-=3 ==>a=a-3
两者区别是前者不会发生自动类型提升后者会
a++ a+=1 先取值后+1
++a a+=1 先+1后取值
如:a=4 a++等于4,++a等于5,最终结果a=5
③布尔运算符
== > << >= <= !=
a==b 用于判断
a等于b 结果为true
a不等于b 结果为false
④逻辑运算符
&&(与) ||(或) ! (非)
(a>b)&&(c<<d)
⑤移位运算符
>> << >>>
a=10110;
a>>1 ==> 01011 右移位 /2
a<<1 ==> 101100 左移位 *2
⑥位号运算符
?:
判断如果问号前面正确结果为冒号前面的值,如果错误结果为冒号后面的值
如(a>b)?3:2
a>b 正确,结果为3
a>b 错误,结果为2
⑦不常用运算符
& | ~ ^
按位求与、或、反、异或
1011
& 1001
1001 都为1等于1,否则为0
1011
| 1001
1011 一个为1等于1,否则为0
1011
&1001
1001 都为1等于1,否则为0
1011
^ 1001
1001 相同为1,不用为0
~1011 = 0100
注意:
(a>b)&(c<d) 非短路
不管一个条件是否符合,第二个也要判断
(a>b)&&(c<d) 短路
只要第一个条件符合,第二个就不用判断