2018-08-14

Java变量、数据类型、运算符和分支结构

变量概述

采用一个方便记忆的名称来代替数据在内存中的实际地址,这个名称就是变量

一、为什么需要变量

什么是内存

计算机包括显示器,cpu,主板,内存,硬盘等部件。内存是计算机用来保存计算时所需数据的部件。当java 程序运行时,也是通过内存存储这些运行期间的数据。

内存怎么存数据呢?
举个生活中的栗子

客人去宾馆开房,宾馆需要给客人安排一个房间。每个房间有一个唯一的房间号。

同样道理

同样道理,为了在内存中存储数据,内存也要为每个数据分配一块空间,每一块空间有一个唯一的地址。

如何表示数据占用一块空间的大小--s字节

位是计算机中最小的数据存储单位,每一位只能存0或1。8个2进制位构成一个字节,是存储空间的基本计量单位。一个字节可以存储一个英文字母或者半个汉字。换句话说一个汉字占2个字节存储空间。
我们存储在计算机中的数据都是按字节来计算占用空间的。比字节大的 大家都听说过 kB, MB, GB, 而这个B 就是字节。每个字节又是由8位0和1组成的。这种只有0和1的数字进制叫二进制。

二进制和十进制如何转换

二进制只有0,1两个值,十进制由0 到 9 十个数,那么他们之间怎么转换呢?

十进制转二进制算法如下

十进制转二进制 采用 “除2取余,逆序排列”,具体做法:
用2去除10进制整数,可以得到一个商和余数;再用2去除商,又可以得到一个商和余数,如此进行,直到商为0为止,然后把先得到的余数作为二进制低位,后得到的余数作为二进制高位,依次排列起来。

二进制转十进制算法如下

二进制转十进制 从二进制最后一位开始计算,依次列为第0,1,2...位,第n位数乘以2的n 次方,得到的结果相加,就是答案。

如何表示数据占用一块空间的地址

内存采用分块存储数据。每一块都相互对立。如果要找到这个数据的话,必须知道这个数据在内存中的地址。但是内存中地址通常用16位进制表示,其取值范围为0x00000000-0xffffffff. 如果让你记忆一两个这种地址还可以,如果有很多这种16位进制地址就很难记忆了。那么如何简化对内存地址的记忆?

二、什么是变量

采用一个方便记忆的名称来代替内存实际地址,这个名称就是变量

三、怎么使用变量

使用变量包括 声明变量和为变量赋值两部分
1 声明变量

语法 数据类型 变量名

举个栗子
int i;
double d;
char c;
变量名命名规则

以,英文字母,下划线及数字的组合;
Java 中变量名称严格区分大小写;
在定义名称时,为提高阅读性,名称应该尽量有意义。

数据类型说明参见数据类型节
2变量赋值

语法 变量名 = 值;

举个栗子
i=1;
d=1.1;
c='A';
步骤1,2可合并为一步
举个栗子
int i = 1;
double d = 1.1;
char c = 'A';    

四、什么时候 在哪使用变量

当需要描述数据的时候,我们就需要定义变量

举个栗子

当使用程序计算 1+2=? 的时候,就需要定义三个变量
int one=1;
int two=2;
int result = one + two;

五、常见错误分析

1 变量没有赋值就使用, 例如 i=2;
2 变量名称重复 例如 int var1=1;
int var1=2;
3 变量命名不符合定义规则 例如 int 1var

六、变量小结

1 当需要描述数据的时候,需要定义变量
2 变量命名规则

数据类型概述

数据类型描述数据是属于哪一种类的。Java 中包括8种基本数据类型 byte, short, int, long, float, double, boolean, char

一、什么是数据类型

举个栗子

生活中数据类型包括 文字,数字,图片,声音,视频等种类

同理

java中的数据可以分为若干种类型。 Java中包括8种基本数据类型 byte, short, int, long, float, double, boolean, char

二 变量完整描述

首先 使用一个名称来简化对一个数据的内存地址的记忆
其次 使用数据类型描述这个数据属于哪一类数据
最后 给这个数据一个符合数据类型的值来初始化这个数据
总结 一个完整的变量包括三部分: 数据类型 变量名称 值

举个栗子

int var1=1;
char var2='A';

三 JAVA八种基本数据类型

整数型

