1.变量
1.1定义
变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。
1.2分类
➢按所属的数据类型划分:
基本数据类型变量
引用数据类型变量
➢按被声明的位置划分:
局部变量:方法或语句块内部 定义的变量
成员变量:类的内部但是方法外部 定义的变量
1.3变量作用域
特别注意: 类的外面不能有变量的声明
2.数据类型
2.1定义
由于变量记录的数据内容大小不同,导致所需的存储单元大小不同,在Java语言中使用数据类型的概念加以描述。
相关–位(比特)、字节、字、字长:
➢关系:位=比特;1字节=8位(1Byte=8bit);1字=2字节(Byte);1字=16位。
➢分类:数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”,即二进制)为单位,计算机中通常以“计算机字”(一串数码作为一个整体,简称字)来处理或运算的;
➢组成:字(Word)的长度用位数来表示, 通常分为若干个字节,计算机的每个字所包含的位数称为字长,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),位是最小一级的信息单位 。
➢在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的,每个字所包含的位数即字长是指它一次可处理的二进制数字的数目。
【注】事实上,计算机内的二进制数值是以补码形式表示的。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。一个正数的补码和其原码的形式是相同的;负数的补码是:将该数的绝对值的二进制形式,按位取反后的结果再加1;二进制补码数值的最高位(最左位)是符号位:该位为0,表示数值为正数;该位为1,表示数值为负数。
2.2分类
1.基本数据类型(8种)
2.引用数据类型【注:String即字符串类型是引用数据类型,String不可变】
2.3数据类型转换
2.3.1自动类型转换
容量小的类型自动转换成容量大的数据类型
byte,short,int->float->long->double
byte,short,int不会互相转换,它们三者在计算时会转换成int类型
2.3.2强制类型转换
容量大的类型转换成容量小的数据类型时,要加上强制转换符
➢long->int:long l = 100L; int i= (int)l;
➢char->int:char c = ‘A’; int i= (int)c;
2.3.3boolean类型不能转换成任何其它数据类型
4.变量定义注意事项
4.1float变量定义
直接写出的浮点数字默认是double类型的,会提示需要强转,在浮点数字的后面加入f来表示写出的数字类型是float。
4.2long变量定义
直接写出的整型数字默认是int类型的,当值过大时会提示出错,在整型数字的后面加入l来表示写出的数字类型是long。
4.3char变量使用
char变量定义时只能用单引号引住一个字符,char c = ‘A’;
如果演示++c的规律,建议定义的c变量的字符用英文字母,如果字符采用中文是以部首去排序的。
5.运算符
5.1算术运算符
5.2赋值运算符
5.3关系运算符
5.4逻辑运算符
异或
5.5字符串连接符
5.6三目运算符
经典例题
【典型例题】变量调换小练习:定义整型变量a、b,写出将a、b两个变量值进行互换的程序。
第一种方法-第3方变量:
int a=10;
int b=20;
//采用第三方变量暂存其中一个变量的值
int c;
c=a;
a=b;
b=c;
System.out.println(a);
第二种方法-两数之差:
System.out.println("请输入要交换的两个数");
Scanner input = new Scanner(System.in);
int a = input.nextInt();
int b = input.nextInt();
System.out.println("交换前"+a+"和"+b);
a = a+b;
b = a-b;
a = a-b;
System.out.println("交换后"+a+"和"+b);
第三种方法-异或:
System.out.println("请输入要交换的两个数");
Scanner input = new Scanner(System.in);
int a = input.nextInt();
int b = input.nextInt();
System.out.println("交换前"+a+"和"+b);
a = a^b;
b = a^b;
a = a^b;
System.out.println("交换后"+a+"和"+b);