categories:
- Android开发
- Java知道
tags: - 数据类型
- 变量
- 运算符
- 循环
- 递归
JAVA
一、数据类型
二、变量
在Java中,变量的作用域是指一个变量在程序中的可见性和生命周期
根据作用域的范围,可以分为
类变量:在整个类中被访问
局部变量:仅在此方法中被访问
块变量: 一对花括号之间的代码块,仅在此块中被访问
public class Variable{
static int classVaria le
}
三、运算符
- -1 < i < 10
- C:非0即真,↑不对但不会报错,而是如果i>1的话就是返回1,而后有1又与10进行比较.
- java:关系运算符的结果只有真(true)和假(false),是直接编译报错的
- a+=b与a=a+b
- C 等价
- java:a+=b等价与a=(short)(a+b)
数组
循环
- while循环
在每次循环之前检查条件表达式的真假,只有当条件为真时才执行循环体内的代码。
递归 —— 一种强大且常用的编程技术
-
概念
在函数或方法的定义中调用自身的过程 -
原理
递归是基于函数调用栈的原理实现的。
当一个方法(包含参数、局部变量和返回地址等信息)被调用时,会在调用栈中创建一个对应的栈帧,在递归中,方法会在自身的定义中调用自身,这会导致多个相同方法的栈帧依次入栈。当满足终止条件时,递归开始回溯,栈帧依次出栈,方法得以执行完毕。
关键:定义好递归的终止条件和递归调用的条件。
如果没有适当的终止条件或递归调用的条件不满足,递归可能会陷入无限循环,导致栈溢出错误
-
应用场景
-
数学问题:如计算阶乘、斐波那契数列等。
-
数据结构操作:如遍历树的节点、链表反转等。
-
搜索和回溯算法:如深度优先搜索、回溯法等。
-
分治法:如归并排序、快速排序等。
-
实现方法
在Java中,实现递归通常需要定义一个递归函数或方法。递归函数需要满足以下两个要素: -
终止条件(Base Case):定义递归结束的条件,避免陷入无限循环。
-
递归调用(Recursive Call):在方法的定义中调用自身,处理更小规模的子问题。
public class Factorial {
public static int factorial(int n) {
// 终止条件
if (n == 0) {
return 1;
}
// 递归调用
return n * factorial(n - 1);
}
public static void main(String[] args) {
int n = 5;
int result = factorial(n);
System.out.println("Factorial of " + n + " is: " + result);
}
}