JAVA学习DAY-3

目录

一、程序的执行流程有几种

二、选择分支结构的语法

   1.单if

    2.互斥 if...else

    3.多分支互斥 if...else if...else if...else

    4.嵌套的if

    5.switch...case

三、循环结构的语法

1.while

2.do....while

3.for

4.循环的四要素

 四、什么是函数

什么是静态函数?

函数调用时需要注意什么?

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

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

五、函数的组成

1.权限修饰符

2.静态修饰符

3.返回值类型

4.函数名

5.参数列表

6.函数体

7.返回值

六、类加载、方法区、栈

1.什么是类加载

2.什么是方法区

3.栈和栈帧

七、静态变量和局部变量的区别

八、 break、continue、return的作用和区别

九、JVM内存结构图

十、什么是debug

十一、什么是递归

十二、函数的调用

1.定义private修饰的函数

 2.默认default修饰的函数

十三、关键字的整理

 十四、JKD自带的Math函数

1.查看自带的Math函数

2.常用的Math函数


一、程序的执行流程有几种

(1)顺序结构

(2)分支结构 (单路分支、多路分支)

(3)循环结构

(4)函数的调用与返回

二、选择分支结构的语法

   1.单if

   开始一个选择分支, if后面跟小括号,小括号里面的操作数是判断条件, 可以是直接量,变量,表达式, 但必须是boolean类型


    2.互斥 if...else

当if()括号中条件不成立时,则执行else语句


    3.多分支互斥 if...else if...else if...else

适合用于区间选择


    4.嵌套的if

if(){

if(){}

}

外层if()括号内条件成立时,继续执行内存嵌套的if(),不成立则不执行。


    5.switch...case

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跳出的是最近的那个循环

 

三、循环结构的语法

1.while

    开始一个循环, while后面跟小括号,小括号里面的操作数是判断条件, 可以是直接量,变量,表达式, 但必须是boolean类型

2.do....while

   do必须和while组合使用, do在前面, while在后面, 先执行一次do, 再通过判断while条件是否成立, 来决定是否循环

3.for

   开始一个循环, for后面跟小括号, 小括号里面有3组表达式, 分别是循环变量初始化, 循环条件, 循环变量的迭代

4.循环的四要素

 四、什么是函数

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

什么是静态函数?

  如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。定义一个内部函数,只需在函数类型前再加一个“static”关键字即可:static  函数类型  函数名(函数参数表)关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。

函数调用时需要注意什么?

 1.实际参数的类型与形式参数的类型匹配。

 2.实际参数与形式参数的个数要相同。

 3.实际参数与形式参数的类型个数要一一对应。

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

  程序的运行是从main函数开始,在main函数中结束,main函数可以调用其他所有的函数,但是其他函数不能调用main函数。

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

    不能。主函数需要被JVM虚拟机调用

五、函数的组成

1.权限修饰符

public:公共的,可以在任何外部类中调用

static:私有的,只能在本类的内部调用

default:默认不写修饰符,只能在同一个包中调用

2.静态修饰符

static 函数必须添加static修饰符,如果没有static修饰,就不是函数而是方法。

方法的调用方式和函数是不一样的。

3.返回值类型

写void代表函数没有返回值

写一种具体的类型,代表函数有返回值,并且约定了返回值的类型

   例如:返回值类型是double,调用方调用后,只能用double类型的变量来接受函数的返回值,并且函数内必须用return返回值的double类型的操作数出去。

4.函数名

5.参数列表

6.函数体

7.返回值

六、类加载、方法区、栈

1.什么是类加载

    就是将类的class文件读入内存,并为之创建一个Java.lang.class对象,也就是说当程序使 用任何类时,系统都会为之建立一个java.lang.class对象
最终产物:堆中的java.lang.class对象

2.什么是方法区

    方法区在JVM中也是一个非常重要的区域,它与堆一样,是被线程共享的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。

  方法区(method area)只是JVM规范中定义的一个概念,用于存储类信息、常量池、静态变量、JIT编译后的代码等数据,具体放在哪里,不同的实现可以放在不同的地方。


3.栈和栈帧

七、静态变量和局部变量的区别

静态变量可以被外部访问,因此可以添加访问权限修饰符。

局部变量一定不可以被外部访问,因此不能加访问权限修饰符。

定义的位置不同

静态变量:定义在函数外面,类的里面

局部变量:定义在函数里面

