栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA基础Day03

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA基础Day03

复习

 

  1. 进制
    1. 二、八、十、十六进制的计算规则
    2. 进制之间的转换,尤其是和二进制的转换
  1. 计算机中的基本存储单位:b -> B -> KB -> MB -> GB -> TB -> PB
  2. 变量:定义格式,先定义后使用,先赋值后使用
  3. 数据类型
    1. 分类:基本类型和引用类型
    2. 基本类型:byte,short,int,long,float,double,char,boolean
    3. 整数默认是int,小数默认是double
    4. long类型的数据结尾是l/L,float类型的数据结尾是f/F
    5. char依靠Unicode编码体系中的码表来转化为数字,所以char类型可以直接存储数字

char c1 = 'a';

char c2 = '中';

char c3 = 97;

char c4 = 'u009a';

  1. 原反补三码
    1. 计算机中存储的是数据的补码形式
    2. 正数的原反补三码一样,负数的反码是在原码的基础上最高位不变,其余位0<->1,负数的补码是在反码的基础上+1
    3. 由于数据是以补码形式来存储和计算,二进制中1越大,数越大

运算符

一、算术

  1. 符号:+ - * / % ++ --
  2. 整数计算结果一定为整数,不会发生类型的提升/转换。所以如果需要在计算过程中来保留小数位,就必须有小数参与运算
  3. byte、short和char类型在计算的时候会自动提升为int类型
  4. 小类型和大类型运算,结果一定是大类型
  5. 除以0的问题
    1. 整数/0 -> ArithmeticException - 算术异常
    2. 非零小数/0 -> ±Infinity
    3. 0.0/0,0/0.0,0.0/0.0 -> NaN
    4. 非零小数/0.0 -> ±Infinity
  6. %:取模运算(取余运算)

int i = 10;

int j = 3;

int k = i % j;

Java中的取余运算和数学中取余运算略微不同:Java中允许对负数和小数取余

7.++:自增,在本身的基础上+1。

  --:自减,在本身的基础上-1

  int i = 5;

  i++; // 等同于i = i +1;

注意问题:

1)在Java中,允许byte,short和char类型,自增完成之后,结果类型不发生改变

2)++/--允许放在变量之前,也允许放在变量之后,即i++或者++i

int x = 5;

int y = x++;  --> 由于x在前,所以会先将x的值5取出来,然后x会进行自增,自增为6,再将取出来的5赋值给y -> 先取值后自增

int x = 5;

int y = ++x; --> 由于++在前,所以先将x自增为6,然后将结果赋值给y --> 先自增后取值

二、赋值

  1. 符号:=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=,>>>=
  2. +=表示在当前变量的基础上加上指定的单位。例如

int i = 5;

i += 3; // i = i + 3;

  1. byte、short和char可以做赋值运算,在做赋值运算的时候不会发生类型的提升。例如

byte b = 3;

b += 2; // 在底层依然以int运算,但是在最后赋值的时候强制转化为byte

  1. 赋值运算永远发生在最后

三、比较

  1. 符号:>,<,>=, <=,==,!=

                 例如判断a是否等于3:a == 3

  1. 比较运算的结果一定是布尔值:true/false

四、逻辑

  1. 逻辑运算针对布尔值来进行运算
  2. 符号:&(And,与),|(Or,或),!(Not,非),^(Xor,异或),&&(短路与),||(短路或)
  3. 规则

符号

规则1

规则2

规则3

&

true & true = true

true & false = false

false & false = false

|

true | true = true

true | false = true

false | false = false

!

!true=false

!false=true

^

true ^ true = false

true ^ false = true

false ^ false = false

  1. 逻辑运算在需要对多个条件来进行综合

获取一个大于6的偶数

n -> n是否大于6

  -> n是否是一个偶数

 (n > 6) & (n % 2 == 0)

如果学生考试成绩<60或者缺勤次数达到5次,则记为不及格

s -> 考试成绩  t - > 缺勤次数

(s<60) | (t>=5)

  1. 短路与

获取一个大于6的偶数

n -> n是否大于6

  -> n是否是一个偶数

boolean r1 =  (n > 6) & (n % 2 == 0)

假设n = 4,n>6条件不成立 -> 确定结果一定不成立

boolean r2 =  (n > 6) && (n % 2 == 0)

&&:如果前边条件不成立,则后边不执行

  1. 短路或

如果学生考试成绩<60或者缺勤次数达到5次,则记为不及格

s -> 考试成绩

t - > 缺勤次数

boolean r3 = (s<60) | (t>=5)

如果一个学生考试成绩为59分,那么此时可以确定这个学生已经不及格

boolean r4 = (s<60) || (t>=5)

||:如果前边条件成立,则后边不执行

五、位

  1. 位运算针对整数的补码来进行运算
  2. 符号:&,|,^, <<,>>,>>>,~
  3. &:与

  1. |:或

  1. ^:异或

  1. 交换值的方式
    1. 异或法:可以通过异或运算来交换两个整数变量的值

  1. 加减法:可以通过加减运算来交换俩个数字变量的值

  1. 追尾法:通过定义第三方变量的方式俩交换两个变量的值

  1. <<:左移

规律总结:在一定范围内,左移几位就是乘以2的几次方。例如6<<2=6*22=6*4=24

需要计算12*24的最有效率的方式是12<<4

  1. >>:右移

规律总结:在一定范围内,右移几位就是除以2的几次方。例如35>>3=35/23=35/8=4

  1. >>>:无符号右移。与右移不同的地方在于,数据右移之后,无论正负,空出来的高位次统一补0。正数的右移和无符号右移相同,负数移动完成之后会变成正数
  2. ~:取反

规律总结:~i=-i-1。例如~6=-6-1=-7

六、三元

  1. 三元又称之三目或者条件。格式:条件表达式 ? 表达式1:表达式2。如果条件表达式成立(结果为true)则执行表达式1,反之则执行表达式2。要求表达式1和表达2的结果类型要一致。例如如果需要获取两个数字中的比较大的数

int max = a > b ? a : b;

  1. 案例:输入一个年龄,输出是否是一个成年人
  2. 练习:如果一户人家每个月的用电量在100度以下,那么每度电收费0.5元;如果超过100度,但是不超过400度,那么超过100度的部分每度电收费0.8元;如果超过400度,那么超过的部分每度电收费1.2元。输入一个用电度数,输出应缴纳的电费

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/845773.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号