java默认十进制-循环结构的控制流程注意事项
1,控制流程
1, 顺序解构
2,判断语句,if/else || 三元运算符
3,switch() { case: 1:break;}
4,循环语句 for/while/do-while
作为一名前端开发工程师:我想说,控制流程代码逻辑是一样的。
复制代码
注意事项: switch 后面的小括号只能是下列数据类型:
基本数据类型:byte/short/char/int
引用数据类型:String字符串, enum枚举
for循环结构的四部:
1, 初始化语句,在循环开始最初执行,而且只做唯一一次
2,条件判断,如果成立,则循环继续,如果不成立,则循环退出
3,循环体:重复做的事情内容,若干语句
4,步进语句:每次循环之后都有进行的扫尾工作,每次循环结束之后都要执行一次
复制代码
while循环格式:
标准格式
while(条件判断) {
循环体
}
复制代码
扩展格式:
初始化语句
while(条件判断) {
循环体
步进语句
}
复制代码
do-while循环
标准格式
do {
循环体 // 无论如何都会执行
}while(条件判断)
复制代码
扩展格式:
初始化语句
do {
循环体
步进语句
}while(条件判断)
复制代码
注意事项:1,for和while循环可以一次都不执行,do-while至少要执行一次
2,for循环定义的变量只能在循环体中使用,while/do-while在我循环外使用
3,break: 跳出并终止整个循环体, continue: 终止本次循环,继续下一次循环
死循环的标准格式:
while(true) {
循环体
}
复制代码
2,IDEA工具
快捷键配置:
alt + / 代码提示
sout = Systout.out.println()
复制代码
快捷键
功能
Alt + Enter
导入包,自动修正代码
Ctrl + Y
删除光标所在行
Ctrl + D
复制光标所在行的内容,插入光标位置下面
Ctrl + Alt + L
格式化代码
Ctrl + /
单行注释,再按取消注释
Ctrl + Shift + /
选中的代码注释,多行注释,再按取消注释
Alt + Ins
自动生成代码,toString,get, set等方法
Alt + Shift + 上下箭头
移动当前代码行
3,方法
方法定义为:void, 没有返回值,在主方法main中直接被调用, main方法并不需要print方法的执行结果,所以被定义为void
public class Demo {
public static void main(String[] args) {
print();
}
public static void print() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 20; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
复制代码
注意: println打印换行, print打印不换行
方法的调用三种:
1, 单独调用: 直接调用, 方法类型是void, 只能单独调用
2,打印调用
3,赋值调用:赋值给一个变量,然后打印输出
复制代码
方法练习
练习1
/**
* 判断两个值是否相等
* @param a
* @param b
* @return boolean
*/
public static boolean isSame(int a, int b) {
// boolean same = a == b ? true : false;
// return same;
return a == b;
}
}
复制代码
练习2
/**
* 1~100的求和
* @return
*/
public static int getSum() {
int sum = 0;
for (int i = 1; i < 100; i++) {
sum += i;
}
return sum;
}
复制代码
练习3
/**
* 打印 n次输出, 循环快捷键:100.fori
* @param num
*/
public static void printCount(int num) {
for (int i = 0; i < num; i++) {
System.out.println("Hello World" + ( i + 1 ));
}
}
复制代码
方法的重载
对于功能类似的方法来说,因为参数列表不一样,方法名称一样,就是方法的重载
参数个数不同
参数类型不同
参数的顺序不同
public static int sum(int a, int b) {
return a + b;
}
public static int sum(int a, int b, int c) {
return a + b + c;
}
public static int sum(int a, int b, int c, int d) {
return a + b + c + d;
}
复制代码
4,数组
数组:是一种容器,可以同时存放多个数据值
数组特点:
1, 数组是一种引入数据类型,数组当中的多个数据,类型必须统一
2,数组的长度在程序运行期间不可改变
1, 数组的动态初始化
数据类型 数组名称 = new 数据类型[数组长度]
int[] arrayA = new int[300];
复制代码
2,数组的静态初始化
数据类型[] 数组名称 = new 数据类型[] {元素1, 元素2, xxxxx}
int[] arrayB = new int[]{5, 199, 200}
省略格式
int[] arrayC = { 10, 20, 30, xxxx }
复制代码
3, 直接打印数组结果是:内存地址哈希值
int[] arry = { 10, 20, 30 };
System.out.println(arry);
[I@119d7047
复制代码
5,内存
Java 的内存需要划分成为5个部分
1,栈(stack)
存放的都是方法中的局部变量
局部变量:方法的参数,或者是方法{}内部的变量
作用域:一旦超出作用域,立刻从栈内存当中消失
2,堆(Heap)
凡是new出来的东西java默认十进制,都在堆当中
堆内存里面的东西都有一个地址值,都在堆当中
堆内存里面的数据,都有默认值:16进制
堆内存里面的数据java默认十进制,都要默认值:
3,方法区(Method Area)
存储.class相关信息,包含方法的信息
4,本地方法栈
与操作系统有关
5, 寄存器(pc Register)
与CPU相关
从一个数组分析内存使用情况
注意:常见数组问题
1, ArrayIndexOutofBoundsException
数组索引越界异常
2, NullPointerException
数组空指针异常
数组常用的方法
1, 最大值
1, public class Array {
public static void main(String[] args) {
int[] arry = { 10, 20, 30 , 1000};
int max = arry[0];
for (int i = 1; i < arry.length; i++) {
if (arry[i] > max) {
max = arry[i];
}
}
System.out.println(max);
}
}
复制代码
2,数组反转
/**
* 数组反转
*/
public class Array {
public static void main(String[] args) {
int[] arry = { 10, 20, 30 , 1000};
for (int i = 1; i < arry.length; i++) {
System.out.println(arry[i]);
}
for(int min =0, max = arry.length - 1; min < max ; min++, max--) {
int temp = arry[min];
arry[min] = arry[max];
arry[max] = temp;
}
for (int i = 0; i < arry.length; i++) {
System.out.println(arry[i]);
}
}
}