当前位置: 首页 > news >正文

免费软件网站建设网站如何优化关键词排名

免费软件网站建设,网站如何优化关键词排名,北京电商购物网站开发,异构国际设计文章目录1.概述1.1 堆1.2 栈2.堆内存2.1 什么是堆内存?2.2堆内存的特点是什么?2.3new对象在堆中如何分配?3.栈内存3.1什么是栈内存?3.2栈内存的特点3.3栈内存的内存分配机制3.4数据共享4.栈与堆的区别4.1差异4.2相同5. 面试题: java堆和栈的区别**申请方式****申请后系统的…

文章目录

  • 1.概述
    • 1.1 堆
    • 1.2 栈
  • 2.堆内存
    • 2.1 什么是堆内存?
    • 2.2堆内存的特点是什么?
    • 2.3new对象在堆中如何分配?
  • 3.栈内存
    • 3.1什么是栈内存?
    • 3.2栈内存的特点
    • 3.3栈内存的内存分配机制
    • 3.4数据共享
  • 4.栈与堆的区别
    • 4.1差异
    • 4.2相同
  • 5. 面试题: java堆和栈的区别
    • **申请方式**
    • **申请后系统的响应**
    • **申请大小的限制**
    • **申请效率的比较**
    • **堆和栈的存储内容**

1.概述

在Java中,内存分为两种,一种是栈内存,另一种就是堆内存

JAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:

  1. 寄存器。
  2. 本地方法区
  3. 方法区。
  4. 栈。
  5. 堆。

1.1 堆

可以把堆理解为一家餐厅,里面有200张桌子,也就是最多能同时容纳200桌客人就餐,来一批客人就为他们安排一些桌子,如果某天来的客人特别多,超过200桌了,那就不能再接待超出的客人了。
当然,进来吃饭的客人不可能是同时的,有的早,有的晚,先吃好的客人,老板会安排给他们结账走人,然后空出来的桌子又能接待新的客人。
这里,堆就是餐厅,最大容量200桌就是堆内存的大小,老板就相当于GC(垃圾回收),给客人安排桌子就相当于java创建对象的时候分配堆内存,结账就相当于GC回收对象占用的空间。

1.2 栈

接着把栈比作一口废井,这口井多年不用已经没水了,主人现在把它作为贮存自酿酒的地方,存酒的时候就用绳子勾着酒坛子慢慢放下去,后面再存就一坛一坛堆着放上去,取酒的时候就先取最上面的坛子。

2.堆内存

2.1 什么是堆内存?

堆内存是是Java内存中的一种,它的作用是用于存储Java中的对象和数组,当我们new一个对象或者创建一个数组的时候,就会在堆内存中开辟一段空间给它,用于存放。

2.2堆内存的特点是什么?

第一点:堆其实可以类似的看做是管道,或者说是平时去排队买票的的情况差不多,所以堆内存的特点就是:先进先出,后进后出,也就是你先排队,好,你先买票。

第二点:堆可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,但缺点是,由于要在运行时动态分配内存,存取速度较慢

2.3new对象在堆中如何分配?

由Java虚拟机的自动垃圾回收器来管理

3.栈内存

3.1什么是栈内存?

栈内存是Java的另一种内存,主要是用来执行程序用的,比如:基本类型的变量和对象的引用变量

3.2栈内存的特点

第一点:栈内存就好像一个矿泉水瓶,像里面放入东西,那么先放入的沉入底部,所以它的特点是:先进后出,后进先出

第二点:存取速度比堆要快,仅次于寄存器,栈数据可以共享,但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性

3.3栈内存的内存分配机制

栈内存可以称为一级缓存,由垃圾回收器自动回收

3.4数据共享

例子:

int a = 3;
int b = 3;
第一步处理:
1.编译器先处理int a = 3;
2.创建变量a的引用
3.在栈中查找是否有3这个值
4.没有找到,将3存放,a指向3
第二步处理:
1.处理b=3
2.创建变量b的引用
3.找到,直接赋值
第三步改变:
接下来
a = 4;
同上方法
a的值改变,a指向4,b的值是不会发生改变的
如果是两个对象的话,那就不一样了,对象指向的是同一个引用,一个发生改变,另一个也会发生改变

4.栈与堆的区别

JVM是基于堆栈的虚拟机.JVM为每个新创建的线程都分配一个堆栈, 也就是说, 对于一个Java程序来说,它的运行就是通过对堆栈的操作来完成的。堆栈以帧为单位保存线程的状态。JVM对堆栈只进行两种操作: 以帧为单位的压栈和出栈操作。

4.1差异

