Java 整理笔记03


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


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


2. 整理选择分支的语法


单if

 


互斥 if...else

if ... else 二走一,对立关系,

 


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

最难实现的条件放在最前面,容易的放在最后面
 

 


    嵌套的if 


    switch...case

 


3. 整理循环语法


while

while循环,先判断条件,在决定执行,循环有可能一次都不执行;

do...while

 

1.do ... while 先执行一次,再判断条件, 循环至少会执行一次

2.do...while 循环,while后面要跟分号,不然报错

for

1.for(循环条件;循环判断;循环迭代){
循环体 }

2.for循环,先判断条件,在决定执行,循环有可能一次都不执行


循环的4要素

循环的四要素:

1. 循环变量初始化

2.循环条件

3.循环条件的迭代

4.循环体


什么是函数?


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

2. 类是程序的最小单元


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

  

 

4. 1. 权限修饰符


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


  4. 2. 静态修饰符


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

   4.3. 返回值类型


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

  
 4.  4. 函数名

函数名: 就是程序员给这一段代码自定义的名称(标识符)。


  4. 5. 参数列表

 参数列表: 参数列表有若干个 参数类型,参数名...组成,主要用于接收外界传递给函数的一些数据(形参)。


  4. 6. 函数体

函数体: 是具有独立功能的代码块。

4.7. 返回值

返回值 要用关键字return来返回,返回值的类型要与接收返回值的变量类型要一致;,对于返回值为空类型的函数,不需要返回任何值(默认有return

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

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

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

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

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


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

private不可以修饰主函数因为加了private修饰的话,jvm虚拟机不能调用主函数类


5. 传参

1. 函数有参数,调用时必须传参;
2. 传参类型要保持一致;
3. 传参的个数也要保持一致,没有参数,可以不传


6. 返回值

1. 要用关键字return来返回;
2. 返回值的类型要与接收返回值的变量类型要一致;
3. 对于返回值为空类型的函数,不需要返回任何值(默认有return)。


7. 什么是类加载

类的加载就是为将.class文件的二进制字节流读入内存,并在堆内存中为之创建Class对象.


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虚拟机中负责管执行的区域,栈区中的最小单位是栈帧,,它按照FILO(First In Last Out,后进先出)的原则存储数据,栈区中的最小单位是栈帧。

栈的相关概念:

  1. 栈顶栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底
  2. 压栈:栈的插入操作,叫做进栈,也称压栈、入栈。
  3. 弹栈:栈的删除操作,也叫做出栈。

下面是栈的示意图,从图中可以清楚的看到,不管是插入数据还是删除数据,都是在栈顶进行的,还有就是FILO原则,可以看到,如果你想取出B的值,那么你必须先要将B的上面的C取出,要取出C的值,就得取出C上面的值,以此类推。



栈帧:栈区中的最小执行单元,栈帧是方法的运行时的形态

栈帧包含

           1)方法的指令集(即方法中的代码)

           2)局部变量表(即方法中声明的所有变量)

           3)返回值地址(即方法运行后返回的结果)


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

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

区别:

1.return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。

 

 

 2. continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。而break则是完全中止循环。

 

3.break用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。

 

 

 


12. 画出JVM内存结构图

 


13. 什么是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     静态的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值