疯狂java讲义_day_01——第三章:基本数据类型、补码、位运算符、java关键字

1. java包含的8种基本数据类型

在这里插入图片描述

  • 基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。
  • 引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。
  • int型数的范围是:-231 ~ 231-1,即 -2147483648 ~ 2147483647

2. 原码、反码、补码

  • 计算机以补码的形式保存所有整数。

  • ①正数的补码与原码完全相同; ②反码是对原码按位取反,符号位不变; ③负数的补码是其反码加1

  • 若有int a = - 5 ; 然后二进制表示为1000…0101,这其实是它的原码,计算机实际存储时会在内部把它先转换成补码再进行存储。

  • 位运算时,都是通过补码参与操作的,正数的原码和补码相同,所以不用思考转换问题,负数的话比如-5,首先需要写出它的原码形式即1000…0101,然后转换成反码-补码,通过补码进行位运算,再转回原码,由原码得出最后的值。

3. 位运算符

& 与运算:两位都为1,结果为1
| 或运算:只要有1,结果为1
~ 非运算:全部取反
^ 异或运算:相同为0,不同为1
<< :左移运算符; >> 右移运算符; >>> :无符号右移运算符
在这里插入图片描述

计算 ~-5 的流程(结果:4)

①写出-5的二进制表示(原码):1000…0101
②取反得其反码(符号位不变):1111…1010
③反码加1得其补码:1111…1011
④进行非运算~,全部取反(包括符号位):0000…0100
⑤由于第一位为0,所以为正数,正数的补码和原码相同,所以此时它的原码就是0000…0100,对应结果为4。所以~-5 为4。

计算 -5 << 2 的流程(结果:-20)

左移运算符,左移后右边空出来的位以0填充
①写出-5的二进制表示(原码):1000…0101
②取反得其反码(符号位不变):1111…1010
③反码加1得其补码:1111…1011
④根据下面图片可知,左移后得到的补码是:1111…101100在这里插入图片描述
⑤第一位为1,负数,不能直接得出原码。首先补码 -1 转为反码:1111…101011
⑥反码取反得出原码(符号位不变):1000…010100。结果为-20。

计算 -5 >> 2 的流程(结果:-2)

右移运算符 >>,右移后左边空出来的位以原来的符号位填充
在这里插入图片描述

计算 -5 >>> 2 的流程(结果:1073741822)

无符号右移运算符 >>,右移后左边空出来的位总是以0填充
在这里插入图片描述

4. java关键字

java中所有关键字都是小写,true、false、null都不是java关键字
在这里插入图片描述

5. 其他小知识点

  • Java的标识符规则:标识符用于给程序中的变量、类、方法命名。java语言的标识符可以由字母、数字、下划线和美元符$组成,其中数字不能打头。
  • char a = ‘风’;char b = ‘a’; char类型只能有一个字符,单括号括起来。(char a = ‘风景’,错误;char b = ‘aa’,错误)
  • double类型代表双精度浮点数,float类型代表单精度浮点数。Java语言的浮点数默认是double类型。如果float a = 5.12,会发现报错,因为这里的5.12默认的是double类型,需要改成:float a = 5.12f
  • 自动类型转换图:箭头左边可以自动类型转换为箭头右边的数值类型。在这里插入图片描述
  • 比较运算符:>= , <= ,!= ,比较在左,等号在右
  • 三目运算符:(a) ? if-a-true : if-a-false;
    例如:String str = 5 > 3 ? “5大于3” : “5小于3” ;
  • 循环语句中,continue只是忽略本次循环剩下的语句,接着开始下一次循环,并不会终止循环;break则是完全终止循环本身;return直接结束整个方法,不管这个return处于多少层循环中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值