Java核心基础(三)


本篇文章内容来自尚硅谷java核心基础免费课程的笔记整理(去掉了一些繁杂多余的内容)。
有零基础或者想看视频学习的可以去官网。
http://www.atguigu.com/
因为在深入学习公开的已知漏洞时发现自己的java功底不够。
于是又开了个新坑。
唉 ┭┮﹏┭┮

祝大家情人节快乐~


进制

 所有数字在计算机底层都以二进制形式存在。
  对于整数,有四种表示方式:
   二进制(binary):0,1 ,满2进1.以0b或0B开头。
   十进制(decimal):0-9 ,满10进1。
   八进制(octal):0-7 ,满8进1. 以数字0开头表示。
   十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。
    如:0x21AF +1= 0X21B0

进制

进制

二进制:

  Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位; 当是long类型时,二进制默认占64位,第64位是符号位
  二进制的整数有如下三种形式:
   原码:直接将一个数值换成二进制数。最高位是符号位
   负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
   负数的补码:其反码加1。
  计算机以二进制补码的形式保存所有的整数。
   正数的原码、反码、补码都相同
   负数的补码是其反码+1

   为什么要使用原码、反码、补码表示形式呢? 计算机辨别“符号位”显然会让计算机的基础电路设计变得十分复杂! 于是 人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正 数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了。


Java运算符

 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

算术运算符:

  注意事项:
   如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
   对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
   “+”除字符串相加功能外,还能把非字符串转换成字符串.

算术运算符

赋值运算符 :

  符号:=
  当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
  支持连续赋值。
  扩展赋值运算符: +=, -=, *=, /=, %=

  编译器自动会将+=,-=,*=,/=,%=运算符后面的操作数强制转换为前面变量的类型
  而=却不会

比较运算符(关系运算符):

比较运算符

  比较运算符的结果都是boolean型,也就是要么是true,要么是false。
  是== 不是 =

逻辑运算符:

  &— 逻辑与
  | — 逻辑或
  !— 逻辑非
  && — 短路与
   || — 短路或
  ^ — 逻辑异或

逻辑运算符

  逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写
  成x>3 & x<6 。
  “&”和“&&”的区别:
   单&时,左边无论真假,右边都进行运算;
   双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
  “|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
  异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
  理解:异或,追求的是“异”!

位运算符 :

  位运算是直接对整数的二进制进行的运算。具体如下:

位运算符

  位运算符的细节:

   << : 空位补0,被移除的高位丢弃,空缺位补0。
   >> : 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。
   >>> : 被移位二进制最高位无论是0或者是1,空缺位都用0补。
   & : 二进制位进行&运算,只有1&1时结果是1,否则是0;
   | : 二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;
   ^ : 相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0 不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1
   ~ : 正数取反,各二进制码按补码各位取反。负数取反,各二进制码按补码各位取反

三元运算符:

  格式:
   (条件表达式)?表达式1:表达式2;
  为true,运算后的结果是表达式1;
  为false,运算后的结果是表达式2;
  表达式1和表达式2为同种类型
  三元运算符与if-else的联系与区别:
   1)三元运算符可简化if-else语句
   2)三元运算符要求必须返回一个结果。
   3)if后的代码块可有多个语句

运算符的优先级:

  运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。
  如下表,上一行运算符总优先于下一行。
  只有单目运算符、三元运算符、赋值运算符是从右向左运算的。

运算符优先级


文章作者: meta-taamr
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 meta-taamr !