1、武汉工程大学计算机科学与工程学院毕业实习报告专 业计算机科学与技术班 级2012信息技术02学 号1205110207学 生 姓 名方成钢指 导 教 师邬少飞(副教授)陈艳(讲师)实 习 时 间20152016学年第2学期2016.2.29至2016.3.18实 习 成 绩武汉工程大学计算机科学与工程学院 制说明:1、 实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实习答辩、实习成绩评定、给出实习评语等工作。2、 实习报告由武汉工程大学计算机科学与工程学院提供基本格式(适用于学院各专业),各专业教研室和指导教师可根据本专业特点及实习内容做适当的调整,学生须按指导教师下达的实习报告
2、格式认真进行填写。3、 实习成绩由指导教师根据学生的实习情况给出各项分值及总评成绩。4、 指导教师评语一栏由实习指导教师(校内教师)就学生在整个实习期间的表现给出客观、全面的评价,包括实习期间的表现、实习报告的质量、实习答辩的情况等。5、 学生必须参加实习答辩,凡不参加实习答辩者,实习成绩一律按不及格处理。实习答辩小组应由2人及以上教师组成,其中校内指导教师必须参加,否则视作无效答辩。6、 实习报告正文字数应不少于5000字,实习日记字数不少于500字/天。7、 实习报告正文中实习目的与任务、实习地点、实习内容和要求等项,可由指导教师统一给出(自主实习除外)。学生自主实习的,可根据实习的情况自
3、行填写以上内容。8、 自主实习的学生还应提供由实习单位出具的实习鉴定表(复印件),与实习报告一起装订,作为参加实习答辩和评定成绩的依据。毕业实习答辩记录表学生姓名: 方成钢 学号: 1205110207 班级: 2012信息技术02 答辩地点: 千峰科技武汉公司 答辩内容记录(至少3个问题。有问有答。问题简洁。答案准确): 记录人签字: 答辩成绩总分值各项分值评分标准实际得分总得分备注3015在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。答辩小组成员(签字): 年 月 日毕业实习成绩评定表学生姓名: 方成钢
4、 学号: 1205110207 班级: 2012信息技术02 类别总分值各项分值评分标准实际得分合计得分备注实习表现2010遵守学校和实习单位的考勤、安全生产等纪律,积极参加实习活动,无旷课、迟到、早退等情况。10积极完成各项任务,表现良好,服从并配合指导教师和实习单位的工作安排。项目实践及实习报告5010实习报告格式规范,文字通顺。按照实习大纲要求认真完成规定项目内容,能运用所学专业知识对问题加以分析,并对全过程的实习内容进行系统的总结。20每天记载实习笔记,内容翔实不空泛,无相互抄袭现象。论述充分完整,结构严谨合理。体现了实习过程中的学习情况和项目实践情况,及所思、所获、所感。20按照要求
5、完成实习项目,方案合理,设计工作量饱满,能运用专业知识和技能去发现与解决实际问题。在项目实践过程中展现出了较强的学习能力、动手实践能力、团队协作能力和创新意识。实习答辩3015在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。总评成绩指导教师评语指导教师: (签字) 日期: 年 月 日武汉工程大学计算机科学与工程学院 毕业实习报告一、实习目的与任务毕业实习是计算机科学与技术专业教学培养方案和教学计划的重要环节,旨在培养学生的实践能力、分析问题和解决问题的能力,通过软件开发的实践训练,进一步掌握设计开发软件的方法
6、与技术,学会数据的组织方法,提高软件开发的实际能力;同时进入企业,熟悉信息企业工作流程和软件开发过程,以增强适应社会的能力和提升就业竞争力。毕业实习是实现课堂教学和社会实践相结合的重要途径,也是学生从学校走向社会的一个不可或缺的过渡阶段。因此,加强毕业实习工作,对于保证和提高教学质量、全面推进素质教育,具有十分重要的意义和作用。实习目标: 1深化已学的理论知识,完成理论到实践的转化,让学生对软件开发领域的最新技术有本质的了解,并能熟练运用;2了解行业发展及社会对计算机专业毕业生的需求,确定自己的就业方向;3提高分析和解决实际问题的能力,让学生有高质量的就业IT行业的机会;4培养“开拓创新”能力
7、;5熟悉面试流程,掌握一定的面试技巧。大力提倡和鼓励在开发过程中使用新方法、新技术,激励学生实践的积极性和创造性,开拓思路,设计新算法、新创意,培养创造性的工程设计能力。二、实习地点千锋互联科技有限公司武汉培训基地三、实习内容和要求本次毕业实习共三周,在千锋武汉培训基地进行。由千锋公司专职教师讲授iOS开发基础、Xcode开发工具及iOS App开发技术,介绍一些小游戏和常见应用的开发过程。要求学生能熟悉iOS App的开发环境,以项目小组为单位实现一个小型iOS App项目,并完成相应的文档。按实习规范每天完成不少于500字的笔记,撰写一份实习报告,参加实习答辩。四、实习总结及分析这次毕业实
8、习,我做的实训项目是iOS开发的打地鼠的小游戏。先用Xcode新建一个工程,Xcode是专门开发iOS系统APP的工具,如图1。 图1 Xcode创建新项目然后将对应图片资源拖入到项目中,如图2。 图2 拖入图片资源设置底版为灰色,要在viewController.m中写:-(void)viewDidLoad super viewDidLoad;self.view setBackgroundColor:UIColor grayColor;再创建背景,背景分为4个部分,每个部分有重叠,上一个图片和下一个图片重叠是为了地鼠钻出地面可以正确地显示。定义两个常量,分别表示背景的长和宽:interfac
9、e viewController:UIViewController #define BG_WIDTH 320 #define BG_HEIGHT 123创建背景第一部分,在viewController.m中写:-(void)createBackground UIImageView *b1=UIImageView allocinitWithImage:UIImage imageNamed:”GameBG01.png”; b1.frame=CGRectMake(0,0, BG_WIDTH,b1.image.size.height); self.view addSubview:b1;-(void)v
10、iewDidLoad super viewDidLoad; self createBackground;背景图的第一部分完成后,运行后如图3。 图3 背景第一部分加入另外三部分,在下面加上:UIImageView *b2=UIImageView allocinitWithImage:UIImage imageNamed:”GameBG02.png”; b2.frame=CGRectMake(0,b1.frame.origin.y+b1.frame.size.height-35, BG_WIDTH, BG_HEIGHT); self.view addSubview:b2;UIImageView
11、*b3=UIImageView allocinitWithImage:UIImage imageNamed:”GameBG03.png”; b3.frame=CGRectMake(0,b2.frame.origin.y+b1.frame.size.height-35, BG_WIDTH, BG_HEIGHT); self.view addSubview:b3;UIImageView *b4=UIImageView allocinitWithImage:UIImage imageNamed:”GameBG04.png”; b2.frame=CGRectMake(0,b3.frame.origin
12、.y+b1.frame.size.height-35, BG_WIDTH, BG_HEIGHT); self.view addSubview:b4;背景四个部分完成后如图4所示。 图4 背景四个部分再加入地鼠,需要在下背景图之下,上背景图之上,地鼠在两层之间,设置一个地鼠为一个按钮,可以接受动作。将4个背景图变为成员变量,在刚才定义BG_HEIGHT的后面定义:UIImageView *b1;UIImageView *b2;UIImageView *b3;UIImageView *b4;加入左下角的地鼠:-(void)createAMouse UIButton *mouse=UIButton
13、buttonWithType:UIButtonTypeCustom; mouse setImage:UIImage imageNamed:”Mole01.png”forState:UIControlState:UIControlStateNormal; mouse.frame=CGRectMake(30,b4.frame.origin.y-20,mouse.imageView.image. size.width, mouse.imageView.image.size.height);/加入到第三层之上,第四层之下 self.view insertSubview:mouse aboveSubvi
14、ew:b3;然后给地鼠添加动画,使用NSTimer,可以使地鼠在特定范围内上下移动,在背景4部分后面加:NSTimer scheduledTimerWithTimeInterval:0.02target:self selector:selector(moveA:)userInfo:mouse repeats:YES;/将mouse作为参数传给NSTimer,之后可以从userInfo拿到mouse的对象实现动画moveA:-(void)moveA:(NSTimer*)senderUIButton *mouse=sender.userInfo;/取得mouseStatic int stepY=-
15、1; /设置初始步长,向上一个位置if(mouse,frame.origin.yb4,frame.origin.y-mouse.frame.size.height/2)/以背景4的上边缘向下一个老鼠的高作为改变动画方向的标志stepY=-1;CGPoint new=CGPointMake(mouse.frame.origin.x, mouse.frame.origin.y+stepY);Mouse.frame=CGRectMake(new.x,new.y,mouse.frame.size.width,mouse.frame.size.height);现在运行一下,地鼠可以动起来了,为地鼠添加事
16、件行为:当地鼠被点击,地鼠应该消失,在添加动画的后面加:mouse addTarget:self action:selector(hitTarget:)forControlEvents:UIControlEventTouchUpInside;然后实现hitTarget方法-(void)hitTarget:(id)sender UIButton *myMouse=(UIButton*)sender;myMouse removeFrameSuperview;地鼠还要包括事件:当地鼠被点击时,动画应该停止。应将计时器停止,在viewControll.h中声明:interface viewContro
17、ller:UIViewController NSTimer *animationTimer;在viewController.m中找到定时器:animationTimer=NSTimer scheduledTimerWithTimeInterval:0.02target:self selector:selector(moveA:)userInfo:mouse repeats:YES;停止计时器,在hitTarget方法中sender后面添加:animationTimer invalidate;全部完成后,运行游戏,如图5。 图5 完整打地鼠游戏五、实习体会三周的毕业实习很快就结束了,在刚开始对i
18、OS开发还有些陌生,但随着项目的进展,我慢慢的找到了自己的位置,找到自己的目标,虽然自己与好的同学还有差距,这也给了我很大压力,但是我相信没有压力就没有动力,所以整个实训过程中我都在不断地努力。实训期间让我学到很多东西,不仅在理论上让我对iOS系统有了全新的认识,在实践能力上也得到了很大的提高,真正的学到了学以致用,更学到很多做人的道理,对我来说受益匪浅,激励我在以后的学习、工作、生活中要不断了解信息技术发展动态以及信息发展中出现的新的技术。除此之外,我还学到了如何与人相处,如何和人更好地交流,大家的交流沟通显得尤为重要,如何将自己的想法清楚明白的告诉朋友,如何提出自己想法,这些在我的实训生活
19、中都有一些体会。可是说,第一次亲身体会理论与实际相结合,让我大开眼界。也是对以前学习的一个初审吧,相信这次实训多我以后的学习、工作也将会有很很大的影响,在短短的三周里这些宝贵的经验将会成为我以后工作的基石。这次实训是对我们四年学习的一个检验,虽然项目中很多知识我们在日常的学习中都没有遇到,这同时提醒我:要想成为一个合格的程序员就有具备一种自学能力,在工作中会遇到很多从未接触过的问题,当有了问题时要去解决,在你不断努力,寻找答案的过程中,自己的能力也在潜移默化的提升。有时遇到问题时可能有很多想法但却不知道那个正确,这就让我们不断地去探索,不断地尝试。这次实训也让我深刻的了解到,不管在工作中还是在
20、生活中要和老师、同学保持良好的关系是很重要的。做事首先要先做人,要明白做人的道理,如何与人相处是现代社会的做认得一个最基本的问题,对已自己这样一个即将步入社会的人来说,需要学习的东西很多。从一起做项目的同学身上我看到了谦虚谨慎、细心努力的态度,在以后我的生活中我还会留意身边同学的优点,从他们身上找寻我所缺少的品质,不断学习。从老师那里我看到了企业人的生活面貌,没有事情可以不劳而获,今天老师们能够领导我们是他们之前努力的结果,虽然老师没有和我们讲很多公司里的事情,可是他们的言行中所表现出来的都是比我们要严谨的多的对工作的态度。千锋实训已经成为过去,可是在千锋学到的东西会一直影响我以后的发展。在不
21、久的将来,就要踏上人生的另一段旅程,以后的路上有时不免会感到有些茫然、无助,但生活的路谁都无法预测,只能一步步摸索,但只要方向正确,只要我们向着目标不断努力,相信在不远的将来我们一定会有一片属于我们自己的天空。- v -武汉工程大学计算机科学与工程学院 毕业实习笔记实习笔记时间:2016年2月29日地点:千锋武汉培训基地主要内容:今天是我们去千锋实习第一天,学习的是iOS系统。老师让我们熟悉iOS系统的界面,打开Xcode3。先创建iOS开发的屏幕界面,然后在右下角搜索并添加UITextField,UIButton和UILabel控件。UITextField控件用于循环输入文字,UIButto
22、n控件实例提供了屏幕按钮,UILabel控件实例呈现段的只读文本视图,通过这三个控件我们就可以制作一个简单的计算器,三个UITextField文本框分别表示第一丶二个计算数和结果,两个UILabel显示计算符和等号,一个UIButton按钮用来点击后计算结果。第一天的课程让我们初步认识iOS系统,算是入门学习,增加了我们见识,为我们以后的学习打下了基础。时间:2016年3月1日地点:千锋武汉培训基地主要内容:第二天的课程,老师让我们下载了Tom猫的一些图片和动画资源,教我们UIImageViews控件,该控件可以实例呈现段的只读文本视图,先添加背景图片Image,然后加上几个显形的有背景图片的
23、按钮和几个隐形的按钮,然后将这些控件与ViewController.m文件连线,生成一个方法,给该方法取一个名称,再在该方法中写出一系列程序,实现所连按钮的功能。全部完成后,我们实现了按这些按钮就可以让Tom猫做出相应的动作,这些动画是由几十张图片按一个很短的间隔播放组成的,还是很有趣的。今天的学习也让我们收获不少,学到一些iOS系统的APP开发的技巧。时间:2016年3月2日地点:千锋武汉培训基地主要内容:今天我们开始熟悉了iOS系统,老师让我们下载一些图片,为制作相册做准备。先制作了一个小的Image视图,左右两个按钮分别用于向上和向下翻页,并且翻页还有可供选择的动画效果,再在视图上面添加
24、一个文本框,根据翻页显示当前图片页码,还可以点击视图将图片最大化占满整个屏幕,再次点击即可还原,最后再在下面添加一个按钮,点击即可将所有图片翻页以幻灯片的方式播放。这些程序的逻辑比之前的复杂多了,但经过老师的详细讲解和指导,我们终于实现了相册的这些功能,又学到不少iOS系统的知识。时间:2016年3月3日地点:千锋武汉培训基地主要内容:今天老师虽然感冒了,还是给我们上课,不过因为有会议,上课只上到四点。老师告诉我们,在iOS系统中,有时候不方便添加控件,但可以在程序中通过写程序来直接创造视图。我们学习在程序中创建文本框,并输入文字,还改变背景和字体颜色以及大小。我们还实现了绘出三个文本框,并添
25、加文字,作为一幅对联。最后再在程序中添加按钮,并实现该按钮的功能:点击后可以清除文本框中的文字。时间:2016年3月4日地点:千锋武汉培训基地主要内容:今天老师讲解的是,iOS系统结构分为以下四个层次:核心操作系统、核心服务层、媒体层、触摸框架层。还讲解了iOS开发环境的搭建方法,第一步下载并且安装iOS SDK及开发工具Xcode。第二部打开Xcode开发工具,选择FILE、NewProject,选择Window-Based模板,选择Choose。第三步,选择File、NewFile,选择Cocoa Touch Class下面的Objective-c class,并在下拉框选择UIView,
26、单击Next。最后,先在Name框中输入“test.m”,选择Also create“test.h”。时间:2016年3月7日地点:千锋武汉培训基地主要内容:今天实习内容讲的是UI常用控件。根据老师给的链接,我们共享了课程所需要的资料。今天我们写的程序是实现图片的切换和点击的计数功能。我们首先设置两个Button,设置Button的大小、标题、颜色、居中方式,然后分别在两个按钮下添加背景图片,当我们点击背景图片上的Button,图片就会来回切换,而且我们在程序里增加了定时器,使得程序还有点击次数的累计功能。最后,我们对背景图片进行了完善,因为大家可以看到,现在手机里的APP图标的边缘都比较柔滑
27、,这样看起来比僵硬的边框线条更让人觉得舒服和亲切。所以,我们通过改变弧度和角度等,使得图片的边缘变得柔滑,增加美感。今天我们的第二个程序是关于实现通过点击Button来实现移动的图片的功能。我们先添加了背景图片,设置成合适的大小,然后添加上下左右四个Button,每个Button与对应的Button图片对应,程序成功后的演示结果是,点击相应的Button,图片就会往对应的方向移动。时间:2016年3月8日地点:千锋武汉培训基地主要内容: 今天老师讲解的是UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。UIView可以产生动画效果的变化包括:
28、位置变化,在屏幕上移动视图;大小变化,改变视图框架和边界;拉伸变化,改变视图内容的延展区域;改变透明度,改变视图的alpha值;改变状态,隐藏或显示状态;改变视图层次顺序,视图哪个前哪个后;旋转,即任何应用到视图上的仿射变换。创建UIView动画块。基本方式:使用UIView类的UIViewAnimation扩展UIView动画是成块运行的。发出beginAnimations:context;请求标志着动画块的开始;commitAnimations标志着动画块的结束。把这两个类方法发送给UIView而不是发送给单独的视图。在这两个调用之间可定义动画的展现方式并更新视图。时间:2016年3月9日
29、地点:千锋武汉培训基地主要内容:今天我们学习接收json数据。开发过程中,我们通过http请求,后台返回json数据,而有时数据里某一字段的值为null,然后我们把此值赋值给NSArray,NSdictionary,或是NSString,然后我们会判断此值为null时,所做的处理,而通常惯性思维判断时我们都会写:if(dict = nil)或是if(dict = Nil)或是if(dict = NULL)再或是if(dict isEqual nil),我们发现,都不好用,根本没有起到判断的作用后来我才发现,原来不能这样来判断。简单点说,就是当字典,然后,我们需要在代码判断时利用NSNull n
30、ull来判断,具体如:isEqual:NSNull null 就搞定了,nsarray也是同样的道理。控制台打印:str=(null) 代表着 字符串或数组或字典是一个空指针,(而非空字符串)判断的时候,直接用:if(str = nil)就可以了。时间:2016年3月10日地点:千锋武汉培训基地主要内容:今天老师讲解的打地鼠这个游戏。首先我们创建一张背景图,而对于地鼠的添加,我们需要放在下背景图之下,上背景图之上,地鼠在两层之间,设置一个地鼠为一个按钮,可以接受动作。然后给地鼠添加动画,使用NSTimer,可以使地鼠在特定范围内上下移动。现在运行一下,地鼠可以动起来了,为地鼠添加事件行为:当地
31、鼠被点击,地鼠应该消失,在添加动画的后面加,地鼠还要包括事件:当地鼠被点击时,动画应该停止。应将计时器停止,在viewControll.h中声明。在完成这些操作之后,打地鼠这个游戏就完成了基本的开发,有了一定的功能。时间:2016年3月11日地点:计算机大楼6号机房主要内容: 今天我们学习多视图切换,如果是从A视图跳转到B视图,B表示将要跳转到视图,多视图跳转可以理解为两部分:从A跳到B,B返回A。注意,是返回,不是重新发起跳转,这里是第二个阶段:从B返回A。self.presentingViewController在跳转发生后有效,表示B视图的上一个视图,在这里为A视图self.presen
32、tedViewController在跳转发生后有效,表示B视图的下一个视图,在这里为nil,以为并没有发生跳转self.presentViewController表示B的父视图,也为nil。跳转完成后调用completion,此时当前视图以被销毁。 self.presentingViewController和self.presentedViewController都为nil。此时当前视图还没被销毁,self.presentingViewController表示上一个视图。时间:2016年3月14日地点:千锋武汉培训基地主要内容:今天我们学习如何限制UITextField输入长度(监听textF
33、ield文本变化的事件)实现UITextFieldDelegate协议。实现 textField:shouldChangeCharactersInRange:replacementString:方法;如果我们简单的这样写:if(range.location=11) 这样虽然也能限制位数为11位,但是如果通过放大镜把光标切换到之前的位数后,你照样可以输入,并且还会导致输入11位后,键盘上的退格(X键)无法使用,原因是:我们在location到达11位后,返回了NO,键盘无法相应:添加,修改,删除。这是很严重的。所以照着我上面的。方法解读,把textField中位置为range的字符串替换为str
34、ing字符串;此函数在textField内容被修改时调用;返回值:YES,表示修改生效;NO,表示不做修改,textField的内容不变。参数说明:textField:响应UITextFieldDelegate协议的UITextField控件。range:UITextField控件中光标选中的字符串,即被替换的range.length为0时,表示在位置range.location插入string。string替换字符串,string.length为0时,表示删除。时间:2016年3月15日地点:千锋武汉培训基地主要内容:今天我们学习项目设置应用程序显示名称。在项目的Supporting Fil
35、es下寻找infoPlist.strings文件,打开后会看到一片空白(英文默认是跟随项目名称显示)。此时,可以就地添加一句代码:CFBundleDisplayName=爱贝通。 这样的话,无论手机设置英文语言还是中文语言,应用程序都会显示设置的名称。 为了国际化而言,我们最好创建一个chinese专有的infoPlist.strings文件。添加一个中文的plist,这个时候,大功告成。部署在模拟器或真机中吧,你的手机设置(中/英)文语言,它就会调用相应的配置文件。时间:2016年3月16日地点:千锋武汉培训基地主要内容:老师教我们我们学习self.navigationItem.backBa
36、rButtonItem 的title设置。新写的App中需要使用UINavigationController对各个页面进行导航,但由于第一级页面的title较长,在进入第二级页面后返回按钮leftButtonItem的title就会变得很长,对NavigationBar空间占用很大,而且不美观,于是使用代码对leftButtonItem的title文本进行修改,无论是设self.navigationItem.leftBarButtonItem.title,还是self.navigationItem.backBarButtonItem.title = 返回;都没有效果,title文本始终不会发生
37、变化。到网上乱搜一通后,得到了以下解决方法,相对来说比较简单。所以,通过这个我们可以明白,self.navigationItem.backBarButtonItem是在一级页面设置的,而self.navigationItem.leftBarButtonItem/rightBarButton是在二级页面设置的,(随意设置本页面的左右按钮,左按钮将替代系统的返回按钮)。一般一个程序中有一个UIWindow,一个UINavigationController,一个根UIViewController,多个子UIViewController。UIWindow是整个可视界面的容器,里面放置我们看到的UIVi
38、ew。UIView负责处理屏幕上一个矩形区域的绘制,UIView中还可包含子UIView。UIWindow是UIView类的扩展,可以看作是整个屏幕的根UIView。时间:2016年3月17日地点:千锋武汉培训基地主要内容:今天学习iOS应用程序生命周期。开发应用程序都要了解其生命周期,开始接触android时也是从应用程序生命周期开始的,android的应用程序生命周期更多是其组件的生命周期,例如Activity、Service。今天我们接触一下iOS应用程序的生命周期。iOS的入口在main.m文件,main函数的两个参数,iOS中没有用到,包括这两个参数是为了与标准ANSIC保持一致。U
39、IApplicationMain函数,前两个和main函数一样,后两个参数分别表示程序的主要类(principalclass)和代理类(delegateclass)。如果主要类(principalclass)为nil,将从Info.plist中获取,如果Info.plist中不存在对应的key,则默认为UIApplication;如果代理类(delegateclass)将在新建工程时创建。根据UIApplicationMain函数,程序将进入AppDelegate.m,这个文件是xcode新建工程时自动生成的。下面看一下AppDelegate.m文件,这个关乎着应用程序的生命周期。时间:201
40、6年3月18日地点:千锋武汉培训基地主要内容:今天我们学习assign与retain。接触过C,那么假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在使用这块内存,如果a释放了,那么b在使用这块内存的时候会引起程序crash掉。了解到1中assign的问题,那么如何解决?最简单的一个方法就是使用引用计数(reference counting),还是上面的那个例子,我们给那块内存设一个引用计数,当内存被分配并且赋值给a时,引用计数是1。当把a赋值给b时引用计数增加到2。这时如果a不再使用这块内存,它只需要把引用计数减1,表明自己不再拥有这块内存。b不再使用这块内存时也把引用计数减1。当引用计数变为0的时候,代表该内存不再被任何指针所引用,系统可以把它直接释放掉。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100