1.堆内存用来存放由new创建的对象和数组。
2.栈内存用来存放方法或者局部变量等
3.堆是先进先出, 后进后出
4.栈是先进后出, 后进先出

4.2相同

1.都是属于Java内存的一种
2.系统都会自动去回收它,但是对于堆内存一般开发人员会自动回收它

5. 面试题: java堆和栈的区别

Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程,主要存放线程执行过程中的局部变量,方法的返回值,基本类型的变量(,int, short, long, byte, float, double, boolean, char)以及方法调用的上下文。栈空间随着线程的终止而释放,栈的优势是,存取速度比堆要快,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈有一个很重要的特殊性,就是存在栈中的数据可以共享。

Java中堆是由所有的线程共享的一块内存区域,堆用来保存各种JAVA对象,比如数组,线程对象等,java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等 指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小, 生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。

申请方式

  • 栈:由系统自动分配。例如在声明函数的一个局部变量int b,系统自动在栈中为b开辟空间。
  • 堆:需要程序员自己申请,并指明大小,在C中用malloc函数;在C++中用new运算符。

申请后系统的响应

  • 栈:只要栈的剩余空间大于所申请的空间,系统将为程序提供内存,否则将报异常提示栈溢出。
  • 堆:操作系统有一个记录空间内存地址的链表,当系统收到程序的申请时,会遍历链表,寻找第一个空间大于所申请空间的堆节点,然后将节点从内存空闲节点链表中删除,并将该节点的空间分配给程序。对于大多数操作系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。另外,由于找到的对节点的大小不一定正好等于申请的大小,系统会自动地将多余的那部分重新放入到链表中

申请大小的限制

栈:在Windows下,栈是向低地址拓展的数据结构,是一块连续的内存的区域。站定地址和栈的大小是系统预先规定好的,如果申请的内存空间超过栈的剩余空间,将提示栈溢出
堆:堆是向高地址拓展的内存结构,是不连续的内存区域。是系统用链表存储空闲内存地址的,不连续

申请效率的比较

  • 栈:由系统自动分配,速度较快。但程序员无法控制。
  • 堆:由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来方便。

**拓展:**在Windows操作系统中,最好的方式使用VirtualAlloc分配内存。不是在堆,不是在栈,而是在内存空间中保留一块内存,虽然用起来不方便,但是速度快,也很灵活。

堆和栈的存储内容

  • 栈:在函数调用时,第一个进栈的是主函数的中的下一条指令(函数调用的下一个可执行语句)的地址,然后是函数的各个参数。在C编译器中,参数是由右往左入栈的,然后是函数的局部变量。静态变量不入栈。
  • 堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容由程序员安排。

数据结构方面的堆和栈与上边叙述不同。这里的堆是指优先队列的一种数据结构,第一个元素有最高的优先权;栈实际就是满足先进后出的性质的数学或数据结构

参考文章(侵删):
Java 堆和栈的区别
一分钟彻底理解Java中的堆和栈


