2.4 常量与变量

2020-02-18  本文已影响0人  姗婷

一、常量

常量表示不能改变的数值

1.1Java中常量的分类:

• 整数常量。所有整数
• 小数常量。所有小数
• 布尔型常量。较为特有,只有两个数值。true false。
• 字符常量。将一个数字字母或者符号用单引号( ' ' )标识。如: '4',"ab","",
• 字符串常量。将一个或者多个字符用双引号标识。
• null常量。只有一个数值就是:null.

1.2对于整数:java有三种表现形式

• 十进制:0-9 ,满10进1.
• 八进制:0-7 ,满8进1. 用0开头表示。
• 十六进制:0-9,A-F,满16进1. 用0x开头表
十进制转2进制: 原理对10进制进行除2过程
二进制转十进制: 原理对二进制乘以2的幂数过程
进制的基本转换
• 十进制八进制互转
如90 ,先转成2进制001 011 010,再转成8进制132
• 十进制十六进制互转
如90 ,先转成2进制:0101 1010,再转成十六(4个二进制位就是十六进制位)进制0x5A
• 负数的二进制表现形式
• 对应的正数二进制取反加1
如6,二进制 110. 推到-6
6的表示形式:0000-0000 0000-0000 0000-0000 0000-0110
6取反形式: 1111-1111 1111-1111 1111-1111 1111-1001
加1的形式: 0000-0000 0000-0000 0000-0000 0000-0001
-6表示形式: 1111-1111 1111-1111 1111-1111 1111-1010

结论:负数的最高位为1,正好数的最高位为0
一个字节是8个二进制位组成 一个整数由4个字节组成

二、变量

1.1变量的概念:

• 内存中的一个存储区域
• 该区域有自己的名称(变量名)和类型(数据类型)
• 该区域的数据可以在同一类型范围内不断变化

1.2为什么要定义变量:

• 用来不断的存放同一类型的常量,并可以重复使用

1.3使用变量注意

• 变量的作用范围(一对{}之间有效)
• 初始化值定义变量的格式:
• 数据类型 变量名= 初始化值;
• 注:格式是固定的,记住格式,以不变应万变。
理解:变量就如同数学中的未知数。


image.png

byte :8个二进制组成 取值:-128~127(2的7次方-1)
short:16个二进制组成 取值:-32768~32767(2的15次方-1)
int:32个二进制组成 取值:(2的31次方-1)

public class VarDemo
{public static void main(String[] args)
  {
      //定义一个变量
      //数据类型 变量名 = 初始化值;
      //定义一个int 类型变量取值为4;
      int x = 4;
      System.out.println("x");        
      x=10;
      System.out.println("x");
      byte b = 3;
      short s =3000;
      long l = 6l;
      float f = 2.3f;
      double d = 2.32;

      char ch1 = '4';
      char ch2 = 'b';
      char ch2 = '+';
}
}

注意:什么时候定义变量?当数据不确定的时候。需要对数据进行存储时,就定一个变量来完成存储

int i = 1;
i = i +1;

三、类型转换

3.1 自动类型提升(也叫显示转换)

byte b = 3;
/*byte类型的b先自动类型提升成int与1相加,加的结果就是int类型,
结果b又要变成byte类型就会丢失精度,运算结果报错*/
b = b + 1;

3.2 强制类型转换(也叫显式类型转换)

byte b = 3;
b =byte( b + 1);

表达式的数据类型自动提升
• 所有的byte型、short型和char的值将被提升到int型。
• 如果一个操作数是long型,计算结果就是long型;
• 如果一个操作数是float型,计算结果就是float型;
• 如果一个操作数是double型,计算结果就是double型。
分析 System.out.println(‘a’)与System.out.println(’a’+1) 的区别。

System.out.println(‘a’);//输出的是字符a

System.out.println('a'+1);/*下列运行结果98;'a'是字符类型2个8位二进制;
1是int类型4个8位二进制,相加得4个8位二进制*/

System.out.println(char('a'+1));//先把('a'+1)计算是98,再转换成char类型b
上一篇 下一篇

猜你喜欢

热点阅读