java学会这些,我就入门啦!(基础篇一)栈与堆

最近有比较多的粉丝说想学习java,或者正在上学,或者刚开始培训,或者在面试,希望我整理出一份可以在空闲的时候看的干货!!

下面,你们要的干货来了,一篇就是一个知识点,可以随时随地打开手机看看,面试,学习必备。关注我哦!

所有的java程序在运行时,都要在内存中开辟一个空间,并且在JVM(java虚拟机)运行的时候,会分得更加的细致,虚拟机中每一片内存的处理方式都是不一样的,所以需要进行单独的管理。

JVM的内存一共分为5种:

寄存器,本地方法区,方法区,堆内存,栈内存

今天我们主要讲堆内存与栈内存。

栈内存:

栈内存主要储存的是局部变量,也就是说,是定义在方法之内的,都叫局部变量。线程执行的时候调用方法的内存模型,当方法执行的时候,会创建一个叫“栈帧”的内存结构,栈帧会储存该方法内用到的局部变量表,操作数栈、返回地址、动态连接等信息。(这里新手主要了解局部变量表与返回地址就好了,局部变量表顾名思义是用来储存局部变量的,方法返回地址,是指方法在运行过程中,可能会正常退出,也可能会异常退出,但是不管哪种退出方式,都要让调用者知道方法退出的位置,方法返回地址就是用来确定退出位置的。)一个方法从方法被调用开始,到方法执行结束,就是一个栈帧在java栈中从入栈到出栈的全过程。

堆内存:

堆内存储存的是对象,也就是new出来的都在堆里,堆中存放的都是实体(对象),实体用于封装数据,而且是封装多个(实体的多个属性),如果一个数据消失,这个实体也没有消失,还可以用,所以堆是不会随时释放的,但是栈不一样,栈里存放的都是单个变量,变量被释放了,那就没有了。堆里的实体虽然不会被释放,但是会被当成垃圾,Java有垃圾回收机制不定时的收取。

通俗一点说堆和栈的区别:堆主要用来存放对象的,栈主要用来执行程序的。

那么栈和堆有什么不同呢,我们可以从几个方面看待他们的不同!

顺序:

栈是先进后出,堆是先进先出

缓存:

栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;

堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。

内存回收:

栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。

申请效率:

栈:由系统自己分配,速度较快,但是程序员无法掌握。

堆:一般有两种方法来申请内存,new和malloc,new是一种用算符而malloc是函数。由程序员申请出来的内存一般速度比较慢,而却容易产生内存碎片,不过用起来比较方便,获取的空间大,也相对较灵活。

每天抽出空闲的时间多看一点点。相信我,你会变得更强。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Java Web开发教程: 入门与提高(JSP Servlet)PDF》是一本针对Java Web开发的教程,旨在帮助读者从入门到提高掌握JSP和Servlet的使用。 这本教程包括两个主要部分:JSP和Servlet。JSP(Java Server Pages)是一种动态网页开发技术,它允许开发人员在HTML网页上嵌入Java代码。Servlet是一种运行在服务器端的Java程序,用于处理客户端请求和生成响应。 在入门部分,教程首先介绍了Java Web开发的基础知识,包括HTML和CSS的基本语法、HTTP协议的工作原理等。然后,它详细介绍了JSP的语法和标签,包括如何在JSP页面中嵌入Java代码,如何使用JSTL(JSP标准标签库)等。同时,它还介绍了如何使用Eclipse等常用的开发工具来编写和调试JSP页面。 在提高部分,教程进一步深入讲解了Servlet的使用。它介绍了Servlet的生命周期、请求处理过程和Servlet API的常用类和方法。此外,教程还介绍了如何使用Cookie和Session来实现用户认证和数据共享,以及如何使用过滤器和监听器来实现请求过滤和监听事件。 该教程的特点是通俗易懂,结合实例和练习,帮助读者进行实践。此外,教程还提供了一些实际项目案例,帮助读者理解和应用所学知识。 总之,《Java Web开发教程: 入门与提高(JSP Servlet)PDF》是一本适合Java Web开发初学者和有一定基础的开发人员学习的教材,通过学习该教程,读者可以全面掌握JSP和Servlet的使用,为自己的Web开发之路做好铺垫。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

carl的分享笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值