引用类型
在Java语言中,除了8种基本数据类型,其他类型都是引用类型;
也可以说,任何一个对象都是引用类型;
引用类型使用=赋值;
除了String、包装器类(共8个)外,都需要使用new 关键字;
引用类型可以使用==、!=进行比较,比较的是引用类型的地址,不是内容;
引用类型不能使用>、>=、<=、<进行比较;
当只声明了一个引用类型变量,却没有为其赋值,则此时该变量为null;
引用类型的默认值是null 表示空 什么都没有指向
一个字符串是null,与一个字符串是””是否一样,有什么区别?
完全不同。Null指的是根本没有分配堆内存,””是分配了堆内存,存储了一个””字符串,不过这个字符串是空的。
枚举
在JDK1.5之后,Java中多了一个新的类型-枚举;枚举也是一种引用类型
枚举编译后也生成.class文件,也是一种引用类型
注解
在JDK1.5之后,Java中增加了注解(Annotation);
注解也称为元数据,是和类、接口、枚举,并列的一种引用类型;
除了直接使用API中的注解外,还可以自定义注解类型;
运算符
从功能角度分,Java中的运算符可以分为算术、关系、位、逻辑运算符四类;
运算符既可以对变量进行运算,也可以对常量进行运算,被运算的数据称作操作数;
多数运算符的操作数只能是基本数据类型,只有+、、!=例外,其中+不仅能对基本数据类型进行加运算,还能将字符串进行连接;、!=除了可以比较基本数据类型的二进制值外,还能比较基本数据类型的地址;
算术运算符
算术运算符用来对操作数进行数学运算;+比较特殊,除了能做加运算外,还能对两个字符串进行连接;
a++与++a的意思都是让a自增一个
a–与--a的意思都是让a自减一个
b-区别:*************使用的时机(运算的时机)不一样
关系运算符
又叫比较运算符,用来运算两个操作数的大小关系,返回值是true或false;
==以及!=也可以对引用类型进行运算,比较是否是同一个对象;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707190843659.png
位运算符
针对操作数的二进制位进行运算;
15的二进制是00001111, 6的二进制是00000110
&:1111与0110 ----》0110 全真为真 有一个假结果就是假
|:1111与0110 ----》1111 全假为假,只要有一个真 结果就是真
异或-^:1111与0110 ----》1001两个操作数不同返回true,两个操作数相同返回false;
~求反:0110----》 高位为1 表示是一个负数 转化成32位 原码+1 高位进行补位
10000000 0000000000000000 0000 0111
非-!:true变false,false变true
逻辑运算符
&:全真为真 有一个假结果就是假
|:全假为假,只要有一个真 结果就是真
异或-^:两个操作数不同返回true,两个操作数相同返回false;
非-!:true变false,false变true
&&:全真为真 有一个假结果就是假
||:全假为假,只要有一个真 结果就是真
三元运算符(三目运算符)
条件运算符是唯一的一个三元运算符,它有三个表达式操作数(不是典型的两个操作数),使用下面的格式:
表达式1?表达式2:表达式3
在这个语句中,表达式1必须产生一个布尔值。如果表达式1的值为true,那么表达式2被计算。如果表达式值为false,那么表达式3被计算,并且整个表达式的值是有条件的。三元操作符与典型的if语句部分相似 。
f?a:b
f是真的最终结果取a
f是假的最终结果取b
复合赋值运算符
Java中的赋值可以使用普通的=进行赋值;也可以=与其他运算符一起进行复合赋值,即运算后赋值;
+=: int a=7; a+=2;------>等同于 a=a+2; 9
%=: int a=10; a%=3;------->等同于 a=a%3; 1
流程控制语句
条件分支语句
if语句
(1) If(表达式){ 当表达式结果为真,所执行的代码 }:表达式返回布尔值
(2) If(表达式){ 表达式为真执行代码}else{ 表达式为假执行的代码 }
(3) If(条件1){ 条件1为真执行的代码 }else if(条件2){ 条件2为真执行的代码 }
(5) 可以使用多个if语句判断 但是每个条件 不论是否满足 她都要去判断一边,if-elseif形式,那么如果有一个条件满足 其他的条件就不去看
Switch
有时候分支是根据常量值进行判断的,这时候虽然可以使用if/else来实现,但是用switch/case更为清晰;
switch(表达式) {//表达式结果是一个常量
case 常量表达式1:
语句1;
case常量表达式2:
语句2;
…
case常量表达式n :
语句n;
default:
语句n+1;
}
Break:在switch作用,跳出swtich语句
switch/case中的表达式只能使用规定的基本数据类型,JDK1.5前可以使用:
基本数据类型byte
基本数据类型short
基本数据类型int
字符型char
不能使用:
基本数据类型float、double、long、boolean
JDK5之后,switch表达式类型新增加支持:枚举(enum)
JDK7之后,switch表达式类型新增加支持:String
循环语句
Java语言中的有三种循环语句,分别是for、while、do while;
for循环
for(初始化语句;判断条件语句;控制语句){
循环体语句块;
}
具体代码如下所示:在这里插入代码片
int a;
for( a=0; a<5; a++ ){
System.out.println("a="+a);
}
执行步骤:
1、初始化a为0;
2、判断a<5的返回值为true,所以执行一次循环体;打印a=0;
3、运行控制语句a++,a变为1;
4、判断a<5的返回值为true,再执行一次循环体;打印a=1;
5、运行控制语句a++,a变为2;
循环4-5步骤,直到打印a=4后,a变为5
6、判断a<5返回false,则循环结束,跳出循环体。
While
不清楚循环次数
Do-while :
do-先执行循环体 再去判断 while-先判断再去执行循环体