从内存层次浅谈动态与静态

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827364.html

静态内容:在内存中有一片特定的区域,不属于某特定的类对象,而是属于所有类对象,每个对象默认有指针指向这片区域,以调用静态的属性、方法

当创建第一个类对象时,类代码由硬盘加载到内存时,静态内容加载一次,开辟区域存放,之后每次创建对象时不再加载。每个对象默认有指针指向这片区域,以调用静态的属性、方法。

所以,静态方法的调用格式为:  类名.静态方法名 、  对象名.方法名  均可

动态内容:每个类对象创建时,在内存中开辟一片区域给这个对象,用来存放数据以及进行运行,其中的所有都是专属该对象的,所以动态的内容调用只能通过  对象名.动态方法名、 对象名.动态属性   来调用。

静态区域的内容无自动回收机制,占内存。

一般把公用的属性、方法、工具包设置为静态的。

分配内存语句——new

没一个new语句,执行一次内存分配。在内存中开辟一片地,并按照new 的内容来使用这片区域。

所以,在类中,动态方法调用动态方法,可以直接通过方法名调用,而不需new一个对象.方法名调用。就是因为同一个类占有一片空间,它的所有动态方法都在其中了,可以直接调用。 如果在动态方法中new一个类对象来调用动态方法的话,实质是调用那个新对象的方法了,而不是该方法所在的类对象的内存空间中封存的方法。

补充一点干货:

A a=new A()  与  A a=null 的区别:

前者a存放的地址指向一片区域,那片区域按照A类来具体使用,存储属性数据、方法运行空间等。

后者a存放的地址指向一片区域,但那片区域没有具体的使用规则,相当于天地初开,一片混沌。

时间: 2024-12-31 06:46:28

从内存层次浅谈动态与静态的相关文章

浅谈php生成静态页面

一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权限限制等,但是,对应一些我们经常频频使用的文件,比方说,开发的新闻发布系统,我们不希望很多用户都读取数据库才显示结果,这样一方面消耗了服务器的资源,另一方面占去了浏览者大量可贵的响应时间,所有,有了"静态页面话"的做法,当前很多网站都采用这种技术,一般都是由管理后台控制,或者生成html直

浅谈 举家搬迁静态文件到CDN

由于七牛CDN最近做活动,对于标准用户可以免费使用如下优惠 10 GB 存储空间 10 G/月 下载流量 10 万次/月 PUT/DELETE 请求 100 万次/月 GET 请求 以上这些指标直接就说明了,对于很多小型网站基本就够了.所以我就把我的网站的一些静态文件和图片都转移到CDN中去 前面我写过一篇文章 :[逗比作孽呀]网站缓存优化   就是为了加快图片的访问速度,这次把图片都放到CDN去,这样就会更快了 但是对于我来讲,我还要考虑一个问题,那就是如果七牛CDN出问题了,我如何快速的切换

关于分布式程序 java的内存管理浅谈

关于分布式程序 java的内存管理浅谈 标签(空格分隔): 分布式 内存管理 java Preface 当前全球正处于互联网时代,是个信息大爆炸时代.对于商家来说,每一天信息都是宝贵的,都可以转换成money的.所以对数据的处理要求也变的越来越严格,从以前的hadoop/MapReduce 的离线处理,到现在的准实时和实时处理,都是由数据需求而引起的技术革命.数据的处理快慢取决于很多因素.现在主流的解决方法,像Spark,Flink,Pular,包括腾讯,阿里,百度的诸多为开源的框架都是基于分布

浅谈动态分派和静态分派

前言 动态分派和静态分派机制是Java多态实现的原理.本文将针对这两种机制进行浅析. 静态分派 静态分派机制最典型的代码示例如下 void test() { Father father = new Son(); //静态分派 print(father); } void print(Father father) { System.out.println("this is father"); } void print(Son son) { System.out.println("

浅谈动态数组原理及其实现

stl中的vector是竞赛中常用的容器,原因在于省内存,O(1)在后端插入和删除.随机下标访问,今天就来谈谈它的实现. 最简单的一个动态数组 动态数组并不是真正意义上的动态的内存,而是一块连续的内存,当添加新的元素时,容量已经等于当前的大小的时候(存不下了),执行下面3步 重新开辟一块大小为当前容量两倍的数组 把原数据拷贝过去 释放掉旧的数组 完事后再把这个元素加在后面. 那么你一定会很好奇,它为什么会是O(1).这个是均摊下来的结果,我们只需要证明总共拷贝的元素个数是O(n)级别的就好了(因

浅谈动态人脸识别技术原理

人脸辨认,是依据人的脸部特征信息进行身份辨认的一种生物辨认技能.用摄像机或摄像头收集含有人脸的图画或视频流,并主动在图画中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技能,一般也叫做人像辨认.面部辨认. 人脸辨认体系的研讨始于20世纪60年代,80年代后跟着计算机技能和光学成像技能的开展得到提高,而真实进入初级的运用阶段则在90年后期,并且以美国.德国和日本的技能完成为主:人脸辨认体系成功的关键在于是否具有顶级的中心算法,并使辨认成果具有实用化的辨认率和辨认速度:"人脸辨认体系&quo

iOS之内存管理浅谈

1.何为ARC ARC是automatic reference counting自动引用计数,在程序编译时自动加入retain/release.在对象被创建时retain count+1,在对象被release时count-1,当count=0时,销毁对象.程序中加入autoreleasepool对象会由系统自动加 上autorelease方法,如果该对象引用计数为0,则销毁.那么ARC是为了解决MRC手动管理内存存在的一些而诞生的. MRC下内存管理的缺点: 释放一个堆内存时,首先要确定指向这

浅谈PHP的静态变量

静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中.一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会.就是说,下次再调用这个函数的时候,该变量的值会保留下来. 只要在变量前加上关键字static,该变量就成为静态变量了.伯爵娱乐城 view source print? 01 <?php 02     function test() 03     { 04         static $nm = 1; 05         $nm = $nm * 2; 06    

浅谈——页面静态化

现在互联网发展越来越迅速,对网站的性能要求越来越高,也就是如何应对高并发量.像12306需要应付上亿人同时来抢票,淘宝双十一--所以,如何提高网站的性能,是做网站都需要考虑的. 首先网站性能优化的方面有很多:1,使用缓存,最传统的一级二级缓存:2,将服务和数据库分开,使用不同的服务器,分工更加明确,效率更加高:3,分布式,提供多台服务器,利用反向代理服务器nginx进行反向代理,将请求分散开来:4,数据库的读写分离,不同的数据库,将读操作和写操作分开,并实时同步即可:5,分布式缓存,使用memc