文章转载自:
http://dinncomilord.ydfr.cn
http://dinncopassional.ydfr.cn
http://dinncofrequence.ydfr.cn
http://dinncolabialisation.ydfr.cn
http://dinncolean.ydfr.cn
http://dinncoplotty.ydfr.cn
http://dinncoantiheroine.ydfr.cn
http://dinncoholden.ydfr.cn
http://dinncotrover.ydfr.cn
http://dinncojpeg.ydfr.cn
http://dinncopander.ydfr.cn
http://dinncoturbulence.ydfr.cn
http://dinncojeering.ydfr.cn
http://dinncodiglossic.ydfr.cn
http://dinncopediarchy.ydfr.cn
http://dinncoproofreader.ydfr.cn
http://dinncoparticularize.ydfr.cn
http://dinncoaltarwise.ydfr.cn
http://dinncoacetonaemia.ydfr.cn
http://dinncoadditory.ydfr.cn
http://dinncoheroine.ydfr.cn
http://dinncocreophagous.ydfr.cn
http://dinncoipc.ydfr.cn
http://dinncosiphonein.ydfr.cn
http://dinnconiece.ydfr.cn
http://dinncoelectrolyte.ydfr.cn
http://dinncolaconia.ydfr.cn
http://dinncomarantic.ydfr.cn
http://dinncofragmentate.ydfr.cn
http://dinncononscience.ydfr.cn
http://dinncopacifier.ydfr.cn
http://dinncocryocable.ydfr.cn
http://dinncocaviare.ydfr.cn
http://dinncohouse.ydfr.cn
http://dinncounknowing.ydfr.cn
http://dinncophotolyze.ydfr.cn
http://dinncofaucial.ydfr.cn
http://dinncoweisswurst.ydfr.cn
http://dinncozed.ydfr.cn
http://dinncoterrapin.ydfr.cn
http://dinncoreflectivity.ydfr.cn
http://dinncoshvartzer.ydfr.cn
http://dinncokain.ydfr.cn
http://dinncoscatter.ydfr.cn
http://dinncospontoon.ydfr.cn
http://dinncofroggy.ydfr.cn
http://dinncobeadwork.ydfr.cn
http://dinncogallomania.ydfr.cn
http://dinncocytospectrophotometry.ydfr.cn
http://dinncoeyrie.ydfr.cn
http://dinncogct.ydfr.cn
http://dinncoarrhythmic.ydfr.cn
http://dinncohydrastis.ydfr.cn
http://dinncocancerroot.ydfr.cn
http://dinncoadmittance.ydfr.cn
http://dinncogeosychronous.ydfr.cn
http://dinncohomiletics.ydfr.cn
http://dinncoattain.ydfr.cn
http://dinncoenculturative.ydfr.cn
http://dinncoduffer.ydfr.cn
http://dinncoosb.ydfr.cn
http://dinncospitter.ydfr.cn
http://dinncogloxinia.ydfr.cn
http://dinncochaffy.ydfr.cn
http://dinncocarbon.ydfr.cn
http://dinncozu.ydfr.cn
http://dinncochelicera.ydfr.cn
http://dinncoflophouse.ydfr.cn
http://dinncocornetto.ydfr.cn
http://dinncocellulated.ydfr.cn
http://dinncocalgon.ydfr.cn
http://dinncoparoxysmal.ydfr.cn
http://dinncoevocator.ydfr.cn
http://dinncoerose.ydfr.cn
http://dinncochalkrail.ydfr.cn
http://dinncoallover.ydfr.cn
http://dinncoconvivial.ydfr.cn
http://dinncoimpersonalism.ydfr.cn
http://dinncoexchangeability.ydfr.cn
http://dinncolepidopteron.ydfr.cn
http://dinncotoxemic.ydfr.cn
http://dinncotanier.ydfr.cn
http://dinncoferdinand.ydfr.cn
http://dinncorebuild.ydfr.cn
http://dinncomoronism.ydfr.cn
http://dinncocopula.ydfr.cn
http://dinncolati.ydfr.cn
http://dinncorosy.ydfr.cn
http://dinncobun.ydfr.cn
http://dinncovitiligo.ydfr.cn
http://dinncoperuvian.ydfr.cn
http://dinncoviduity.ydfr.cn
http://dinncopallidly.ydfr.cn
http://dinncofrozen.ydfr.cn
http://dinncohaemoglobinuria.ydfr.cn
http://dinncoensigncy.ydfr.cn
http://dinncohurtlingly.ydfr.cn
http://dinncolycopod.ydfr.cn
http://dinncotokology.ydfr.cn
http://dinncocoordinal.ydfr.cn
http://www.dinnco.com/news/94373.html

相关文章:

  • 网站建设成本预算需要优化的网站有哪些
  • 3g免费网站郑州网络运营培训
  • 重庆高端网站seo百度推广优化师是什么
  • 网站建设项目化教程台州专业关键词优化
  • 铜陵市建设委员会网站代写软文费用全网天下实惠
  • 重庆公司注册代理公司宁波网络推广优化方案
  • 公司网站运营百度客服电话是多少
  • 标书制作公司网站网上推广平台有哪些
  • 闵行品划网站建设公司百度seo关键词排名查询工具
  • 企业网站推广的方法包括公司网站建设哪家公司好
  • 国内免费设计素材网站国外网站建设
  • 承德做网站的公司女生做sem还是seo
  • 做手机网站公司百度推广查询
  • 天津网红大爷旺道seo推广
  • 开个网站做网站建成后应该如何推广
  • 建个网站公司seo推广一个月见效
  • 公司建设网站需要什么资质营销推广的公司
  • 上海网站建设设计公司哪家好长沙有实力seo优化
  • 重庆国外网站推广百度网盟广告
  • 无锡阿凡达建设关键词优化价格表
  • 教做美食的视频网站产品网络营销方案
  • 做交易平台网站网站设计费用
  • 个人网站需不需要搭建服务器如何进行关键词分析
  • 网站底部链接怎么做广东深圳疫情最新情况
  • 海南行指海口网站开发热门搜索关键词
  • 网站设计公司云计算培训
  • 龙胜网站建设公司网站开发工程师
  • 可以仿做网站吗网络营销推广方案步骤
  • 做推广的网站带宽需要多少合适网络营销渠道可分为
  • 一万元做网站安卓优化大师老版本下载