Java笔记(四)……常量与变量
常量
常量表示不会改变的数值。
Java中常量的分类:
整数常量:所有整数
小数常量:所有小数
布尔型常量:较为特有,只有两个数值,true false
字符常量:将一个数字字母或者符号用单引号(' ')标识
字符串常量:将一个或者多个字符用双引号标识。
null常量:只有一个 null 数值
整数进制:
对于整数:Java 有三种表现形式
- 十进制:0-9,满10进1
- 八进制:0-7,满8进1
- 十六进制:0-9,A-F,满16进1,用0x开头表示。
二进制
- 二进制:0-1,满2进1,现代的电子计算机技术全部采用的是二进制,因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现
- 二进制的发明非常伟大,有很多含义,将来有机会单独发一篇博客追溯二进制的来龙去脉
- IP地址每一段是一个字节表示,每个字节是8位二进制位,这样来操作数据节省很多内存
进制转换:
无论什么进制,在内存中其实都是用二进制表示的,只不过显示的方式不一样,所以转换的时候,无论什么进制都看做是一个二进制数就可以了,后期的移位操作也是基于二进制的,所以用二进制作为基础进行进制转换比较方便。
十六进制就是每四个二进制位表示一位
八进制就是每三个二进制位表示一位
所以
- 任何进制------>十六进制:每四位一截取
- 任何进制------>八进制:每三位一截取
- 任何进制------>二进制:每一位一截取
- 任何进制------>十进制:默认表现形式,直接打印便是十进制数
特殊情况:
负数------>二进制(负数的二进制表现形式)
简单来说,一个字节只能表示256个数,如果无符号,则是0-255,如果有符号,则首位是符号位,0表示正数,1表示负数,则能表示的正数负数各一半,也就是0-127,即0000-0000--->0111-1111,那么剩下的二进制数则表示负数,这里引进了补码的概念,简单说就是二进制是没有符号的,所以表示负数的二进制数是其正数的一个补充数字,那么从1000-0000--->1111-1111分别对应的是-128- (-1),补码的计算是由该负数的反码(原码取反)+1,原码则是绝对值的二进制。
变量
变量的概念:
内存中的一个存储区域
该区域有自己的名称(变量名)和类型(数据类型)
该区域的数据可以在同一类型范围内不断变化
为什么要定义变量:
用来不断的存放同一类型的常量,并可以重复使用
即更方便的操作内存
使用变量注意:
变量的作用范围(一对{}之间有效)
初始化值
定义变量的格式:
数据类型 变量名 = 初始化值;
注:格式是固定的,记住格式,以不变应万变。
理解:变量就如同数学中的未知数。
数据类型:
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间
整数默认是 int 型,小数默认 double 型
类型转换:
类型转换分为自动转换(隐式转换)和强制转换(显式转换)
1: //3虽然是个整数,但它是个常量2: //在赋值过程中,计算机会判断它是否在b的范围内,如果在,便可赋值3: byte b = 3;4: //4是个整数,所以在加法运算过程中,b会自动提升成int型,结果为int型数值5: //但结果是个int型变量,有可能超出byte型的范围,所以编译器报错,容易损伤精度6: b = b + 4;
7: //进行强制转换便可以避免报错问题8: b = (byte)(b + 4);
char类型是可以计算的,ASCII码表中定义了字符对应的数值