Java教程

java培训第五天总结

本文主要是介绍java培训第五天总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.方法

1.1方法的重载

 1.2内存划分

程序:可执行文件,是一对命令的集合,是个静态概念,保存在硬盘中

进程:就是正在执行的程序,是个动态概念,保存在运行内存中,会按照改程序的设计在内存中一步步执行

        运行中的程序 也就是载入到内存中的可执行未见,操作系统会开启一个进程,用来保存运行的这个未闭环

        如果想要关闭某个程序只需要在内存中把该进程杀死即可

java的内存划分和管理

        java Runtime Data Area:java 运行时的数据区域,一般叫jvm内存

分为五大块:

1静态区、方法区 2 vm栈 3 堆内存 4 程序计数器 5 本地方法栈

        程序计数器:是一块比较小的内存,字节码位置的指示器,比如当前执行到第几行之类,分支,循环,跳转等

        静态区:是用来保存程序文件(class),载入到内存之后的class文件保存在静态区中

还有一些静态资源

        vm栈:又叫栈内存,用来执行方法

是以栈数据结构为模型创建的一段空间:先进后出,类似于弹匣

栈空间:就是栈内存,就是以栈数据结构为模型创建的内存空间,叫栈空间

栈帧:栈空间中的元素就是栈帧,比如弹匣是栈空间的话,子弹就是栈帧

栈底元素:第一个放进去的栈帧

栈顶元素:最后一个放进去的栈帧

栈操作:

压栈:就是指向栈空间中添加栈帧的过程,类似吧子弹放到弹匣中,叫压栈

弹栈:就是指把栈帧在栈空间中弹出的过程

        本地方法栈:用来执行本地方法,和栈内存一样,使用native修饰的方法,和我们没关系

        堆内存:用来保存对象

执行流程:

1 javac编译 生成class文件

2 java命令 运行

2.1 开启java虚拟机,然后吧对应的文件 xxx。class载入内存中的静态区

2.2 载入之后。jvm自动调用改程序中main方法,然后再栈内存开辟main方法栈帧,开始执行

2.3 如果main方法中没有其他方法调用,则执行完结束,销毁即可

2.4 如果main方法中有其他方法的调用,如果是其他类中的方法,则吧对应类也会加载到静态区,然后调用该方法

2.5 如果是当前类的方法,直接在栈内存中继续压栈即可

2.6 如果被调用方法中还有其他方法调用的话,则步骤同上

2.7 一直到最后一个压栈的方法执行完,弹栈,然后再一次返回调用处继续执行

2.8 一直到main方法执行完,弹栈,程序销毁

方法的调用就等于是压栈操作

方法的调用结束就等于是弹栈操作

静态加载:程序开始执行,首先吧所有和程序相关的类全部一次性载入

动态加载:开始执行的时候,只加载必须的类,在执行的过程中需要用到其他类再去加载

java中采用的是动态加载

 2.递归

2.1概述

递归:在方法体中,调用当前的方法(自己调用自己)

基本思想:递归和迭代是等价的(迭代就是循环)一次类推 是基本思想

三要素:初始值。终止条件。步长

2.2应用场景

一般树状结构的都可以使用递归操作

比如查询地区,树状菜单,文件目录等

递归的算法比普通算法更消耗内存,谨慎使用,能用循环完成就不用递归完成,除非某些树状情况只能使用递归搞定

递归面试题:1文件夹复制2裴波那契数列

2.3常见异常

栈内存溢出,就是满了

1程序有问题,死循环了

2程序没有问题,就是装不下了

2.4案例

 

除了前两位是1后面每一位都是前两位的加和

 

 

 

 

 

这篇关于java培训第五天总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!