数据类型转换-运算符-方法

数据类型的转换

  • 同种类型之间是可以直接进行赋值操作的

  • 不同类型之间的赋值–>转换问题

  • 同种大数据类型之间才能发生转换

    • 基本类型之间转换(自动 强制)
    • 引用数据类型之间的转换(自动(上转型) 强制(下转型))
    • 基本类型和引用类型之间不可以直接进行转换(间接 包装类)
  • 保证大数据类型一致前提下

    • 基本类型与基本类型

      • 小数据类型相同

        前提:都是整型 或 都是浮点型

        大空间变量可以之间存储小空间

        小空间不可以直接存储大空间(需要进行强制类型转换,可能会有损失)

      • 小数据类型不同

        整型与浮点型:比较的是精度

        任何一个浮点型都可以存放整型,反之,需要强制类型转换

      • 整型与字符型

        一个int类型可以存放字符型,反之,需要强制类型转换

      • 布尔类型不能与其他类型进行转换

运算符

  • 按照运算符的功能分类

    • 算术运算符

      ​ + - * / % ++(自增) --(自减)

      x++ 与 x = x+1的区别:

      ​ ++ :会临时产生一个备份

      ​ ++在变量前,先自增再备份;

      ​ ++在变量后,先备份后自增。

      ​ 将备份进行赋值,之后备份销毁

      x = x + 1:将x变量空间内容取出,常量取出1,进行计算,再次存回x空间

      例如:

      Int a = 1;

      a = a++;

      // a 永远为 1 ,因为备份永远为1

    • 赋值运算符

    普通赋值:=

    混合赋值:+= -= *= /= %=

    ​ Int x = 1;

    ​ x+=2;// 3

      x = x+2;//3
    

    byte ,short ,char 三者任何两者或两者以上都首先会进行 自动类型提升(提升为int 类型,结果也为int类型)

    ​ Byte x = 1;//自动类型转换

    ​ x += 2//自动类型转换 也就是说 = 等价于 +=(-= ,*= ,/=, %=)都会进行自动类型转换

    ​ x = (byte)(x + 2)// 编译时异常

    • 关系运算符

      > >= < <= != == (对象 instanceof 类)

      区分 = 和 == 区别

      = 赋值符号

      == 比较前后的内容(值或引用)

    • 逻辑运算符

      &逻辑与 |逻辑或 ^逻辑异或 !逻辑非

      &&短路与 ||短路或

      • ^ 逻辑异或 :前后boolean值相同为假,不同为真

        性能的优化:

        ​ &&短路与:当第一个条件为false时,就为false

        ​ ||短路或:但第一个条件为true时,就为true

    • 位(bit)运算符

      &按位与 |按位或 ^按位异或 ~按位取反(这一行知道即可)

      <<按位左位移 >>按位右位移 >>>按位右位移(无符号)

      • 3&5 运算步骤

        First:把 3 和 5 转为二进制

        Second:竖着按照对应位置排列进行&(| ^)计算

        Third:将计算结果转换为十进制返回

      • ~6 = -7 0对应-1 1对应-2

        补充:原码 反码 补码

        例如: 6

        原码:00000000 00000000 00000000 00000110

        反码:00000000 00000000 00000000 00000110

        补码:00000000 00000000 00000000 00000110

        ​ -6

        原码:10000000 00000000 00000000 00000110

        反码:11111111 11111111 11111111 11111001 符号不动 按位取反

        补码:11111111 11111111 11111111 11110101 反码加1

      *计算机不管是正数还是负数都以补码进行存储

      注:反码是一种表示形式 取反是一个计算过程

      • .按位位移

        6<<2 = ?

        00000000 00000000 00000000 00000110

        00000000 00000000 00000000 00011000

        答案:24 总结:相当于乘以2的位移次幂

        6>>1 = ?

        00000000 00000000 00000000 00000110

        00000000 00000000 00000000 00000011

        答案:3 总结:相当于除以2的位移次幂

        -6 >>1 =?

        11111111 11111111 11111111 11110101

        ?1111111 11111111 11111111 11111010

        如果是 >> :保留符号位置 ? = 1 所以答案:-3

        如果是>>>:不保留符号位置 ? = 0,所以答案不是人算的

  • 按照运算符操作项目的分类

    • 一元运算符

      复合运算符(+= ,-= ,*= ,/=)

      自增(++) 与 自减(–)

      取反(!)

    • 二元运算符

      算术运算符

      逻辑运算符(除了!)

      比较运算符

      位运算符

    • 三元运算符

      格式: 数据类型 变量名 = x > y ? 表达式1: 表达式2

方法(先简单学习格式,后续详解)

  • 方法的定义

    public static 返回值类型 方法名(参数列表){

    ​ 方法体

    }

  • 方法的调用

    方法名()

*** 在方法的内部不能嵌套定义,可以嵌套调用**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值