网站首页 > 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出来的东西,都在堆当中
? 堆内存里面的东西都有一个地址值,都在堆当中
? 堆内存里面的数据,都有默认值:16进制
? 堆内存里面的数据,都要默认值:
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]);
}
}
}
作者:贰拾壹先生
链接:https://juejin.cn/post/6978867876962762783
来源:掘金
猜你喜欢
- 2024-11-17 大厂贬值裁员,我却凭借Java开发进阶面试秘籍(核心版)逆流而上
- 2024-11-17 55万字!阿里内部最新最全Java面试进阶手册,能横扫99%的面试官
- 2024-11-17 JVM基础学习(jvm知识)
- 2024-11-17 「200G+」2021年5月最新·JAVA高级架构师进阶必备学习干货
- 2024-11-17 Java并发编程从入门到进阶 多场景实战
- 2024-11-17 java测试从入门到进阶(java测试从入门到进阶需要多久)
- 2024-11-17 Java进阶书单(java进阶的书)
- 2024-11-17 Java进阶反射?这其实是黑客的人肉手段啊
- 2024-11-17 Java进阶之路思维导图(java进阶教程)
- 2024-11-17 真真香!耗时大半个月收整全套「Java架构进阶pdf」没白费
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)