Java学习日记 2022.6.23

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1. 程序的执行流程有几种

1). 顺序结构
	每条语句按自上而下的顺序依次执行一次
2). 分支结构 (单路分支, 多路分支)
	编写的代码可能会执行 一次
3). 循环结构 
	编写的代码可能会执行 一次
4). 函数的调用与返回
	函数是由返回类型,函数名,和函数名后边括号内的形式参数列表组成的。
	通过函数名进行调用,
	通过return语句进行返回。

2. 整理选择分支的语法

单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;
        }

3. 整理循环语法

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至少会执行一次

3.1循环的4要素

1)循环标量初始化
2)循环条件
3)循环条件的迭代
4)循环体

3.2什么是函数?

函数是一系列指令的集合, 通过函数封装指令, 可以达到代码复用的目的
函数是组织代码的最小单元
类是程序的最小单元

4. 什么是静态函数, 函数的组成部分, 函数调用时需要注意什么

static表示“全局”或“静态”,用于修改成员变量和成员方法,还可以形成静态静态代码块,但是Java语言中没有全局变量的概念.由static修改的成员变量和成员方法独立于此类的任何对象. 换句话说,它不依赖于该类的特定实例,而是由该类的所有实例共享的.
在函数调用时,需要注意这个函数的权限修饰符,这个函数在哪个包和哪个类中。
例如:调用同包中的工具类

        System.out.println("max = " + Math.Max(a,b));

4.1主函数和普通函数的区别是什么

区别在于调用,java函数都是为调用而生,main函数也不例外,而它与普通函数的区别在于调用者,main是一个jvm所识别的固定名字,所以类中的main函数是由jvm所调用的,程序的固定入口。
而普通函数的调用可以通过类调用或对象调用,调用者为其他类或对象。
简而言之,主函数调用普通函数,普通函数被调用或者调用其他普通函数

4.2主函数可以用private修饰吗? 为什么?

不能,主函数是需要被jvm调用的,被private修饰主函数就不能成为接口。

  1. 权限修饰符
    public : 公共的, 可以在任何外部类中调用
    private: 私有的, 只能在本类的内部调用
    (default)默认不写权限修饰符: 同包的, 只能在同一个包里面调用
  2. 静态修饰符
    static 函数必须添加static修饰符, 如果没有static修饰, 就不是函数, 而是方法
    方法的调用方式跟函数是不一样的
  3. 返回值类型
    写 void 代表函数没有返回值
    写一种具体的类型 代表函数有返回值, 并且约定了返回值的类型
    例如: 返回值类型的double, 那么调用方调用后, 只能用double类型的变量来接受函数的返回值
    并且函数内必须用return返回值的double类型的操作数出去
  4. 函数名
    必须写
    函数的标识码
    调用方通过函数名进行调用
  5. 参数列表
    可以有参数,也可以没有参数,但是()一定要有,可以有1个参数或者多个参数
    定义参数的时候需要指定参数的类型和参数名,不需要写参数值,参数值是要调用方在调用函数的时候被指定的,调用方在调用函数的时候,必须要给参数列表中所有参数的值,参数个数和数据必须一一匹配的
  6. 函数体
  7. 返回值

5. 参数

参数分两种:一种叫形式参数,一种叫实际参数
形式参数:函数定义时的参数,例如 int r
实际参数:函数调用时传递的值,例如 15

6. 返回值

普通类的情况下或者说你在定义java方法时,必需要定义一个返回值类型或者使用void占位符占位。
然后在方法体末端return一个返回值,需要与定义时候的返回值类型一致,然后在调用此方法时,把返回值传到调用处。

7. 什么是类加载

类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 类的虚拟机使用 Java 方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。实际的情况可能更加复杂,比如 Java 字节代码可能是通过工具动态生成的,也可能是通过网络下载的。
分为三步:加载-连接-初始化

8. 什么是方法区

是各个线程共享的内存区域,它用于存储class二进制文件,包含了虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据。它有个名字叫做Non-Heap(非堆),目的是与Java堆区分开。

9. 静态变量与局部变量的区别

 定义的位置不同
 	静态变量: 定义在函数外面, 类的里面
 	局部变量: 定义在函数里面
 作用域不同
 	静态变量: 当前类中所有的函数都可以使用
 	局部变量: 只能在当前函数内使用
 局部变量一定不可以被外部访问, 因为不可用加访问权限修饰符
 静态变量可以被外部访问, 因此可以添加访问权限修饰符

10. 什么是栈, 什么是栈帧

栈主要存放在运行期间用到的一些局部变量(基本数据类型的变量)或者是指向其他对象的一些引用,因为方法执行时,被分配的内存就在栈中,所以当然存储的局部变量就在栈中咯。当一段代码或者一个方法调用完毕后,栈中为这段代码所提供的基本数据类型或者对象的引用立即被释放。
栈帧是指函数运行时的状态,每一个栈帧中都包含着局部变量表,指令集,返回值。

11. break、continue、return的作用和区别

break是跳出循环
continue是结束本轮循环, 进入下一轮循环
return是函数返回

12. 画出JVM内存结构图

在这里插入图片描述

13. 什么是debug

Debug模式是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
在这里插入图片描述
图为断点样式。

14. 什么是递归

简而言之,就是自己调用自己。通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略
例如:斐波那契数列。
在这里插入图片描述

15. 整理以下关键字

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     静态的

16.Java中的Math函数常用方法

算术计算

函数名参数返回值作用
absMath.abs(a)double取a的绝对值
sqrtMath.sqrt(a)double取a的平方根
cbrtMath.cbrt(a)double取a的立方根
maxMath.max(a,b)double取a、b之间的最大值
minMath.min(a,b)double取a、b之间的最小值
powMath.pow(a,b)double取a的b平方

随机数

函数名参数返回值作用
randomdouble随机生成0-1的浮点数

三角函数

函数名参数返回值作用
sinsin(a)double返回角度的三角正弦值
coscos(a)double返回角度的三角余弦值
tantan(a)double返回角度的三角正切
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值