提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
1). 顺序结构
每条语句按自上而下的顺序依次执行一次
2). 分支结构 (单路分支, 多路分支)
编写的代码可能会执行 一次
3). 循环结构
编写的代码可能会执行 一次
4). 函数的调用与返回
函数是由返回类型,函数名,和函数名后边括号内的形式参数列表组成的。
通过函数名进行调用,
通过return语句进行返回。
单if
if (true){
System.out.println("1");
}
互斥 if…else
int a = 10;
if (a>20){
System.out.println("4");
}else{
System.out.println("5");
}
多分支互斥 if…else if…else if…else
int a = 75;
if(a>=90){
System.out.println("A");
}else if (a>=80){
System.out.println("B");
}else if (a>=70){
System.out.println("C");
}else if (a>=60){
System.out.println("D");
}else{
System.out.println("E");
}
嵌套的if
int a = 75;
if(a>=90){
if(a<=100){
System.out.println("A");
}
}
switch…case
switch…case多路分支的语法,不能用于区间判断,只能用于等值判断
int a = 5;
switch(a){
case 1:
System.out.println("A");
break;
case 2:
System.out.println("B");
break;
case 3:
System.out.println("C");;
break;
case 4:
System.out.println("D");
break;
case 5:
System.out.println("E");
break;
default:
System.out.println("F");
break;
}
while
//累加1-100的和
int sum = 0; //存储和
int num = 1; //循环变量的初始化
while(num <= 100){ //循环条件
sum += num; //循环体
num++; //循环变量的迭代
}
do…while
do {
System.out.println("1");
}while (false);
for
int sum = 0;
for (int i = 0; i <= 100; i++){
sum = sum +i;
}
while循环和for循环 先判断条件,在决定是否执行
do…while 先执行一次,再判断条件
while和for有可能一次都不执行,do…while至少会执行一次
1)循环标量初始化
2)循环条件
3)循环条件的迭代
4)循环体
函数是一系列指令的集合, 通过函数封装指令, 可以达到代码复用的目的
函数是组织代码的最小单元
类是程序的最小单元
static表示“全局”或“静态”,用于修改成员变量和成员方法,还可以形成静态静态代码块,但是Java语言中没有全局变量的概念.由static修改的成员变量和成员方法独立于此类的任何对象. 换句话说,它不依赖于该类的特定实例,而是由该类的所有实例共享的.
在函数调用时,需要注意这个函数的权限修饰符,这个函数在哪个包和哪个类中。
例如:调用同包中的工具类
System.out.println("max = " + Math.Max(a,b));
区别在于调用,java函数都是为调用而生,main函数也不例外,而它与普通函数的区别在于调用者,main是一个jvm所识别的固定名字,所以类中的main函数是由jvm所调用的,程序的固定入口。
而普通函数的调用可以通过类调用或对象调用,调用者为其他类或对象。
简而言之,主函数调用普通函数,普通函数被调用或者调用其他普通函数
不能,主函数是需要被jvm调用的,被private修饰主函数就不能成为接口。
参数分两种:一种叫形式参数,一种叫实际参数
形式参数:函数定义时的参数,例如 int r
实际参数:函数调用时传递的值,例如 15
普通类的情况下或者说你在定义java方法时,必需要定义一个返回值类型或者使用void占位符占位。
然后在方法体末端return一个返回值,需要与定义时候的返回值类型一致,然后在调用此方法时,把返回值传到调用处。
类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 类的虚拟机使用 Java 方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。实际的情况可能更加复杂,比如 Java 字节代码可能是通过工具动态生成的,也可能是通过网络下载的。
分为三步:加载-连接-初始化
是各个线程共享的内存区域,它用于存储class二进制文件,包含了虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据。它有个名字叫做Non-Heap(非堆),目的是与Java堆区分开。
定义的位置不同
静态变量: 定义在函数外面, 类的里面
局部变量: 定义在函数里面
作用域不同
静态变量: 当前类中所有的函数都可以使用
局部变量: 只能在当前函数内使用
局部变量一定不可以被外部访问, 因为不可用加访问权限修饰符
静态变量可以被外部访问, 因此可以添加访问权限修饰符
栈主要存放在运行期间用到的一些局部变量(基本数据类型的变量)或者是指向其他对象的一些引用,因为方法执行时,被分配的内存就在栈中,所以当然存储的局部变量就在栈中咯。当一段代码或者一个方法调用完毕后,栈中为这段代码所提供的基本数据类型或者对象的引用立即被释放。
栈帧是指函数运行时的状态,每一个栈帧中都包含着局部变量表,指令集,返回值。
break是跳出循环
continue是结束本轮循环, 进入下一轮循环
return是函数返回
Debug模式是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
图为断点样式。
简而言之,就是自己调用自己。通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略
例如:斐波那契数列。
class 定义类
public 公共的
private 私有的
if 开始一个选择分支, if后面跟小括号,小括号里面的操作数是判断条件, 可以是直接量,变量,表达式, 但必须是boolean类型
else else后面不跟条件, 但是else if后面必须跟条件
switch 开始一个选择分支, switch后面跟小括号
小括号里面的操作数只能是byte, short, int, char类型
Java5后支持枚举类型
Java7后支持String类型, 但通过观察字节码可以发现, 本质上还是int类型
注意, switch不支持long类型, 也不支持浮点型和boolean类型
case 是switch中的一个分支, 后面跟直接量, 直接量与switch()中的操作数的数据类型必须相同
default 在switch中所有case都不满足时执行default分支, 它相当于是多重if分支中的最后的else, 是所有情况都不满足时, 默认执行的分支
break 1. 用于跳出switch...case
2. 用户跳出循环
如果有循环嵌套循环, 那么break跳出的是最近的那个循环
while 开始一个循环, while后面跟小括号,小括号里面的操作数是判断条件, 可以是直接量,变量,表达式, 但必须是boolean类型
do do必须和while组合使用, do在前面, while在后面, 先执行一次do, 再通过判断while条件是否成立, 来决定是否循环
for 开始一个循环, for后面跟小括号, 小括号里面有3组表达式, 分别是循环变量初始化, 循环条件, 循环变量的迭代
continue 本轮循环结束, 进入下一轮循环
void 函数没有返回值
return 函数返回,
后面可以什么都不跟, 也可以跟一个操作数, 具体要看函数是否定义了返回值类型
static 静态的
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
abs | Math.abs(a) | double | 取a的绝对值 |
sqrt | Math.sqrt(a) | double | 取a的平方根 |
cbrt | Math.cbrt(a) | double | 取a的立方根 |
max | Math.max(a,b) | double | 取a、b之间的最大值 |
min | Math.min(a,b) | double | 取a、b之间的最小值 |
pow | Math.pow(a,b) | double | 取a的b平方 |
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
random | 无 | double | 随机生成0-1的浮点数 |
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
sin | sin(a) | double | 返回角度的三角正弦值 |
cos | cos(a) | double | 返回角度的三角余弦值 |
tan | tan(a) | double | 返回角度的三角正切 |