JAVA基础
文章目录
一、标识符
- 定义
给包,类,方法,变量起名字的符号。 - 组成规则
由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且首字符不能是数字。 - 命名原则:见名知意
- 包名:全部小写,多级包用.隔开。
举例:com.quadrant - 类、接口:一个单词首字母大写,多个单词每个单词的首字母大写。
举例:Student,Car,HelloWorld - 方法和变量:一个单词首字母小写,多个单词从第二个单词开始每个单词的首字母大写(驼峰法)。
举例:age,maxAge,show(),userId() - 常量:如果是一个单词,所有字母大写,如果是多个单词,所有的单词大写,用下划线区分每个单词。
举例:DATE,MAX_AGE - 项目名:全部用小写字母,多个单词之间用横杆-分割。
举例:demo,spring-boot - 注意事项:
标识符不能以数字开头
标识符不能是Java中的关键字
Java标识符大小写敏感,长度无限制
标识符不能包含空格
关键字:Java语言中已经赋予了特定含义的,不能用作标识符使用
二、JAVA注解
- 定义
用于解释说明程序的文字 - 分类
单行注释
格式: // 注释文字
以双斜杠 “ // ” 标识,只能注释一行内容,用在注释信息内容少的地方;
快捷键:ctrl+/ (将光标点在所要注释行)
多行注释
格式: /* 注释文字 */
能注释很多行的内容;
快捷键:ctrl+shif+/
文档注释
格式:/** 注释文字 */
能注释多行内容,用在类、方法和变量上面,描述其作用。注释后,鼠标放在类和变量上面会自动显示出我们注释的内容; - 作用
在程序中,尤其是复杂的程序中,适当地加入注释可以增加程序的可读性,有利于程序的修改、调试和交流。注释的内容在程序编译的时候会被忽视,不会产生目标代码,注释的部分不会对程序的执行结果产生任何影响。
三、JAVA访问修饰符
-
定义
Java中,可以使用访问修饰符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。 -
分类
private
: 在同一类内可见。
使用对象:变量、方法。 注意:不能修饰类(外部类)
default
: (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。也叫包访问权限。
使用对象:类、接口、变量、方法。
protected
: 对同一包内的类和所有子类可见。
使用对象:变量、方法。 注意:不能修饰类(外部类)。
public
: 对所有类可见。
使用对象:类、接口、变量、方法。
拓展: 一个java源文件中可以有多个类,但只能有一个类是public的。 java程序是从一个public类的main函数开始执行的,就像C程序是从main()函数开始执行一样。
只能有一个public是为了给类装载器提供方便。 一个public只能定义在以它的类名为文件名的文件中。
每个编译单元都只有一个public类。如果有一个以上的public,编译器就会报错。并且public类的名称必须与文件名相同(严格区分大小写)
当然一个编译单元内也可以没有public类 在一个Java源文件中可以包含多个类或多个接口的定义,但多只能有一个类或者接口是public类型的,其它的类或者接口应该是非public类型的。 源文件的名称应该和public类的类名保持一致
-
访问修饰符图
四、JAVA中分隔符,转义符
分隔符
- 定义
空格、逗号、分号以及行结束符都被称为分隔符,规定任意两个相邻标识符、数字、保留字或语句之间必须至少有一个分隔符,以便程序编译时能够识别。 - 分类
; 分号 用来终止一个语句
: 冒号
{} 花括号、大括号 用来包括自动初始化的数组的值,也用来定义程序块、类、方法以及局部范围
[] 方括号、中括号 用来声明数组的类型,也用来表示撤消对数组值的引用
, 逗号 在变量声明中,区分变量说明的各个变量。在for控制语句中,用来将圆括号内的语句连接起来
. 原点 用来将软件包的名字与它的子包或类分隔。也用来将引用变量与变量或方法分隔
() 圆括号 在定义和调用方法时用来容纳参数表。在控制语句或强制类型转换组成的表达式中用来表示执行或计算的优先权
<> 尖括号 将参数传递给参数化类型 - 注意事项
必须都是半角下的英文符号。
转义符
-
定义
转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。 -
常见的转义符
-
注意:
在Java中,不管是String.split(),还是正则表达式,有一些特殊字符需要转义,这些字符是( [ { / ^ - $ ¦ } ] ) ? * + .
转义方法为字符前面加上"“,这样在split、replaceAll时就不会报错。不过要注意,String.contains()方法不需要转义。
'.'点 匹配除“\n”和”\r"之外的任何单个字符。
''表示转义字符
五、JAVA数据类型
- 定义
Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。 - 分类
- 基本数据类型
数值型
整数类型(byte,short,int,long)
浮点类型(float,double)
字符型(char)
布尔型(boolean) - 引用数据类型
类(class)
接口(interface)
数组([])
- 基本数据类型
一、简单数据类型转换
在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)–int–long–float–double
简单数据类型之间的转换又可以分为:
●低级到高级的自动类型转换
●高级到低级的强制类型转换 (可能会导致溢出或精度的下降)
●包装类过渡类型能够转换
低级变量可以直接转换为高级变量,称之为自动类型转换。如下
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,如下
char c='c';
int i=c;
System.out.println("output:" i);
输出:output:99;
byte,short,char该三个数据类型计算,计算时首先转换为int类型
(byte,short) 和 char之间不会相互自动转换
public static void main(String[] args) {
//1.多个类型数据混合运数时,系统会按最大的类型进行转换
int a = 10;
//float a1 = a + 1.1; //错误 结果类型一个是double
float a2 = a + 1.1F; //结果类型一个是float
double a3 = a + 1.1; //结果类型一个是double
//2.容量大的赋值给容量小的肯定会报错
//int b = 1.1; //错误 原因:double -> int
//3.(byte,short) 和 char之间不会相互自动转换
byte b1 = 10; //正确
int b2 = 1;
//byte b3 = b2; //错误 原因:变量赋值,判断该类型
//char c1 = b1; //错误 原因:byte不能自动转换为char
//4.byte,short,char该三个数据类型计算,计算时首先转换为int类型
byte c1 = 1;
short c2 = 2;
//short c3 = c1 + c2; //错误 原因:计算时首先转换为int类型
int c3 = c1 + c2; //正确
}
1、float型转换为double型:
float f1=100.00f;
Float F1=new Float(f1);
//F1.doubleValue()为Float类的返回double值型的方法
double d1=F1.doubleValue();
2、double型转换为int型:
double d1=100.00;
Double D1=new Double(d1);
int i1=D1.intValue();
3、int型转换为double型(自动转换):
int i1=200;
double d1=i1;
二、字符串与其它数据类型的转换
4、字符串与其它类型间的转换:
- ⑴其它类型向字符串的转换
①调用类的串转换方法:X.toString();
②自动转换:X+“”;
③使用String的方法:String.valueOf(X); - ⑵字符串作为值,向其它类型的转换
①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中“32.1”转换double型的值的格式为: new Float(“32.1”).doubleValue();
也可以用:Double.valueOf(“32.1”).doubleValue();
②静态parseXXX方法
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
float f = Float.parseFloat( s );
double d = Double.parseDouble( s );
六、JAVA变量
- 定义
在程序执行的过程中,在某个范围内其值可以发生改变的量。从本质上讲,变量其实是内存中的一小块区域 - 分类
按被声明的位置划分
成员变量
方法外部,类内部定义的变量
- 类变量(静态变量):独立于方法之外的变量,用 static 修饰。
- 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。
- 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
- 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
- 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
- 静态变量在第一次被访问时创建,在程序结束时销毁。
- 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
- 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
- 静态变量可以通过:ClassName.VariableName的方式访问。
- 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。
- 实例变量(非静态变量):独立于方法之外的变量,不过没有 static 修饰。
- 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
- 当一个对象被实例化之后,每个实例变量的值就跟着确定;
- 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
- 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
- 实例变量可以声明在使用前或者使用后;
- 访问修饰符可以修饰实例变量;
- 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
- 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
- 类变量和实例变量的区别
- 调用方式
- 静态变量也称为类变量,可以直接通过类名调用。也可以通过对象名调用。这个变量属于类。
- 成员变量也称为实例变量,只能通过对象名调用。这个变量属于对象。
- 存储位置
- 静态变量存储在方法区长中的静态区。
- 成员变量存储在堆内存。
- 生命周期
- 静态变量随着类的加载而存在,随着类的消失而消失。生命周期长。
- 成员变量随着对象的创建而存在,随着对象的消失而消失。
- 与对象的相关性
- 静态变量是所有对象共享的数据。
- 成员变量是每个对象所特有的数据。
- 调用方式
局部变量
- 局部变量:类的方法中的变量。
- 局部变量声明在方法、构造方法或者语句块中;
- 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
- 访问修饰符不能用于局部变量;
- 局部变量只在声明它的方法、构造方法或者语句块中可见;
- 局部变量是在栈上分配的。
- 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
成员变量和局部变量的区别
- 作用域
成员变量:针对整个类有效。
局部变量:只在某个范围内有效。(一般指的就是方法,语句体内) - 存储位置
成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中。
局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中。当方法调用完,或者语句结束后,就自动释放。 - 生命周期
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:当方法调用完,或者语句结束后,就自动释放。 - 初始值
成员变量:有默认初始值。
局部变量:没有默认初始值,使用前必须赋值。
按所属的数据类型划分
基本数据类型变量
- 基本数据类型
byte,short,int,long,float,double,char,boolean - 变量的定义格式
数据类型 变量名 = 初始化值; - 注意
整数默认是int类型,定义long类型的数据时,要在数据后面加L。
浮点数默认是double类型,定义float类型的数据时,要在数据后面加F。
引用数据类型变量
- 定义格式
数据类型 变量名 = 初始化值; - 举例
public class Variable{
// 类变量
static int globalNum=10;
// 实例变量
String str="hello world";
public void method(){
// 局部变量
int i =10;
}
}
- 注意:类外面不能有变量的声明
七、JAVA常量
- 定义
常量定义:在Java语言中,用关键字final来定义一个常量。常量一旦被初始化后,在程序执行的过程中,其值不可以发生改变的量。常量不同于常量值,它可以在程序中用符号来代替常量值使用,因此在使用前必须先定义。
常量值定义:常量和常量值是不同的概念,常量值又称为字面常量,它是通过数据直接表示的。
关系:常量值是常量的具体和直观的表现形式,常量是形式化的表现。通常在程序中既可以直接使用常量值,也可以使用常量。 - 分类
字符串常量 用双引号括起来的内容(“HelloWorld”)
整数常量 所有整数 (1,2,3…)
小数常量 所有小数(3.1,2.05,0.3 …)
字符常量 用单引号括起来的内容(‘a’,’A’,’0’)
布尔常量 较为特有,只有true和false
空常量 null - 举例
Java 语言使用 final 关键字来定义一个常量
final int COUNT=10;
final float HEIGHT=10.2F; - 注意事项
在定义常量时就需要对该常量进行初始化。 final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。 为了与变量区别,常量取名一般都用大写字符。
八、运算符
- 定义
运算符指明对操作数的运算方式。 - 分类
算术运算符
- 注意事项
1、/ 左右两端的类型需要一致;
2、%最后的符号和被模数相同;
3、前++;先+1,后运算 后++;先运算,后+1;
4、+:当String字符串与其他数据类型只能做连接运算;并且结果为String类型;
关系运算符
- Instanceof 运算符
语法: 对象名 instanceof 类或接口
Instanceof 运算符,判断前面的对象和后面的类或者接口 有没有在继承树上有继承关系
instanceof通常和强制类型转换结合 使用 - 注意事项
1、比较运算的结果都是boolean类型,也就是说要么是true,要么是false;
2、比较运算符的"==“与”="的作用是不同的,使用的时候需要注意。
赋值运算符
= += -= *= /= %=
- 基本的赋值运算符:=
扩展的赋值运算符:+=,-=,*=,/=,%=
+=: a+=10;相当于a = a + 20;
逻辑运算符(符号的两端都是boolean类型)
||和| (可以很明显的看到a>0成立 | 后面的也执行了而||就没有执行)
int a = 10;
int b = 4;
//短路或 一个成立,后面的不运行了
if (a > 0 || (b++) > 4){
System.out.println("a > 0 | (b++) > 4后b的值为:");
System.out.println(b); //用来判断后面的b++是否被执行
}
//逻辑或 所有的都运行
if (a > 0 | (b++) > 4){
System.out.println("a > 0 | (b++) > 4后b的值为:");
System.out.println(b); //用来判断后面的b++是否被执行
}
运算结果:
a > 0 | (b++) > 4后b的值为:
4
a > 0 | (b++) > 4后b的值为:
5
&&和& (可以很明显的看到 a>100条件不成立 &后面的也执行了而&&就没有执行)
int a = 10;
int b = 4;
//短路与 一个成立,后面的不运行了
if (a > 100 && (b++) <5){
}
System.out.println("a < 100 && (b++) <5后b的值为:");
System.out.println(b); //用来判断后面的b++是否被执行
//逻辑与 所有的都运行
if (a > 100 & (b++) <5){
}
System.out.println("a < 100 & (b++) <5后b的值为:");
System.out.println(b); //用来判断后面的b++是否被执行
运算结果:
a > 0 | (b++) > 4后b的值为:
4
a > 0 | (b++) > 4后b的值为:
5
^号
Boolean boolean1 = 4 > 5; //false
Boolean boolean2 = 4 > 3; //true
Boolean boolean3 = boolean1 ^ boolean2; //相同为false,不同为true,结果应为true
int num1 = 10; // 二进制为:1010
int num2 = 7; // 二进制为: 111
System.out.println(boolean3);
System.out.println(num1 ^ num2); //相同为0,不相同为1 结果二进制为1101 变成十进制为13
运算结果:
true
13
!号
boolean bool = false;
System.out.println(!bool); //变为true
System.out.println(!!bool); //又变回false
运算结果:
true
false
位运算符(符号的两端都是数值型的数据)
- 定义
位运算是对操作数以二进制为单位进行的操作和运算,运算结果为整数。位运算符包括:“&”、“|”、“~”、“^”和移位运算符“>>”、“<<”、“>>>”,7个位运算符。
三目运算符
运算符的优先级
九、JAVA流程控制—顺序
- 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的
- 示例:
/*
* 顺序结构:从上往下,依次执行
*/
public class OrderDemo {
public static void main(String[] args) {
System.out.println("开始");
System.out.println("语句一");
System.out.println("语句二");
System.out.println("语句三");
System.out.println("结束");
}
}
十、JAVA流程控制—选择
- 定义
条件语句可根据不同的条件执行不同的语句。包括if条件语句与switch多分支语句。 - 分类
if分支结构
- 格式
if(条件表达式){
执行的代码块;
}
- 执行流程图
- 执行流程说明
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体 - 代码演示:
public class IfDemo {
public static void main(String[] args) {
System.out.println("开始");
// 定义两个变量
int a = 10;
int b = 20;
if (a == b) {
System.out.println("a等于b");
}
int c = 10;
if (a == c) {
System.out.println("a等于c");
}
System.out.println("结束");
}
}
执行结果:
开始
a等于c
结束
if—else分支结构
-
格式
if(条件表达式){
执行的代码块;
}else{
执行的代码块;
}
-
执行流程
-
执行流程说明
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2 -
代码演示:
public class Demo2 {
public static void main(String[] args) {
System.out.println("开始");
// 判断给定的数据是奇数还是偶数
// 定义变量
int a = 100;
if (a % 2 == 0) {
System.out.println("a是偶数");
} else {
System.out.println("a是奇数");
}
System.out.println("结束");
}
}
执行结果:
开始
a是偶数
结束
if–else if–else 分支结构
- 格式
if(条件表达式){
执行的代码块;
}else if(条件表达式){
执行的代码块;
}…(此处省略N个else if)
else{
执行代码块;
}
-
执行流程
-
执行流程说明
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1 -
代码演示
public class IfElseIfDemo {
public static void main(String[] args) {
//定义变量
int score=67;
if (score==100){
System.out.println("满分");
}else if (score>=90&&score!=100){
System.out.println("特秀");
}else if (score>=80&&score<=90){
System.out.println("优秀");
}else if (score>=70&&score<=80){
System.out.println("良好");
}else if (score>=60&&score<=70){
System.out.println("及格");
}
}
}
执行结果:
及格
- 注意事项
1、一旦满足某个条件表达式,则进入其执行语句块执行,执行完毕后不会执行其一下的条件语句。
2、如果多个条件表达式之间为“互斥”关系,多个语句之间可以上下调换顺序,一旦是包含关系,要求条件表达式范围小的写到范围大的上边;
switch分支结构
-
格式
switch(表达式) {
case 目标值1:执行的代码块;
break;
case 目标值2:执行的代码块;
break;
case 目标值3:执行的代码块;
break;
default:执行的代码块;
break;
} -
执行流程
-
执行流程说明
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。 -
代码演示
public class SwitchDemo {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入一个数字(1-7):");
int weekday = sc.nextInt();
//switch语句实现选择
switch(weekday) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("你输入的数字有误");
break;
}
}
}
-
注意:
1、swich(表达式)中表达式的返回值必须是以下几种类型之一:
byte,short,char,int,枚举(jdk1.5),String(jdk1.7)
2、case子句中的值必须是常量,且所有case子句中的值应是不同的;
3、default子句是可任选的,当没有匹配的case时,执行default;
4、break语句用来在执行完一个case分支后使程序跳出swich语句块;如果没有break程序会顺序执行到swich结尾; -
if分支结构和switch分支结构区别
if和swich语句很想,如果判断的具体数值不多,而且复合byte、short、int、char这四种类型。建议使用swich语句,因为效率稍高;
其他情况:对区间进行判断,对结果为boolean类型进行判断,使用if,if的使用范围比较广泛。
十一、JAVA流程控制—循环
- 定义
循环语句就是在满足一定条件的情况下反复执行某一个操作。包括while循环语句、do···while循环语句和for循环语句。 - 分类
while循环语句
-
格式
while(判断条件语句) {
循环体语句;
} -
扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
} -
执行流程图
-
执行流程说明
while循环语句的循环方式为利用一个条件来控制是否要继续反复执行这个语句。 -
代码演示
public class WhileDemo {
public static void main(String[] args) {
//输出10次HelloWorld
//while循环实现
int x=1;
while(x<=10) {
System.out.println("HellloWorld");
x++;
}
}
}
do–while循环语句
-
格式
基本格式
do {
循环体语句;
}while(判断条件语句); -
扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句); -
执行流程图
-
代码演示:
public class DoWhileDemo {
public static void main(String[] args) {
//输出10次 HelloWorld
//do...while编写
int x=1;
do {
System.out.println("HelloWorld");
x++;
}while(x<=10);
}
}
for循环语句
-
格式
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
} -
执行流程图
-
流程执行说明
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续 -
代码演示
public class ForDemo {
public static void main(String[] args) {
//原始写法
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("-------------------------");
//用for循环改进
for(int x=1; x<=10; x++) {
System.out.println("HelloWorld");
}
}
}
foreach循环语句
- 定义
它是Java5后新增的for语句的特殊简化版本,并不能完全替代for语句,但所有foreach语句都可以改写为for语句。foreach语句在遍历数组等时为程序员提供了很大的方便。 - 格式
for (声明语句 : 表达式) {
//代码句子
} - 代码演示:
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for ( int x : numbers ) {
System.out.print( x );
System.out.print(",");
}
System.out.print();
String [] names = {"James", "Larry", "Tom", "Lacy"};
for ( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
- 三种循环的区别:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
for循环语句和while循环语句的小区别:
使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
跳转语句(控制循环结构)
- break
- break的使用场景:
在选择结构switch语句中
在循环语句中
break的作用:跳出单层循环 - 注意:离开使用场景是没有意义的。
- break的使用场景:
- 代码演示:
/*
* break:中断的意思
* 使用场景:
* A:switch语句中
* B:循环中
* 注意:
* 离开使用场景是没有意义的。
* 作用:
* 跳出循环,让循环提前结束
*/
public class BreakDemo {
public static void main(String[] args) {
//break;
for(int x=1; x<=10; x++) {
if(x == 3) {
break;
}
System.out.println("HelloWorld");
}
}
}
-
continue
-
continue的使用场景:在循环语句中
-
continue的作用:结束一次循环,继续下一次的循环
注意:离开使用场景的存在是没有意义的 -
continue与break区别:
break 退出当前循环
continue 退出本次循环,继续下一次循环
-
-
代码演示:
/*
* continue:继续的意思
* 使用场景:
* 循环中
* 注意:
* 离开使用场景是没有意义的
* 作用:
* 结束一次循环,继续下一次的循环
* 区别:
* break:退出循环
* continue:结束一次循环,继续下一次的循环
*/
public class ContinueDemo {
public static void main(String[] args) {
//continue;
for(int x=1; x<=10; x++) {
if(x == 3) {
//break;
continue;
}
System.out.println("HelloWorld");
}
}
}
-
return
-
return的使用场景:
在循环语句中
在方法中 -
return的作用:
(1)返回方法指定类型的值(这个值总是确定的),也可以是对象
(2)方法的结束 -
两种形式:
(1)有返回类型 例如:return i;
(2)无返回类型 return;
一般方法前有void代表无返回值,没有void有返回值。
-
-
代码演示:
public class TestReturn {
public static void main(String args[]) {
TestReturn t = new TestReturn();
t.test1();
t.test2();
}
/**
* 无返回值类型的return语句测试
*/
public void test1() {
System.out.println("---------无返回值类型的return语句测试--------");
for (int i = 1; ; i++) {
if (i == 4) return;
System.out.println("i = " + i);
}
}
/**
* 有返回值类型的return语句测试
* @return String
*/
public String test2(){
System.out.println("---------有返回值类型的return语句测试--------");
return "返回一个字符串";
}
}
运行结果:
---------无返回值类型的return语句测试--------
i = 1
i = 2
i = 3
---------有返回值类型的return语句测试-------
返回一个字符串