计算机内存中的一块存储空间,是存储数据的基本单元用于存储在程序执行中的数据
先声明,再赋值(常用)
数据类型 变量名;int i;
变量名=值;i = 100;
声明并赋值(常用)
数据类型 变量名=值;
int i = 100;
多个同类型变量的声明与赋值
数据类型 变量1,变量2=值,变量3;
int i,j=100,k;
(java是强类型语言,变量的类型必须与数据的类型一致)
布尔
可直接赋值true/false可赋值一个结果为true/false的表达式布尔不能参与算数运算字符
Unicode中每个字符都对应一个二进制数,可以使用多种方式赋值
字符赋值:char c = ‘A’;(通过’'为字符赋值)整数赋值:char b= 65;(通过十进制数65在字符集中对应的字符赋值)进制赋值:char a = ‘\u0041’;(通过十六进制数41在字符集中对应的字符赋值)Java通过转义字符来解决特殊字符的输出
\n:换行\t:水平制表\’:输出一个单引号\":输出一个双引号\\:输出一个\ class ZhuangYi{ public static void main(String[] args){ /*转义字符: \n \t \' \" \\ */ System.out.print("姓名: \n"); System.out.println("年\'龄:20;\t\"爱好\":睡\\觉"); //姓名: //年'龄:20; "爱好":睡\觉 } }整数长度足够,数据完整
int i = 100;byte b = (byte) i; //b=100
整数长度不够,数据截断
int i = 10000;byte b = (byte) i; //b=16(符号位变化,可能为负数)
小数转整数,数据截断
double d =2.5; int i =(int)d; //i =2(小数位舍弃)
字符整数互转,数据完整
char c = 65; int i = c; //i =65
Boolean 取值为true/false,不可与其他类型转换
+ - * / % ++ --(重点)
注意: 整数相除,取整;有一边为小数,结果为小数,有小数则为double型
5.0/2=2.5(输出结果为double型)
5/2=2(输出结果为int型)
a++: 后置自增:先计算表达式的值;变量值后+1(后自增,先用再增)
**++a:前置自增:**变量值先+1,;再计算表达式的值(前自增,先增再用)
a–:后置自减:先计算表达式的值;变量值后-1 (后自减,先用再减)
–a:前置自减:变量值先-1,;再计算表达式的值(前自减,先减再用)
int a=10,b=2; /* 算数运算符 + - * /% */ System.out.println("--------------"); System.out.println(a+b); //12 System.out.println(a-b); //8 System.out.println(a*b); //20 System.out.println(a/b); //5 System.out.println(a%b); //0 /* 一元运算符 ++ --*/ // i++ 先使用i 再进行+1操作 // ++i 先进行+1操作 再使用i System.out.println("--------------"); System.out.println(a++); //10 System.out.println(b--); //2 System.out.println(++a); //12 System.out.println(--b); //0*=直接赋值 +=求和后赋值 -=求差后赋值 =求积后赋值 /=求商后赋值 %=求余后赋值
/* 赋值运算符 += -= *= /= %= = */ int c =2; int d =0; d+=3; int e =0; e-=3; int f =0; f*=3; int g =0; g/=3; int h =1; h%=3; int i =0; i=3; System.out.println("--------------"); System.out.println(d); //3 System.out.println(e); //-3 System.out.println(f); //0 System.out.println(g); //0 System.out.println(h); //1 System.out.println(i); //3>大于 <小于 ==等于 >=大于等于 <=小于等于 !=不等于
运算后得到的是一个Boolean值
/* 关系运算符 > < == >= <= !=*/ // 返回值为boolean类型 int j=1,k=2; System.out.println("--------------"); System.out.println(j<k); //true System.out.println(j>k); //false System.out.println(j==k); //false System.out.println(j>=k); //false System.out.println(j<=k); //true System.out.println(j!=k); //true&&与 ||或 !非
逻辑与& VS 短路与&&
逻辑与:当操作数1为false时,仍然会执行操作数2
短路与:当操作数1为false时,不会执行操作数2—效率高
逻辑或| VS 短路或||
逻辑或: 当操作数1为true时,仍然会执行操作数2
短路或: 当操作数1为true时,不会执行操作数2—效率高
/* 逻辑运算符 && || ! 对boolean 类型的数据进行运算 得到的结果也是boolean类型的*/ int l=10,m=20; // && 与 一假即假 System.out.println("--------------"); System.out.println(l<m&&m>l); //true System.out.println(l>m&&m>l); //false // || 或 一真即真 System.out.println(l<m||m>l); //true System.out.println(l>m||m>l); //true System.out.println(l>m||m<l); //false // ! 非 真假颠倒 // 操作对象是boolean类型. 所以表达式需要用括号包裹 System.out.println(!(l>m)&&m>l); //true System.out.println(!(l>m)||m<l); //true语法:数据类型 变量名 = boolean表达式?结果一:结果二
/** 三元运算符 */ class YunSF2{ public static void main(String[] args){ /* 语法 数据类型 变量名 = boolean表达式?结果一:结果二*/ int grade = 89; int grade2 = 60; String s = grade>=80?"送一层楼":"送练习题"; String s2 = grade2>=80?"送一层楼":"送练习题"; double d = grade>=80?2:2.2; System.out.println(s); //送一层楼 System.out.println(s2); //送练习题 System.out.println(d); //2.0 } }()>算数运算符>关系运算符>逻辑运算符>赋值运算符
使用运算符连接的变量或字面值,并得到一个结果
int a = 5 + 6; // 5+6: 算术表达式:算术运算符参与运算的式子
进行算术运算时:
两个操作数有一个为double,结果提升为double操作数中没有double,有float,结果提升为float操作数中没有float,有long,结果提升为long操作数中没有long,有int,结果提升为int操作数中没有int,均为byte或short,结果提升为int特殊:任何类型与String相加(+)实为拼接,结果自动提升为String。
import 包名.类名 //将外部class文件的功能引入到自身文件中