黑马程序员-常量与变量 运算符

------- android培训java培训、期待与您交流! ----------


常量和变量:


常量:表示不能改变的数值。
java中的常量分为:
  • 整数常量
  • 小数常量
  • 布尔型常量
  • 字符常量
  • 字符串常量
  • null常量


进制转换:

二进制和十进制之间的转换:
十进制-->二进制:对十进制进行除2运算,取余数的反数。
如6的二进制就是110.
二进制-->十进制:二进制乘以2的过程。
如110就是1*4+1*2+0*1=6.

八进制:三个二进制位就是一个八进制位。
十六进制:四个二进制位就是一个十六进制位。
如果要把十进制转成八进制或者十六进制,可以先把十进制转换成二进制,然后再
转换成八进制或者十六进制。

负数的二进制: 其实就是负数对应的正数的二进制取反加1.
比如取-6的二进制:首先6的二进制是
0000-0000 0000-0000 0000-0000 0000-0110
取反: 1111-1111 1111-1111 1111-1111 1111-1001
加1:+ 0000-0000 0000-0000 0000-0000 0000-0001
-----------------------------------------------
1111-1111 1111-1111 1111-1111 1111-1010--->-6

变量:
需要将不确定的数据进行存储,在内存中开辟一个空间,就定义一个变量来完成存储。
通过变量名和数据类型来完成定义。
定义变量的格式:数据类型  变量名 = 初始化值;




类型转换:
自动类型转换:
java中不同数据类型进行运算时,不能直接进行运算,小的类型会自动向大的类型进行提升。
如果不同数据类型进行运算的值赋给小的类型,编译器会报错,可能损失精度。
java中定义了一些适用于表达式的自动类型提升规则:
1.所有的byte,short,char类型的值将被提升为int型。
2.如果一个操作数是long,float,double,计算结果就是对应的long,float,double。

强制转换类型:
byte b = 3;
b = b + 4;//会报错,b+4的结果是int型,不能赋给b。
b = (byte)(b+4);//强制把b+4的结果转换成byte型,再给b。

运算符:

算术运算符:+ - * / % ++ -- +(字符串相加)
取模:如果模的左右有负数,以左边为主。如-1%5 = -1;1%-5=1.
b = a++;-->先把a的值赋给b,然后a自增
b = ++a;-->a先自增,然后再把自增后的值赋给b
+: 字符串连接符。字符串数据和任何数据使用+相连接,最终都会变成字符串。
System.out.println("ab"+5+5);打印结果是ab55
Java中的运算符按优先级从高到低排列如下:
. [ ] ( ) ++ -- ! ~  * / % + - << >> >>> < > <= >= instanceof == != &  | ^ && || ?: 

转义字符:通过\来转变后面字母或者符号的含义
  • \n:换行
  • \b:退格
  • \r:回车(windows系统中回车符有\r\n,linux和unix系统中回车符就是\n)
  • \t:制表符

赋值运算符:+= -= *= /= %=
x+=4//相当于x = x + 4;
面试题:
short s = 4;
s = s + 5;//报错
s+=5;//编译成功, 因为+=只做一次赋值运算,内部有自动强转动作。

比较运算符:== != < > <= >= instanceof 结果都是boolean型

逻辑运算符:& | ^ ! && || 
&和&&的区别:
&:判断两边真假,如果两边都为true,结果为true。如果有一边为false,结果为false。
&&:先判断左边,如果为true,再判断右边;如果左边为false,不需要再判断右边,直接返回false。
| 和 ||的区别:
|:判断两边真假,如果两边都为false,结果为false。如果有一边为true,结果为true。
||:先判断左边,如果为false,再判断右边;如果左边为true,不需要再判断右边,直接返回true。

位运算符:二进制运算符 << >> >>> & | ^ ~
  • << :左移,空位补0,高位丢弃
  • >> :右移,如果高位是0,补0;如果高位是1,补1.
  • >>> :无符号右移,无论高位是0或者1,都补0.
  • ~:反码。对二进制取反。1变0,0变1.
一个数异或另一个数两次,还是原来这个数。可以用于加密。

对两个整数变量进行变换:
1.通过第三方变量//开发中最常见,易使用易理解
void(int a,int b){
int temp = a;
a = b;
b = temp;
}
2.不用第三方变量//比较高效, 但不易记忆
void(int m,int n){
m = m^n;
n = m^n;
m = m^n;
}

获取一个数的最低四位,通过&15
要获取下一个四位,将这个数无符号右移4位,再&15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值