一、引入

如何在Java程序中存储一些数据?可以采用变量和常量的方式

变量:可以变化的量    人的年龄、身高、体重……

常量:不会变化的量

字面常量(其实就是具体的值):

如:一个小孩的年龄,今年是5岁,明年是6岁。

   年龄(age)是变量,今年到明年变得是年龄,而不是5变成了6。

符号常量(真理数字,类似于π这样的数据)

java运算 年龄 java定义年龄用什么变量_十进制

 二、变量的声明

变量的声明:我要创建一个变量

变量的声明仅仅是一种声明,不会在内存上实际开辟内存存储数据!

写法:数据类型  变量名;

Java是强类型的编程语言,Java中的任何一个变量都必须明确指明其数据类型。

如: int i;  -->  int整型  i变量名,i里面可以存储整数类型的值

此时仅仅声明了并未创建空间!

java运算 年龄 java定义年龄用什么变量_十六进制_02

i=10;  --> 

这时候才会在内存中开辟一个空间,这个空间存储一个值:10

java运算 年龄 java定义年龄用什么变量_java_03

java运算 年龄 java定义年龄用什么变量_十进制_04

 

变量声明和定义可以写在同一行上,我们把Demo2.class反编译回来看看:

java运算 年龄 java定义年龄用什么变量_十进制_05

 

java运算 年龄 java定义年龄用什么变量_十进制_06

 

那么只声明不赋值会怎样?

java运算 年龄 java定义年龄用什么变量_十六进制_07

 

再把Demo2.class反编译看看:

java运算 年龄 java定义年龄用什么变量_十六进制_08

 

注意:

 (1)我们可以看到,只声明int i; 不会在内存中有任何的处理。只有赋值了(i=10;),它才会在字节码中正式声明一个变量。

java运算 年龄 java定义年龄用什么变量_java_09

(2)int i=10;  -->  声明变量同时赋值

“=”右边如果是一段表达式,那么会先运算出表达式的结果,然后再赋值

如:int i=10+10;

java运算 年龄 java定义年龄用什么变量_十六进制_10

(3)可以一次性声明多个变量

int a=1,b=2,c=3,d=4;

java运算 年龄 java定义年龄用什么变量_开发语言_11

java运算 年龄 java定义年龄用什么变量_十进制_12

 

java运算 年龄 java定义年龄用什么变量_开发语言_13

 

(4)变量的值是可以反复修改的

变量是要声明一次类型即可,后面直接使用变量,不需要反复声明其类型。

 

这样写是不可以的:

int x=11;

      System.out.println(x);

      int x=12;

      System.out.println(x);

java运算 年龄 java定义年龄用什么变量_java_14

 

可以这样写:

java运算 年龄 java定义年龄用什么变量_java_15

java运算 年龄 java定义年龄用什么变量_java_16

 

三、变量的作用范围

1、局部变量

方法内/方法块内/多条件分支或者循环内声明的变量,仅能在当前方法内/代码块内/多条件分支或者循环内。

java运算 年龄 java定义年龄用什么变量_java运算 年龄_17

java运算 年龄 java定义年龄用什么变量_十进制_18

 

2、成员变量(全局变量)

声明在方法之外的变量,可以通过访问修饰符控制访问范围,但是至少可以在当前类内部可见。

 

java运算 年龄 java定义年龄用什么变量_java运算 年龄_19

为什么只输出了一个20?

a方法只是写了,并没有执行。

程序启动,只执行主方法的代码,并没有执行a方法中的代码。

虽然没有执行,但也没有报错,说明z在a方法中也是识别的,只不过没有实现而已。

java运算 年龄 java定义年龄用什么变量_十六进制_20

四、常量 

不可修改的变量 --> 常量

字面值常量:1 2 3 4

符号常量:圆周率

变量的值是可以修改的:

java运算 年龄 java定义年龄用什么变量_java运算 年龄_21

我们加上“final”来修饰“i”,看看会发生什么:

java运算 年龄 java定义年龄用什么变量_java_22

 

final修饰的变量叫做“常量”,只能赋值一次,不可以修改值!

五、进制及其转换

java运算 年龄 java定义年龄用什么变量_开发语言_23

 

类型

1、十进制

0,1,2,3,4,5,6,7,8,9

逢十进一  人类喜欢的进制   45个算法

2、二进制:

0,1

逢二进一  计算机底层的进制  运算快 、运算准确  4个算法(0+0/1+1/0+1/1+0)

3、八进制:

逢八进一

4、十六进制:

逢十六进一

 

例子

1)把十进制转化为二进制

java运算 年龄 java定义年龄用什么变量_java_24

java运算 年龄 java定义年龄用什么变量_开发语言_25

 

 

为了将一个十进制转换成二进制数,可以采用将其不停地除以二进制的基数 2,直到商为0,然后将每一步的得到的余数串起来,从左向右书写,就是我们所要转换的二进制数。

java运算 年龄 java定义年龄用什么变量_java_26

 

2)二进制(101110)转化为十进制

java运算 年龄 java定义年龄用什么变量_java_27

 

由于所处处的位置不同,每个数位都有一个不同的放大倍数,称为“ 权 ”。每个数位的权是这样计算的:从右向左开始,以基数为底,指数从0开始递增的幂比如一个二进制数10110001,它的基数是2,所以要这样计算它等值的十进制数。:

10110001 = 1×2 + 0×2 + 1×2 + 1×2 + 0×2 + 0×2 + 0×2 + 1×2 = 177天

(3)八进制 转换为  十进制

例如:八进制 16

1*8^1  +  6*8^0  = 14

(4)十进制 转换为 八进制

java运算 年龄 java定义年龄用什么变量_java运算 年龄_28

(5)八进制 到 二进制 

可以把十进制当做一个“中转站”

八进制--》十进制--》二进制

实际上我们也不用这么麻烦,我们可以直接使用程序员计算器:

java运算 年龄 java定义年龄用什么变量_开发语言_29

 

(6)十六进制 到 十进制

要把一个十六进制数转换成我们熟悉的十进制数,我们采用和前面一样的方法。只不过, 各个计算数位的权时,幂的底数的英文16.比如将十六进制数125转换成十进制数的方法如下:

125H = 1×16 + 1×16 + 1×16 = 293D

(7)十进制到十六进制的转换

要把一个十二进制数转换成十六进制数,则可以采取不停地除以16并取其余数的策略。

java运算 年龄 java定义年龄用什么变量_java_30

 

(8)二进制到十六进制的互换 

 

java运算 年龄 java定义年龄用什么变量_开发语言_31

如果将一个二进制数从右向左,分成4比特为一组的形式,分别将一组的值转换成十六进制数,就可以得到这个二进制数所对应的十六进制数。