变量
概念:
计算机内存中的一块存储空间。
变量的组成部分:
数据类型,变量名,变量值
定义变量的方式:
//1. 先声明,后赋值
//声明 数据类型 变量名;
int money;
//赋值 变量名 = 值;
money = 100;//=:代表赋值,将等号右面的值赋值给左面的变量
//System.out.println("money");//error
System.out.println(money);
//2. 声明并赋值
//语法:数据类型 变量名 = 值;
int a = 90;
System.out.println(a);
//3. 同时声明多个变量并赋值
//语法: 数据类型 变量名1,变量名2,变量名3 = 值...
int b = 10,c = 20,d = 30,e = 40;
//b = 10;
//c = 20;
//d = 30;
//e = 40;
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);//注意:变量必须先赋值再使用
数据类型
分类:
基本数据类型和引用数据类型
基本数据类型:
整数,小数,布尔,字符
数据类型 字节 取值
byte 1字节 -128~127
short 2字节 -32768~32767
int 4字节 -2147483648~2147483647
long 8字节 不记
float 4字节 不记
double 8字节 不记
boolean 1字节 true/false
char 2字节 0~65535
整数类型
//byte - 1字节 = 8bit = 0111 1111(二进制数据)
//0100 1011
byte a = 127;//-128 ~ 127
System.out.println(a);
//short -- 2字节 = 16bit = 0111 1111 1111 1111
//取值: -32768~32767
short s = 32767;
System.out.println(s);
//int -- 4字节 = 32bit =
//取值:-2147483648~2147483647
int i = 2147483647;
System.out.println(i);
//long -- 8字节 = 64bit
long l = 2147483648L;
//注意:值的末尾需要加"L"或者"l"
System.out.println(l);
小数类型
//定义变量
float f = 3.4E38F;
//注意:定义float类型需要在数值后面加"F"或者"f"
System.out.println(f);
double d = 1.7E308;
System.out.println(d);
字符类型
//定义char类型的数据
char c = '中';
System.out.println(c);
char c2 = 97;
System.out.println(c2);
ASCII表
布尔类型
boolean b = true;
boolean b2 = false;
System.out.println(b);
System.out.println(b2);
boolean b3 = 10<5;
System.out.println(b3);
String类型做拼接
//String类型做拼接
System.out.println("hello"+100);//hello100
System.out.println(10+20+"50");//3050
System.out.println(10+'0'+20+"50"+1);//78501
int i = 100;
String s = i+"";//100, 把整数类型转换成字符串类型
System.out.println(s);
类型转换
1>自动类型转换:目标类型大于源类型。
举例:byte b = 10; short s = b;
2>强制类型转换:目标类型小于源类型。
举例:short s = 100; byte b = (byte)s;
short s = 100;
int i = s;//目标类型大于源类型:自动类型转换
System.out.println(i);
byte b = 20;
short s2 = b;
System.out.println(s2);
//小数强转整数省略小数部分
double d = 10.9;
int i = (int)d;
System.out.println(i);
char c = 'A';
int i2 = c;
System.out.println(i2);
//boolean类型不能够和其他类型做转换
boolean b2 = true;
int i3 = (int)b2;
System.out.println(i3);
自动类型提升
(1)两个操作数做运算,如果有一个double类型,最终结果提升为double类型。
(2)没有double类型,有float类型,最终计算结果提升为float。
(3)没有float类型,有long类型,最终计算结果提升为long类型。
(4)没有long类型,有int类型,最终计算结果提升为int类型。
(5)没有int类型,均为short、byte、char,最终计算结果提升为int。
(6)特殊:String类型和任何类型做相加操作,实为拼接。
//两个操作数做运算,如果有一个double类型,最终结果提升为double类型。
int a = 10;
double d = 10.22;
double d2 = a + d;
//没有double类型,有float类型,最终计算结果提升为float。
float f = 1.1F;
int i = 10;
float a = f+i;
//没有float类型,有long类型,最终计算结果提升为long类型。
long l = 1000L;
int i = 100;
long l2 = l+i;
//没有long类型,有int类型,最终计算结果提升为int类型。
byte b = 10;
int i = 20;
int i2 = b+i;
byte b = 10;
byte b2 = 20;
int i = b + b2;
short s = 100;
short s2 = 200;
int i2 = s+s2;
byte b3 = 100;
short s3 = 2000;
int i3 = b3+s3;
byte b4 = 10;
char c = 65;
int i4 = b4+c;
运算符
1>算数运算符:
+ 加法
- 减法
* 乘法
/ 除法
% 取余
++ 单独使用表示自增1,如果参与运算,前++表示先自增1,然后执行当前操作
后++表示先执行当前操作,然后自增1
-- 单独使用表示自减1,如果参与运算,前--表示先自减1,然后执行当前操作
后--表示先执行当前操作,然后自减1
2>赋值运算符(掌握)
= 表示赋值
+= 表示求和后赋值 举例:int a = 10; a+=1;这句话相当于:a = (int)(a+1);
-= 表示求差后赋值 举例:int a = 10; a-=1;这句话相当于:a = (int)(a-1);
*= 表示求积后赋值 举例:short s = 10; s*=1;这句话表示:s = (short)(s*1);
/= 表示求商后赋值 举例:byte b = 10; b/=3;这句话表示:b = (byte)(b/3);
%= 表示求余后赋值 举例:long l = 10L;l%=3;这句话表示:l = (long)(l%3);
//除法和取余
int i = 10;
int i2 = 3;
int i3 = i/i2;//只取商
System.out.println(i3);
int i4 = i%i2;//只取余数
System.out.println(i4);
double i6 = 3.0;
double i7 = i/i6;
System.out.println(i7);//获取准确值
//++:单独使用无论是放在变量之前还是之后都表示自增1
int a = 10;
System.out.println(++a);//11
System.out.println(a++);//10 a = 11
//++在前表示先自增1,然后执行当前操作
//++在后表示先执行当前操作,然后自增1
//System.out.println(++a + 1);//12
//System.out.println(a++ + 1);//11
//=:表示赋值,等号右面的值赋值给等号左面的变量
int a = 10;
//+=
int b = 10;
b += 2;//b = b+2
System.out.println(b);//12
b+=-1;//b = b+(-1)
System.out.println(b);//11
byte b = 126;
b+=1;//b = (byte)(b+1)
System.out.println(b);
int c = 10;
c+=1;//c = (int)(c+1);
System.out.println(c);//11
short s = 10;
s+=1;//s = (short)(s+1)
System.out.println(s);//11
int d = 10;
d-=1;// d = (int)(d-1);
System.out.println(d);//9
long l = 10;
l%=3;//l = (long)(l%3)
System.out.println(l);