目录
什么是程序?
答: 利用逻辑操作数据
注: 数据操作无非是增删改查存
变量的概念
是计算机内存中的一块存储空间, 只能存储一个数据,是存储数据的最小单元
变量的组成
酒店 计算机内存
房间 变量
房间类型 数据类型
房间号 变量名
住人 存储数据
变量由数据类型+变量名+数据组成
变量的创建
-
先声明,后赋值
数据类型 变量名;//声明 变量名=值;//赋值
-
赋值之后才可使用
int age1; age1 = 20; System.out.println(age1);//20 int age2; // System.out.println(age2); 报错
-
-
声明的同时直接赋值
数据类型 变量名=值;
//声明的同时直接赋值 int age3 = 22;
-
同时声明创建多个变量
数据类型 变量名1=值1,变量名2=值2,变量名3; 变量名3=值3;
-
多个变量的数据类型必须一致
int age4 = 23,age5=24,age6; age6 = 25;
-
数据类型
java的强类型的语言,意味着每个数据都有对应的数据类型
基本类型
整数
b(位): 最小的计算单位
B(字节): 最小的计算单元
1B=8b
-
int为整数的默认类型
-
当long类型取值超出int的范围之后,必须在末尾添加l或者L. 通常情况下无论是否超出int都推荐添加L
浮点类型
-
小数类型
-
double为小数的默认类型
-
float必须在值的末尾添加f或者F
布尔类型![](https://i-blog.csdnimg.cn/direct/b248643244fa4f0d8565455e451c7ce8.png)
-
唯一一个无法采用数字取值的数据类型
字符类型![](https://i-blog.csdnimg.cn/direct/7f09be01ca354b159d845e5c2b472236.png)
单引号赋值
char 变量名='值';
只能存放1个字符
所有字符都有对应的数字
数值赋值
char 变量名=数字;
数字不可超出取值范围
每个数字都有对一个字符
Unicode编码赋值(了解)
char 变量名='16进制的字符编码';
单引号赋值和数字赋值可以根据使用场景自由切换
a-z: 97-122
A-Z: 65-90
大小顺序
byte< short|char < int < long < float < double
-
boolean类型不参与比较,无法与其他基本类型同时操作
引用类型
-
只要不是八大基本类型,就一定是引用类型
-
String: 类库中的引用类型,表示字符串
String 变量名="字符串内容";
-
值必须写进双引号, 且双引号中的内容一定是String类型
-
对内部内容无任何要求
类型转换
自动类型转换
-
发生在小类型给大类型赋值时
大类型 变量名=小类型名;
byte b = 100; int n = b;
强制类型转换
-
发生在大类型给小类型赋值时
小类型 变量名=(小类型)大类型名;
-
大类型取值在小类型范围内,数据无异常
int n= 100; byte b=(byte)n;
-
大类型的取值超出了小类型的范围, 数据会发生紊乱,出现数据异常情况
int n2 = 130; byte b2 = (byte) n2;
-
小数类型转整数类型会直接舍弃小数位
double d = 5.9; int n3 = (int) d; System.out.println(n3);//5
由于char类型取值无负数, 所以所有可转换的数据类型转向char都需要进行强转
boolean类型不参与类型转换
任意数据拼接双引号或添加双引号都会变为String类型
int n = 1000; String s1 = n + "";//拼接双引号 String s2 = "true";//添加双引号 String s3 = 10 + 10 + "a";//20a String s4 = 10 + "a"+ 10;//10a10 String s5 ="a" + 10 + 10 ;//a1010
运算符
表达式: 通过运算符将值或变量进行连接,可以得到一个结果,该连接起来的式子就是表达式
算数运算符
+、-、*、/、%
自动类型提升
当不同数据类型进行数学运算时, 结果会自动提升为大类型, 下限为int,上限为double
System.out.println(10 / 3);//3 System.out.println(10 / 3.0);//3.333333333.. System.out.println(10 % 3);//1 byte b = 10; short s = 10; int s2 = b + s;
赋值运算符
运算符 | 作用 |
---|---|
+= | 先相加,后赋值 |
-= | 先相减,后赋值 |
*= | 先相乘,后赋值 |
/= | 先相除,后赋值 |
%= | 先取余,后赋值 |
-
先运算,后赋值
-
可以防止自动类型提升
int a = 10; a += 10;// a = a + 10; byte b = 1; // b = b + 1; 自动类型提升 b += 1; b += 1.5;
比较运算符
运算符 | 作用 |
---|---|
== | 比较是否相等 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
-
结果一定为布尔类型
逻辑运算符
运算符 | 含义 |
---|---|
&& | 逻辑与,表示并且,双方都满足才为true (都为真,才为真) |
|| | 逻辑或,表示或者, 一方满足则为true (一个为真,则为真) |
! | 逻辑非, 表示取反(取布尔结果的相反值,写在变量或表达式之前) |
-
逻辑与和逻辑或是将两个或多个布尔表达式结果进行连接
-
对表达式数量不做要求
-
&&和||也称为短路运算符
短路机制: 当执行到能奠定最终结果的表达式时,后续表达式将不再执行
&和|没有短路机制
一元运算符
运算符 | 含义 |
---|---|
++ | 值+1 , 相当于 变量名=变量名+1; |
-- | 值-1, 相当于 变量名=变量名-1; |
-
运算符在前或在后对变量本身没有影响
-
表达式的结果会受运算符前后位置的影响
-
运算符在前,表达式的结果是运算之后的值
-
运算符在后,表达式的结果是运算之前的值
-
int a = 1;
// a = a + 1;
// a += 1;
// a++;
// ++a;
// System.out.println(a);//3
int b = a++;//int b=表达式的结果;
System.out.println("a: "+a);//2
System.out.println("b: "+b);//1
int c = 1;
int d = ++c;//int d=表达式的结果;
System.out.println("c: "+c);//2
System.out.println("d: "+d);//2
三元运算符
布尔表达式 ? 结果1 : 结果2
-
执行: 判断布尔表达式,结果为true执行结果1, 否则执行结果2
-
使用: 可以进行嵌套使用,对嵌套层数不做要求