• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
丿冷色调
博客园    首页    新随笔    联系   管理    订阅  订阅

Java个人笔记

Java是强类型语言!
运算时保留 4个八位 也就是32位。也或许是因为运算过程中强制转换为默认类型。

变量
·类型转换(牢记 变量类型都有一个默认类型的特点!整形默认int 小数默认double 小的内存 向 大的内存转换)
例1: int x= 3;
byte b= 5;
x= x+b;

例2: byte b= 3;
b= b+200; (这个例子的运行结果之所以 可能损失精度,是因为 200是默认的 4个八位,然而,与200 相加的b 自动提升后,装不下4个八位)

例3: x= 'a'+ 1; (编码表上有对应的二进制表 所以能和 1 进行运算)

例4: byte b= 4;
byte b1= 3;
byte b2= 7;
b= b1+b2; (运行结果出错,因为b1 和b2 是两个变量,两个变量相加可能会超出其定义类型的临界值)
而 --- b= 7+3;--- 的运行结果没出错,是因为,电脑会自动判断右边的int类型是否超过左边的byte类型。如果没有超出byte类型的数值范围,电脑会自动切掉4个八位中的前三位,就成了byte类型了。

例5: int x;
int x1= 10;
int x2= 98;
x= x1+x2; (和例4相比,这个运行结果没有报错,原因是 int类型的运算,电脑默认舍弃高位,保留原位)而byte类型 没有默认保留原位。

特例: 字符可以与 数字 做运算,因为 字符占2个八位,数字占4个八位,运算过程中会有自动提升的动作。


算术运算符
·任何数 %2 不是 0 就是 1
·任何数据与字符串相连接 结果是更大的字符串(System.out.println("5+5="+5+5)---->>"5+5=5"+5---->>"5+5=55")

赋值运算符
·+= -= *= /=(会自动判断)比如说:a+=1 和 a= a+1是有区别的。
例: short s= 3;
s= s + 4;的运行结果会报错,因为变量类型不一样。
而 s+= 4不会报错,因为s+= 4 相当于 s=(short)(s+4);经历了一个自动强制转换。

比较运算符
·比较运算完的结果要么是 True,要么是 false。

逻辑运算符
·或(|) 、与(&)、非(!)、异或(^)
·比较运算完的结果要么是 True,要么是 false。
·异或的 运算规律,两边都为 true时,结果为false。
·单运算符(| & !),两边都需要判断。双运算符(|| && ),只判断一边,比如 int x=1;x> 2 & x < 5;和 int x=1; x>2 && x<5;
·逻辑运算符 被用于数字 运算。(只需要把两方的数字都转换成 而二进制即可。) 例如 6 & 3,6 | 7。
·一个数异或同一个数两次,结果还是这个数。

位运算符
·左移(<<) 右移(>>) 无符号位移(<<< 或者 >>>)
·左移几位就是该数据乘以2 的几次方。
例如:3 << 2= 12;------->> 3 * 2(2)= 12;
·右移几位就是该数据除以2 的几次方。
例如:6 >> 1= 3;-------->> 6 / 2(1)= 3;
·对于高位出现的空位,原来高位是什么数,就用这个数来补空位。
·无符号位移,无论高位是什么,空位都用0补。

posted @ 2018-04-10 23:43  丿冷色调  阅读(122)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3