学习Java03

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

    1). 顺序结构
    2). 分支结构 (单路分支, 多路分支)
    3). 循环结构 
    4). 函数的调用与返回

2. 选择分支的语法

    单if
    互斥 if...else
    多分支互斥 if...else if...else if...else
    嵌套的if 
    switch...case

3. 循环语法

    while循环每次执行循环体之前,先对 test_ expression循环条件求值,如果循环条件为true,则运行循环体部分。从上面的语法格式来看,迭代语句 iteration_statement总是位于循环体的最后,因此只有当循环体能成功执行完成时,while循环才会执行 iteration_statement迭代语句。
从这个意义上来看, while循环也可被当成条件语句—―如果test_expression条件一开始就为false,则循环体部分将永远不会获得执行。

    do...whiledo while循环与while循环的区别在于: while循环是先判断循环条件,如果条件为真则执行循环体;而do while循环则先执行循环体,然后才判断循环条件,如果循环条件为真,则执行下一次循环,否则中止循环。

    for循环更加简洁的循环语句for(;;)

While和for有可能一次也不执行,do……while至少执行一次

循环的4要素

  1第一循环变量初始化

  2循环条件

  3循环条件的迭代

  4循环体

什么是函数?

函数是一系列指令的集合,通过函数的封装指令,可以达到代码的复用的目的

函数是组成代码的最小单元

类是组成程序的最小单元

4. 什么是静态函数, 函数的组成部分, 函数调用时需要注意什么
   主函数和普通函数的区别是什么

静态函数

既然有了静态变量那就会有静态函数,静态函数只有访问静态变量,其它非静态的函数是不被允许的,但在静态成员函数中可以声明它自身的变量,它也是一个函数也具有其它函数的特性!静态函数的声明和静态变量的声明所差无几:

函数的组成部分

在调用函数的时候一定要注意:

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

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

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

 主函数和普通函数的区别

1.区别在于调用,java函数都是为调用而生,main函数也不例外,而它与普通函数的区别在于调用者,main是一个jvm所识别的固定名字,所以类中的main函数是由jvm所调用的,程序的固定入口。

而普通函数的调用可以通过类调用或对象调用,调用者为其他类或对象。

2.main函数与普通函数另一个区别为写法:

普通函数的写法根据业务与java规范而定,但是main函数的写法是为了被jvm调用,所以写法固定(除了参数名字,但是参数类型是固定的字符串数组)
 

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

(1). 权限修饰符

           public : 公共的, 可以在任何外部类中调用
           private: 私有的, 只能在本类的内部调用
           (default)默认不写权限修饰符: 同包的, 只能在同一个包里面调用

(2). 静态修饰符

           static 函数必须添加static修饰符, 如果没有static修饰, 就不是函数, 而是方法
           方法的调用方式跟函数是不一样的

(3). 返回值类型

   写 void 代表函数没有返回值
   写一种具体的类型 代表函数有返回值, 并且约定了返回值的类型
   例如: 返回值类型的double, 那么调用方调用后, 只能用double类型的变量来接受函数的返回值
   并且函数内必须用return返回值的double类型的操作数出去

(4). 函数名
(5). 参数列表
(6). 函数体
(7). 返回值

5. 参数

调用者向被调用者内部传递的数据
形式参数(形参):相当于函数内部的局部变量
实际参数(实参):为形参赋值
注意:实参和形参 个数和顺序必须保持一致

6. 返回值

被调用者返回给调用者的数据
void 没有返回值
八种基本数据类型
引用数据类型
注意:返回值的数据类型,必须和返回值类型保持一致

7. 什么是类加载

java文件通过编译器变成了.class文件,接下来类加载器又将这些.class文件加载到JVM中。其中类装载器的作用其实就是类的加载。

其实,类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载的过程中遇到了.class文件缺失或存在错误,类加载器必须在程序首次主动使用该类时才报告错误(LinkageError错误)如果这个类一直没有被程序主动使用,那么类加载器就不会报告错误。

 8. 什么是方法区

1.方法区(Method Area)与Java堆一样,是各个线程共享的内存区域。

2.方法区在JVM启动的时候被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的。

3.方法区的大小,跟堆空间一样,可以选择固定大小或者可扩展。

4.方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类(加载大量第三方jar包、timcat部署的工程过多、大量动态生成反射类),导致方法区溢出,虚拟机同样会抛出内存溢出错误:java.lang.OutOfMemoryError: PermGen space(jdk7以前)或者java.lang.OutOfMemoryError: Metaspace(jdk8以后)

5.关闭JVM就会释放这个区域的内存。

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

定义的位置不同
         静态变量: 定义在函数外面, 类的里面
         局部变量: 定义在函数里面

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

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

jvm为每个新创建的线程都分配一个堆栈。堆栈以帧为单位保存线程的状态。jvm对堆栈只进行两种操作:以帧为单位的压栈和出栈操作。

栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
 

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

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

12. 画出JVM内存结构图

 13. 什么是debug

Debug:是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
1.2 Debug操作流程
Debug调试:又称断点调试,断点其实是一个标记,告诉我们从哪里开始查看
操作流程:
(1)如何加断点
(2)如何运行加了断点的程序
(3)看哪里
(4)点哪里
(5)如何删除断点


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值