求职不怕考
pcw-chendx@vip.sina.com
与编程相关的招聘,都会准备很多考题,一不小心考生就在考题上栽了跟头,特别是没有多少工作经验的应届毕业生,往往回答得过于理论化,很难令考官满意。为此,我们特意推出本系列,通过对真实考题的分析让大家在回答考题时有更多的实用性,让考官满意,顺利找到工作。
内存管理 要精打细算
爪哇米工作室 陈跃峰
内存管理,是软件开发的一个重点,在功能不变的情况下,如何更有效的利用内存,减少资源的占用是衡量软件性能的重要指标之一。所以,很多公司在招聘时会侧重内存管理的考查。
招聘题目:下面的代码(Java)是否正确地释放了内存空间?为什么?
Image
img[] = new Image[10];
for(int
i = 0;i < 10;i++){
img[i]
= Image.createImage(“/img/” + i + “.png”);
}
img
= null; //释放内存
题目答案:该代码未释放全部内存,正确的释放全部内存的代码应该是:
Image img[] =
new Image[10];
for(int
i = 0;i < 10;i++){
img[i]
= Image.createImage(“/img/” + i + “.png”);
}
//依次释放图片占用的内存
for(int
i = 0;i < 10;i++){
img[i]
= null;
}
img
= null; //释放图片数组的内存
代码中,img=null仅仅释放了图片数组对象占用的内存,而每一个图片对象占用的内存没有被释放,所以如果需要释放全部内存,则要先释放每个图片对象占用的内存,再释放图片数组占用的内存,则这样能达到正确释放内存的目的。
不可忽视内存占用
考官出这样的题目,目的是测试程序员是否有工作经验,是否对于内存管理有足够的认识。在软件开发中,内存管理不当会轻则会导致工作效率低下,重则可能会导致系统崩溃,所以内存管理的设计不能有疏忽。
在手机软件的开发中,因为手机内存不大,对内存管理的要求更加严格,有志于从事手机软件的开发的朋友一定要多加注意,多实践,增加程序执行效率的体验,这样才可以在招聘中脱颖而出。
实际应用
在实际的开发过程中,内存是怎么管理的?是如何提高执行速度和效率的?下面我们通过两组代码来进行说明。代码的功能是节约内存,第一组代码的效果不好。
代码1:
public void paint(Graphics g){
……
g.drawString(“loading…”,100,100,Graphics.TOP
| Graphics.LEFT);
……
}
点评:该代码的功能是绘制字符串“loading…”,功能可以实现,但是系统每次绘制都需要生成一个字符串对象,比较浪费内存,而且每次都需要计算锚值,这将降低程序的执行效率。
代码2:
public void run(){
……
while(true){
int n = 10;
……
System.gc();
}
}
点评2:在该代码中,在线程run中的循环内部,每次都生命一个int变量n,这样每次都需要为n分配内存,在循环结束时还每次都调用gc方法,效率低下。
第二组代码可以节约内存。
代码1:
public static final int TOPLEFT =
Graphics.TOP | Graphics.LEFT; //避免重复计算
private String loadStr = “loading…”; //只生成一次字符串对象
public void paint(Graphics g){
……
g.drawString(loadStr,100,100, TOPLEFT);
……
}
点评:通过声明TOPLEFT常数,避免重复计算,节约内存并提高程序的执行速度。通过声明loadStr对象,使字符串对象只在内存中生成一次,节约内存使用。
代码2:
public void run(){
……
int n = 10;
Runtime rt = Runtime.getRuntime();
while(true){
……
if(rt. freeMemory() <
102400){ //可用内存小于100K
System.gc();
}
}
}
点评:通过在循环中声明变量n,节约内存的使用。在实际的开发中,很多人认为内存管理就是使用System.gc进行内存清理,其实良好的内存使用习惯才是最主要的,频繁的调用System.gc()甚至会显著降低程序的执行效率,所以正确的使用方法是当可用内存小于一定数值时,才调用gc方法进行内存的清理。
分享到:
相关推荐
5精打细算——小学生ppt学习课件
《安踏店长管理技能——店铺管理要素》是针对零售行业,特别是安踏品牌专卖店的店长们提供的一份重要参考资料。这份文档旨在提升店长的管理能力,确保店铺运营的高效与规范,从而实现销售目标和提升顾客满意度。下面...
【放飞的龙——海外华侨成功商法】这本书聚焦了海外华侨如何在异国他乡白手起家,实现商业成功的历程。书中的核心概念包括创业精神和不懈的努力,这正是许多华侨能够在陌生环境中立足并取得辉煌成就的关键因素。 ...
- **合规性审查**:确保所有经营活动都符合当地法律法规的要求,避免因违规操作带来不必要的法律纠纷。 综上所述,“药杯甘露——个性调配茶”项目通过将中药与奶茶巧妙结合,不仅为消费者提供了全新的饮品体验,...
食谱编制——营养成分计算法PPT课件PPT学习教案 标题:食谱编制——营养成分计算法PPT课件PPT学习教案 描述:食谱编制——营养...2. 整个食谱设计要贯穿精打细算、厉行节约、防止浪费的精神,以达到保质保量的效果
1精打细算.ppt
**总则**:经费预算要坚持“量入为出、精打细算、统筹安排、收支平衡”的原则。预算指标分为综合指标和部门及系部指标,实行分块核算。 1. **综合指标**:主要包括公用经费、专项经费和基建经费,这些属于维持学院...
标题中的“勾正数据-喻亮星CAAC演讲:品牌复苏的三要素——更快、更准、更经济-2020.3-20页.rar”表明这是一份关于品牌复苏策略的演讲资料,由勾正数据的喻亮星在CAAC(中国广告协会)的活动中发表。这份资料可能...
《第一节 精打细算》是一篇关于小学数学教学的内容,主要讲解了小数除以整数的计算方法,特别强调了商的小数点与被除数小数点对齐的重要性。这篇教学材料旨在帮助学生理解和掌握小数除法的意义,以及小数除以整数...
在早期计算机时代,640K内存限制着开发者编写程序的大小,因此他们对内存的分配极为谨慎,对每一个字节都精打细算。随着虚拟内存技术的发展,程序员不再受限于物理内存大小,但对于系统软件、嵌入式系统或者数据量极...
4. 小数除以整数的规则:小数除法遵循整数除法的法则,商的小数点要与被除数的小数点对齐。例如,11.5÷5=2.3,12.6÷6=2.1,确保了计算的准确性。 5. 商中间的"0":当被除数的整数部分小于除数时,商的整数部分要...
【麦当劳精打细算策略】 麦当劳作为全球知名的快餐连锁品牌,其成功的背后离不开精准的商业策略和精细的运营管理。从标题和描述中,我们可以提炼出以下几个关键知识点: 1. **甜品站的设立**:麦当劳通过市场调研...
精打细算的造句参考.doc
标题“2021-2022收藏资料小数除法的意义(精打细算)”涉及的是小学五年级数学中的一个重要概念——小数除法。这篇文档详细介绍了如何教授和理解小数除法,特别是在实际生活中的应用,以及如何通过不同的计算方法来...
在电子工程领域,内存管理是嵌入式系统和单片机编程中的重要组成部分。当我们谈论“电子-malloc.rar”这个压缩包时,可以推断它包含了一些与STM32系列微控制器(特别是F3、F4、F7和H7型号)相关的内存分配函数实现。...
实验一(话费,精打细算)
针对这一主题,我们从“2018年中国高端美妆用户中精打细算线上族选择购买高端美妆产品渠道考量因素分布情况.rar”这个压缩包中的核心文件——"2018年中国高端美妆用户中精打细算线上族选择购买高端美妆产品渠道考量...
“望着母亲沧桑的脸,我暗暗发誓:假设我长大有为的话,我就一定要让母亲每一天都过着幸福自由的日子。”这里运用了假设关系的关联词,表达了作者对母亲的深情与责任感。 5. **情感表达与主题的贯穿**:无论是描述...
《精打细算》教学设计主要探讨的是小数除以整数的数学概念及其在实际生活中的应用。教学目标旨在让学生理解小数除法与实际生活的紧密联系,掌握小数除以整数的计算方法,并能运用这些知识解决实际问题。教学的重点...