今天晚上,电面了腾讯的测试开发。很遗憾,面试的并不理想。
将经过和面试后的总结放在这里,不是说为了给后人以经验,而是为了时刻提醒自己,不能松懈。
C:register变量的作用是什么?
被标识为register变量存储在cpu寄存器中,cpu访问寄存器内存极快,一般可用于大循环体内以提高循环效率。
- 只有局部自动变量和形式参数可以作为寄存器变量
- 一个计算机系统的寄存器数目有限,不能定义任意多个寄存器变量
- 局部静态变量不能定义为寄存器变量
C里面一个程序crash的原因有哪些?
数组越界、野指针
野指针:当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此情况下该指针便称为野指针。
Android四大组件有哪些?
Activicty,BroadcastReceiver(广播接收者),service,content provider(内容提供者)
- Activicty之间通过intent来进行通信
- Broadreceiver:可以使用它对外部事件进行过滤,只对感兴趣的外部事件进行接收并响应(普通广播,有序广播,异步广播)
- Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序
- android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式, 其他应用可以通过ContentResolver类(见ContentProviderAccessApp例子)从该内容提供者中获取或存入数据.(相当于在应用外包了一层壳),只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处:统一数据访问方式。
【来源:http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html】
Android的进程之间进行通信的方式有那些?
Activity、ContentProvider、Broadcast和AIDL Service。
- Activity可以跨进程调用其他应用程序的Activity;
- ContentProvider可以访问其他应用程序返回的 Cursor对象;
- Broadcast采用的是被动接收的方法,也就是说,客户端只能接收广播数据,而不能向发送广播的程序发送信息。
- AIDL Service可以将程序中的某个接口公开,这样在其他的应用程序中就可以象访问本地对象一样访问AIDL服务对象了。
这4种跨进程通讯的方式可以应用在不同的场合。例如,在需要显示可视化的界面时可以用Activity,需要返回记录集时可以用ContentProvider。至于在应用程序中具体要用 到哪一种或几种方式进行跨进程通讯,读者可以根据实际情况进行选择。
Java中class类有三类,private,public,protected,它们的引用方式有什么不同?
Java中内存泄漏(memory leak)的原因有哪些?
我的回答:深度递归,开辟的内存超过jvm所设置的限制
马后炮:
当某些对象不再被应用程序所使用,但是由于仍然被引用而导致垃圾收集器不能释放(Remove,移除)他们.
用白话来说就是: 该回收的内存没被回收,最后因为内存不够用而导致程序报错
具体情况有:
1. 当心集合类,比如 HashMap,ArrayList等,因为这是最容易发生内存泄露的地方.当集合对象被声明为static时,他们的生命周期一般和整个应用程序一样长。
2. 注意事件监听和回调.当注册的监听器不再使用以后,如果没有被注销,那么很可能会发生内存泄露.
3. "当一个类自己管理其内存空间时,程序员应该注意内存泄露." 常常是一个对象的成员变量需要被置为null 时仍然指向其他对象,
内存泄漏和内存溢出的区别:
内存泄露是指分配出去的内存没有被回收回来,由于失去了对该内存区域的控制,因而造成了资源的浪费。
内存溢出是指程序所需要的内存超出了系统所能分配的内存(包括动态扩展)的上限。
Java中内存溢出(out of memory error)的原因有哪些?
一般原因在于jvm内存过小、程序不严密,产生了过多垃圾
导致OutOfMemoryError异常的常见原因有以下几种:
- 内存中加载的数据量过于庞大,如一次从数据库取出过多数据;
- 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;
- 代码中存在死循环或循环产生过多重复的对象实体;
- 使用的第三方软件中的BUG;
- 启动参数内存值设定的过小;
此错误常见的错误提示:
- tomcat:java.lang.OutOfMemoryError: PermGen space
- tomcat:java.lang.OutOfMemoryError: Java heap space
- weblogic:Root cause of ServletException java.lang.OutOfMemoryError
- resin:java.lang.OutOfMemoryError
- java:java.lang.OutOfMemoryError
解决方案:
- 增加jvm的内存大小:
- 执行某个class文件的时候,可以使用java-Xmx256m.aa.class来设置运行aa.class时所允许占用的最大内存为256m
- 对于tomcat容器,可以在启动的时候对jvm设置内存限度
- 对于resin容器,可以在启动的时候对jvm设置内存限度
2. 优化程序,释放垃圾:
主要包括避免死循环,即使释放各种资源:内存,数据的各种连接,防止一次载入太多的数据,导致内存溢出的根本原因是程序不健壮。
3. Java代码问题导致的out of memory error 的解决:
重点排查:
- 检查代码中是否有死循环或递归调用
- 检查是否有大循环重复产生的对象实体
- 检查对数据库的查询中,是否有一次获得全部数据的查询。一般来说,若一次取十万条记录到内存,就可能引起内存溢出(该问题较隐蔽,在上线前,数据库数据较少,不容易出问题,待上线后数据多了,一次查询就有可能引起内存溢出,因此,对于数据库查询尽量使用分页的方式查询)
- 检查List、Map等集合对象中是否使用完后未清除的问题:List、Map等集合对象会始终持有对对象的引用,使得这些对象不能被GC回收。
【总结自:http://outofmemory.cn/c/java-outOfMemoryError】
在你说有坑的时候,是真有坑还是你自己的学习能力出了问题?
不要沉默走进黑夜...
相关推荐
在IT行业中,微信小程序是一种轻量级的应用开发平台,它允许开发者快速构建可以在微信内运行的应用。而腾讯地图API则是腾讯公司提供的一项地理定位服务,它为开发者提供了丰富的地图功能,如定位、路线规划、地图...
"腾讯测试开发工程师笔试题回忆版" Linux 知识 1. Linux 下动态显示当前系统进程用户的使用情况:可以使用 `top` 命令或 `ps` 命令来显示当前系统进程用户的使用情况。 2. free 命令可以查看真实使用的内存:`free...
"腾讯实习生的面试经历" 本文通过一个腾讯实习生的面试经历,分享了他在面试过程中的感受和经验。从准备宣讲会到笔试、面试的整个过程,作者都记录了下来,展示了自己的性格和面试技巧。 首先,作者在宣讲会上了解...
【基于腾讯地图的微信小程序电子围栏.zip】这个压缩包包含了一个使用uni-app框架开发的微信小程序项目,该项目的核心功能是实现基于腾讯地图的电子围栏功能。在电子围栏技术中,它允许用户在地图上划定特定区域,当...
### 腾讯产品文档-测试计划:深度解析与扩展 #### 1. 知识点概述 在软件开发周期中,测试计划是确保产品质量的关键环节。腾讯的产品文档中的“测试计划”部分提供了详细的测试策略,涵盖了从目标设定到资源规划、...
【腾讯09年测试面试题解析】 面试题1:QQ登陆号码边界值测试有哪些 边界值测试是一种重要的软件测试方法,主要针对输入或输出范围的边界条件进行测试。对于QQ登录号码,边界值可能包括最小值(如0,因为QQ号通常从0...
《腾讯PHP开发规范v1.0》是一份由腾讯科技(深圳)有限公司制定的、针对PHP编程语言的开发规范文档,旨在提升代码质量和团队协作效率。这份规范详细规定了从项目结构、命名规则到错误处理等多个方面的编程标准,是...
腾讯游戏开发流程教材
腾讯DNS测试,PING测,定时刷新,更新,网络稳定性测试
腾讯直播小程序开发实践 小程序作为一种新的移动应用形态,近年来发展非常快,腾讯直播作为一个主要的直播平台,也开始逐步推出小程序版本。小程序开发实践是小程序开发者需要关注的一个重要话题,本文将从腾讯直播...
一份来自腾讯内部的PHP开发基础培训资料
总的来说,腾讯的这款内部测试辅助工具代表了现代软件开发中测试自动化的重要趋势,它通过高效自动化,提升了测试的质量和速度,从而助力腾讯维持其产品和服务的高质量标准。对于其他企业来说,这也是一种值得借鉴的...
### IT求职经验分享:腾讯、百度、支付宝及阿里巴巴面试经历 #### 一、简历准备与自我介绍技巧 在求职过程中,简历是展示个人能力和经历的第一道门槛。作者提到,他的简历仅有一张单面A4纸,简洁明了地介绍了个人...
腾讯游戏开发流程教材,内部资料,绝对值得收藏。
5. **强调速度**:“快鱼吃慢鱼”理念体现在腾讯的开发实践中,强调快速迭代和发布,通过自动化测试和持续集成加速产品上市流程。 在腾讯的敏捷实践中,具体措施包括: - **故事墙**:团队使用故事墙(Story Wall...
【腾讯软件测试笔试题(2008-2010)】是针对有意加入腾讯公司,从事软件测试工程师职位的求职者所准备的一系列笔试题目。这些试题旨在考察候选人在软件测试领域的专业知识、问题解决能力和逻辑思维能力。通过分析...
标题中提到的“腾讯...6. 敏捷测试在移动领域的实践,尤其在腾讯这样的大型互联网公司,需要测试团队在面对快速变化的市场和技术环境时,能够快速适应,灵活处理各种突发问题,并与开发团队紧密协作以确保软件质量。