文章目录
变量
- 概念:
①.内存中的一个存储区域
②.该区域的数据可以在同一类型范围内不断变化
③.变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值 - 变量的作用:用于在内存中保存数据
- 注意:
①.Java中变量必须先声明后使用
②.使用变量名来访问这块区域的
③.变量的作用域:其定义所在的一对{ }内
④.变量只有在其作用域内才有效
⑤.同一个作用域内,不能定义重名的变量名
一、 变量的分类
1.按数据类型
- 基本数据类型
基本数据类型 | 对应的包装类 | 所占字节数 |
---|---|---|
byte | Byte | 1 |
short | Short | 2 |
int | Integer | 4 |
long | Long | 8 |
float | Float | 4 |
double | Double | 8 |
boolean | Boolean | 4 |
char | Character | 2 |
-
注意:
①.在定义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,即可把原来的二进制数转化为八进制数。
④.二进制整数转十六进制:
- 二进制转十六进制方法为:十六进制是取四合一,即从二进制的小数点为分界点,向左(或向右)每四位取成一位;组分好以后,对照二进制与十六进制数的对应表,将四位二进制按权相加,得到的数就是一位十六进制数,然后按顺序排列,小数点的位置不变,最后得到的就是十六进制数。