作用域不同:

静态变量:当前类中所有的函数都可以使用

局部变量:只能在当前函数内使用

八、 break、continue、return的作用和区别

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

九、JVM内存结构图

十、什么是debug

  • Debug,是程序开发人员必会的一项调试程序的技能。
  • 企业中程序开发和程序调试的比例为1:1.5,可以说如果你不会调试程序,你就没有办法从事编程工作。
  • 找到main方法开始执行, 会在断点处停止, 可以单步执行

  • Debug能帮助我们做什么?

    1. 追踪代码的运行流程。
    2. 程序运行异常定位。
    3. 线上问题追踪。
  • Debug对于程序学习者的意义

    1. 通过调试能够更好的查看程序的执行流程。
    2. 复杂的程序逻辑,通过老师的口述讲解,很难理解清楚,这个时候借助调试能够很好的帮助同学们理解程序。
    3. 定位问题,提高自我解决问题的能力。

十一、什么是递归

        递归,就是在运行的过程中不断地调用自己。递归有两个过程,简单的说一个是递的过程,一个是归的过程。

十二、函数的调用

1.定义private修饰的函数

无法在别的类中调用该类中的该函数

 2.默认default修饰的函数

不加修饰符则默认是default修饰

在同一个包不同类中可以调用

在不同包中无法调用

 

十三、关键字的整理

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

 十四、JKD自带的Math函数

1.查看自带的Math函数

2.常用的Math函数

1.Math.sqrt() : 计算平方根

例子:System.out.println(Math.sqrt(25)); // 5.0

2.Math.cbrt() : 计算立方根

例子:System.out.println(Math.cbrt(27)); // 3.0

3.Math.pow(a, b) : 计算a的b次方

例子:System.out.println(Math.pow(3, 2)); // 9.0

4.Math.max( , ) :计算最大值

例子:System.out.println(Math.max(2.3, 4.5));// 4.5

5.Math.min( , ) : 计算最小值

例子:System.out.println(Math.min(2.3, 4.5));// 2.3

6.Math.abs() : 取绝对值

例子:System.out.println(Math.abs(-10.4)); // 10.4
           System.out.println(Math.abs(10.1)); // 10.1

7.Math.ceil(): 逢余进一

例子:System.out.println(Math.ceil(-10.1)); // -10.0
           System.out.println(Math.ceil(10.7)); // 11.0
           System.out.println(Math.ceil(-0.7)); // -0.0
           System.out.println(Math.ceil(0.0)); // 0.0
           System.out.println(Math.ceil(-0.0)); // -0.0
           System.out.println(Math.ceil(-1.7)); // -1.0


8.Math.floor() : 逢余舍一

例子:System.out.println(Math.floor(-10.1)); // -11.0
           System.out.println(Math.floor(10.7)); // 10.0
           System.out.println(Math.floor(-0.7)); // -1.0
           System.out.println(Math.floor(0.0)); // 0.0
           System.out.println(Math.floor(-0.0)); // -0.0


9.Math.rint(): 四舍五入,返回double值。注意.5的时候会取偶数

例子: System.out.println(Math.rint(10.1)); // 10.0
            System.out.println(Math.rint(10.7)); // 11.0
            System.out.println(Math.rint(11.5)); // 12.0
            System.out.println(Math.rint(10.5)); // 10.0
            System.out.println(Math.rint(10.51)); // 11.0
            System.out.println(Math.rint(-10.5)); // -10.0
            System.out.println(Math.rint(-11.5)); // -12.0
            System.out.println(Math.rint(-10.51)); // -11.0
            System.out.println(Math.rint(-10.6)); // -11.0
            System.out.println(Math.rint(-10.2)); // -10.0


10.Math.round(): 四舍五入,float时返回int值,double时返回long值

例子:System.out.println(Math.round(10.1)); // 10
           System.out.println(Math.round(10.5)); // 11
           System.out.println(Math.round(-10.5)); // -10
           System.out.println(Math.round(-10.51)); // -11
           System.out.println(Math.round(-10.6)); // -11
           System.out.println(Math.round(-10.2)); // -10

11.Math.random(): 取得一个[0, 1)范围内的随机数

例子: System.out.println(Math.random()); // [0, 1)的double类型的数
            System.out.println(Math.random() * 2);//[0, 2)的double类型的数
            System.out.println(Math.random() * 2 + 1);// [1, 3)的double类型的数
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值