Java语言基础---方法及内存空间

方法定义:(在C语言中叫函数Function)

---就是为了完成某个特定的功能,可以被重复使用的代码片断。

---方法体定义在类中,一个类可以有多个方法,且位置没有先后顺序。

---方法体中不能再定义方法。

---返回值类型是void时,方法体中不能有"return 值",但可以有return语句,表明方法结束了。

方法语法结构:

---【修饰符列表】 返回值类型 方法名(形参列表){

方法体

}

---方法名首字母小写,后面每个单词首字母大写。

---方法体中的代码有位置顺序。

---形参是局部变量,且数量没有限制,中间用逗号隔开。

---方法在调用时,实际使用的数据就是实参。

---实参与形参必须数量相同、类型相同。

---类体中不能直接编写java代码,只能声明变量,java代码要写在方法体中。

---main方法是程序的入口,当执行到其它方法时,main方法会暂停。

方法调用:

---当调用当前类中的方法时,可省略类名,直接使用方法名即可。

---建议在一个java源文件中只定义一个class。

---在同一个作用域下,return下面不能编写任何代码。

注意:方法只定义不调用,是不会被执行的,并且在JVM中也不会给该方法分配运行所属的内存空间。(只有调用时才会动态分配空间)

方法执行内存分析,以下是三块主要内存空间:

---方法区内存:存放java方法代码片段以及整个类的代码片段。--最先有数据的内存区

方法代码片段属于.class字节码文件的一部分,字节码文件在类加载的时候,将其放到了方法区中。因此,方法区内存空间比其它内存空间最先有数据

---栈内存:存放局部变量,每个线程都有一个栈内存。--变化最频繁的内存区

每次调用方法时都会分配一个内存空间,每个方法在栈中都有一个单独的空间,哪怕是内嵌方法也有自己的独立的空间,并不包含于父方法的空间中。

因为main方法肯定是最先被调用的,那它肯定会第一个入栈,存放于栈底,等其它方法全部调用完成后,才会回到main方法。
(栈就是方法运行时所属的空间,入栈时分配空间,出栈时释放空间)例如:方法体中声明的“局部变量”,就是在栈中分配空间。

关于"栈"数据结构:

栈帧永远指向栈顶元素,栈顶元素处于活跃状态,其它元素静止。

压栈=入栈=push,弹栈=出栈=pop

存储特点:先进后出,后进先出。(方法在调用的瞬间,会给该方法分配内存空间,执行入栈动作;当方法执行结束之后,给该方法分配的内存空间全部释放,执行出栈动作。)

插曲:程序员必备技能--数据结构+算法

数据结构:是指数据的存储形态,不属于任何编程语言,常用的数据结构:数组、队列、栈、链表、二叉树、哈希表/散列表等。

---堆内存:存放所有new运算符创建的java对象。--垃圾回收器针对的内存区

访问堆内存只能通过引用的方式,当没有更多的引用指向它时,这个对象无法被访问,将变成垃圾

变量分类:

        局部变量:在方法体中声明的变量;

        成员变量:在方法体外声明的变量。

                实例变量:前面修饰符没有static

                静态变量:前面修饰符有static,且一般存储在方法区内存当中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值