JAVA中变量的定义与规则,以及进制之间的转换

变量

  • 概念:
     ①.内存中的一个存储区域
     ②.该区域的数据可以在同一类型范围内不断变化
     ③.变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
  • 变量的作用:用于在内存中保存数据
  • 注意:
     ①.Java中变量必须先声明后使用
     ②.使用变量名来访问这块区域的
     ③.变量的作用域:其定义所在的一对{ }内
     ④.变量只有在其作用域内才有效
     ⑤.同一个作用域内,不能定义重名的变量名

一、 变量的分类

1.按数据类型

  • 基本数据类型
基本数据类型对应的包装类所占字节数
byteByte1
shortShort2
intInteger4
longLong8
floatFloat4
doubleDouble8
booleanBoolean4
charCharacter2
  • 注意:
     ①.在定义long类型时,可不在数据项加L,数据项默认为int,但超过int类型范围的数据一定要加L,否则编译不通过。
     ②.在定义float类型时,数据项必须加F,数据项默认为double,否则编译不通过。
     ③.在定义String类型时,数据项必须加" "。否责编译不通过。

  • 引用数据类型
      ①.class(类)
      ②.interface(接口)
      ③.array(数组)
      ④.ensu(枚举)
      ⑤.annotation(注解)

2.按变量在类中声明的位置

  • 在方法体外,类体内声明的变量称为成员变量
      ①.实例变量(不以static修饰)
      ②.类变量 (以static修饰)

  • 在方法体内部声明的变量称为局部变量
      ①.形参(方法、构造器中定义的变量)
      ②.方法局部变量(在方法内定义)
      ③.代码块局部变量(在代码块内定义)

  • 注意
      相同:都有生命周期
      不同:局部变量除形参外,需显式初始化

二、变量的基本数据类型转换

1.自动类型转换

  • 定义:容量小的类型自动转换为容量大的数据。
  • 使用:有多种类型的数据混合运算时,系统首先自动将所有数据类型转换成容量最大的那种数据类型,然后再进行计算
  • 注意:
      ①.byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
      ②.boolean类型不能与其他数据类型运算。
      ③.当把任何基本数据类型的值和字符串(String)进行连接运算时(只能是连接运算 ‘+’ 号),基本数据类型的值将自动转化为字符(String)类型。

2.强制类型转换

  • 定义:自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:( ),但可能造成精度降低或溢出,格外要注意。(会发生截断操作)
  • 注意
      通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。boolean类型不可以转换为其他的数据类型。

关于进制

1.为什么使用二进制?

  • 二进制无论在理解和实现上都比较容易,正好与物理部件的两种状态相对应,而且二进制正好和逻辑上的真和假相对应。所以所有数字在计算机底层都以二进制的形式存在。

2.整数的四种表达方式

  • 二进制:0,1,满2进1。以0b或0B开头。
  • 十进制:0~9,满10进1。
  • 八进制:0~7,满8进1。以数字0开头表示。
  • 十六进制:0-9以及A~F,满16进1。以0x或0X开头表示。此处的A-F不区分大小写。如:0x21AF+1=0x21B0

3.二进制详解

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

4. 进制之间的转换

 ①.二进制整数转十进制:

  • 无符号整数的二进制转化为十进制数:从二进制数的右边第一位起,从右往左,先用二制位置上的数乘以2的相应位数的幂,然后把每一位的乘积相加即可得到二进制数对应的十进制数。
  • 带符号整数的二进制转化为十进制:先观察最好位是否为1,最高位为1则表示负数,为0表示整数。此时如果最高位为1二进制表示的形式为补码,先将补码-1化为反码,再将反码除最高位按位取反化为二进制原码,再按照无符号整数的二进制转化为十进制数(最高位不算)。

 ②.十进制整数转二进制:

  • 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
    具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

 ③.二进制整数转八进制:

  • 二进制转化为八进制具体方法为:把要转化为八进制的二进制数据,从右往左依次,三位一组,不足三位的,二进制左边补0,然后把这些三位一组的各个分组,按照000、001、010、011、100、101、110、111分别转化为0、1、2、3、4、5、6、7,即可把原来的二进制数转化为八进制数。

 ④.二进制整数转十六进制:

  • 二进制转十六进制方法为:十六进制是取四合一,即从二进制的小数点为分界点,向左(或向右)每四位取成一位;组分好以后,对照二进制与十六进制数的对应表,将四位二进制按权相加,得到的数就是一位十六进制数,然后按顺序排列,小数点的位置不变,最后得到的就是十六进制数。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爪哇哇哇哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值