byte 可以用来存储0,1,2 ...;占用一个字节长度存储一个变量;从 -128 到 127 共3位
short
int 可以用来存储0,1,2 ...;占用4个字节长度存储一个变量;从-2147483648 到 2147483647 共10位
long 可以用来存储0,1,2 ...;占用8个字节长度存储一个变量; 共19位

图1

浮点型

float 用来保存小数 3.14;占用4个字节长度存储一个变量;从-3.403E38 到 3.403E38
double 用来保存小数 3.14;占用8个字节长度存储一个变量;从-1.798E38 到 1.798E38

图2

字符型 char

可以存储 'A', 'b','男' ... 等字符
占用两个字节存储一个变量
只能存储长度为1的字符

逻辑型 boolean

值只有 true 和 false 两个

四 数据类型之间的转换

为什么需要类型转换

因为计算机对不同的数据类型有不同的保存方式,例如:int(整型)类型,占4位。而double(双精度)类型占8位。当高位转向低位的时候,如果不进行类型转换,就会造成数据溢出。为保护数据信息,需要进行数据类型转换

类型转换前提条件

1)两种类型是彼此兼容的
2)转换的目的类型占得空间范围一定要大于转化的源类型

类型转换分类

自动类型转换
由低字节向高字节自动转换,byte->short->int->long->float->double
强制类型转换
由高字节向低字节转换,可能丢失精度。 int a=(int)3.14;

一、赋值运算符

举个栗子

1.将值赋给变量 int i=10;
2.将表达式赋值给变量
int i= 10;
int b=(i+3)*(i+5);
。。。等等

注意此处的(i+3)*(i+5) 就是表达式。表达式往往通过计算一个结果,然后将结果赋给一个变量。
什么是赋值运算符

在给某个变量赋值时,使用“=”号赋值,那么“=”就是赋值运算符。通过赋值运算符把某个值赋给变量或者把某个表达式的值赋给变量。表达式就是符号与操作数的结合。

二、算数运算符

举个栗子

int a=1;
int b=2;
int c=a+b;
上述代码中变量c的值就是变量a加上变量b的和。
程序中的算数运算符与数学中的算数运算符基本一致。所以在使用中应该遵循数学中算数运算符的使用规则,如
1 先乘除,后加减
2 有括号先计算括号内的值
3 除数不能为0

什么是算数运算符

算数运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算数运算符
表格中假设整数变量A的值为10,变量B的值为20.

图3

取余数操作

如果需要取两个数的余数,那么需要使用“%”来进行计算,

举个栗子

获取5和3的余数
int i=5%3 //获取5除以3的余数,i的值为2

自赠自减操作
前自增(++x)前自减(--x)
前自增自减是先进行自增或自减运算,再进行表达式运算
举个栗子

int a=3;
int b=++a;
int c=3;
int d=--c;
System.out.println("a的值"+a);
System.out.println("b的值"+b);
System.out.println("c的值"+c);
System.out.println("d的值"+d);
a的值4
b的值4
c的值2
d的值2

后自增(x++)后自减(x--)
后自增自减是先进行表达式运算,再进行自增或自减运算
举个栗子

int a=3;
int b=a++;
int c=3;
int d=c--;
System.out.println("a的值"+a);
System.out.println("b的值"+b);
System.out.println("c的值"+c);
System.out.println("d的值"+d);
a的值4
b的值3
c的值2
d的值3

三、关系运算符

举个栗子

int a=10;
int b=20;
System.out.println("a==b="+(a==b));
System.out.println("a!=b="+(a!=b));
System.out.println("a>b="+(a>b));
System.out.println("a System.out.println("b>a="+(b>a));
System.out.println("b 其结果为
a==b=false;
a!=b=true;
a>b=false;
a b>a=true;
b

什么是关系运算符

下表列出了所有的关系运算符
表格中假设整数变量A的值为10,变量B的值为20.

图4

“=”和“==”的区别

四、运算符优先级

算数运算符>关系运算符>逻辑运算符

练习题

1.定义一个变量,类型int,名称 var1


  1. question[int&var1]type[2]filePath[/Demo/com/lanou/var/Var01.java]~
    1.定义三个变量,第一个变量 类型int,名称 var1,值10;第二个变量 类型float,名称 var2,值5.1f;第三个变量 类型float,名称 var3, 将 var1 加上var2 并赋值给 var3。 要求输出var3的值。 [1]:question[int&var1&float&var2&float&var3&15.1f]type[2]filePath[/Demo/com/lanou/dataType/DataType01.java]~ ↩

你可能感兴趣的:(2018-08-14)