




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
J2ME面试50题1 写出计算8除以2最快的方法。位移运算:8左移1位(81)。2 请写出short的取值范围。取值范围:215-1-215,即:32767-32768。3 什么是垃圾回收?什么时候触发垃圾回收?如何降低垃圾回收的触发频率?它能保证程序有足够的可用内存吗? 垃圾回收(GC)是Java语言的一个重要特性,作用是释放不再被使用的内存。 垃圾回收由系统进行管理。Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的。 Java虚拟机在默认情况下只有到内存接近饱和时才会调用垃圾回收器,所以开发人员也可以在程序中调用System.gc( )来呼叫垃圾回收器回收内存垃圾。但要注意gc命令不是同步进行的,是异步的,也就是不一定运行之后立即开始回收内存垃圾。 尽量减少垃圾内存,也就是新建对象的数量,可以降低垃圾回收的频率。 垃圾回收机制无法保证程序有足够的内存。4 什么是混淆(obfuscate)?有什么好处?有哪些工具可以混淆jar文件?混淆是指通过对class文件中的变量名和部分方法名进行处理,来提高代码反编译的难度。好处主要有2个:1、提高反编译以后代码阅读的难度 2、降低class文件的大小。常见的混淆器有ProGuard和RetroGuard两种。5 请列出你心目中一名优秀员工所应该具备的品质,并按重要程度排序参考:优秀员工的11种品质,即积极的工作态度、勇于负责的精神、爱岗敬业、自动自发地工作、团队至上、创新能力、忠诚可靠、执行力、激情工作、不断学习、注重细节。6 什么是状态机?游戏开发中有那些地方能用到状态机?答案:状态机(State Machine)是根据对应状态进行处理的一种机制,在游戏开发中最典型的应用是游戏人工智能(AI)等地方。7 请根据你的知识,对以下计算机名次进行尽量简单的描述:a J2MEJ2ME是一种使用Java语言进行嵌入式设备开发的技术。b PythonPython是一种语法简单的面对对象的程序设计语言c AntAnt是一种简化和统一项目编译的工具软件。d JavacJavac是Java语言的编译程序e SubversionSubversion是新一代的版本工具f OpenGLOpenGL是一套开发的图形界面开发库标准8 多线程的实现方式有几种,简单描述如何实现?实现线程有两种:继承Thread类或者实现Runnable接口。9 列举出8种基本数据类型在内存中占用的字节数类型占用内存大小字节(byte)1个字节短整型(short)2个字节整型(int)4个字节长整型(long)8个字节浮点型(float)4个字节双精度(double)8个字节字符型(char)2个字节布尔型(boolean)1位10 HashMap和Hashtable的区别。 HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey。因为contains方法容易让人引起误解。 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。11 final, finally, finalize的区别。final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。12 sleep() 和 wait() 有什么区别? sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,将执行机会让给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify或notifyAll方法后本线程才进入对象锁定池准备获得对象锁进入运行状态。13 什么是3G?3G技术具有哪些特点?3G是英文3rd Generation的缩写,指第三代移动通信技术。相对第一代模拟制式手机(1G)和第二代GSM、TDMA等数字手机(2G),第三代手机一般地讲,是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统,具备以下功能: 处理图像、音乐、视频流等多媒体形式; 提供包括网页浏览、电话会议、电子商务等多种信息服务; 为了提供这些服务,无线网络必须能够支持不同的数据传输速度:室内2Mbps/室外384Kbps/行车144Kbps。14 请简述J2ME平台的体系结构。J2ME体系结构从底层到上层,由下到上划分如下:操作系统 Java虚拟机 配置(Configurations) 简表(Profiles)可选功能包15 J2ME配置有几种?如何划分?目前,J2ME 中有两个最主要的配置,分别是Connected Limited Devices Configuration(CLDC)有限连接设备配置和Connected Devices Configuration(CDC)连接设备配置。他们是根据设备的硬件性能进行区分的。CDC 的硬件参数: 2M 以上内存。 具有网络连接能力,通常为无线网络。 需要实现java 虚拟机规范的全部功能。 32 位或者64 位的处理器。CLDC 的硬件参数: 512 KB 以下内存 有限能源供应(通常使用电池) 有限或非持续网络连接 简单的用户界面 16 位或者32 位的处理器由于这个标准是在2001 年的时候指定的,而现在移动终端的处理能力和内存容量发展很快,如果还按照这个标准来评判可能就不准确了。16 请简述MIDlet 应用程序的生命周期MIDlet 有三个状态,分别是pause、active 和destroyed。对应有三个周期方法:startApp()、pauseApp()、destroyApp(Boolean unconditional)。在启动一个MIDlet 的时候,应用管理软件会首先创建一个MIDlet 实例并使得他处于pause 状态,当startApp()方法被调用的时候MIDlet 进入active 状态,也就是所说的运行状态。在active 状态调用destroyApp(Boolean unconditional)或者pauseApp()方法可以使得MIDlet 进入destroyed 或者pause 状态。17 请说J2ME中基于通用连接框架(GFC)的一些常见应用。J2ME中基于通用连接框架(GFC)的一些常见应用有:文件系统、短消息连接、蓝牙通讯、Socket通讯、UDP通讯等。18 J2ME中所有显示界面类的父类是哪一个类?它有哪些直接子类,如何划分? J2ME所示显示界面类的父类是Displayable,它有两个最直接的子类:Screen和Canvas。其中:Screen类代表J2ME中所有高级用户界面的父类;Canvas类代表J2ME中所有低级用户界面的父类。Screen高级用户界面在低级用户界面的基础上进行了封装,用户直接按需求选取相应的Screen子类对象输入显示内容即可使用,而不必开发具体的绘图实现。Canvas低级用户界面则以画布方式完全由用户自行开发显示界面,具有更高的灵活性和更大的开发难度。19 J2ME中用于管理系统的显示设备和输入设备是哪个类?它有哪些特点?J2ME中用于管理系统的显示设备和输入设备是Display类,每个MIDlet只能有一个Display对象,应用程序可以通过调用Display类的静态成员方法getDisplay获得对Display对象的引用。在MIDlet的运行过程中,无论何时调用getDisplay方法,都会返回相同的Display对象的引用。20 如何在屏幕是显示一个Displayable对象? 返回当前屏幕的Displayable对象方法是什么?在屏幕是显示一个Displayable对象,使用Display对象的setCurrent(Displayable d)方法;返回当前屏幕的Displayable对象,使用Display对象的getCurrent()方法。21 List列表有哪些类型? 隐式类型 IMPLICIT(互斥的,通过隐式按钮实现) 单选类型 EXCLUSIVE(单选) 多选类型 MULTIPLE(多选)22 List列表类和ChoiceGroup类有何异同?List类和ChoiceGroup类都实现了Choice接口。由Choice接口定义了获得选择、添加和删除选项的方法。因此,两者的功能比较类似。两者的主要区别如下: 从Screen类派生的List类并不需要容器,从Item派生来的ChoiceGroup类需要一个Form对象来装载这个ChoiceGroup类的实例。 ChoiceGroup支持ItemStateListener监听,而List不支持。 List列表支持IMPLICIT隐式类型,而ChoiceGroup不支持。 ChoiceGroup支持POPUP下拉列表类型,而List不支持。23 请说出至少四种Form表单中可以添加的Item组件。 StringItem 字符串组件 DateField 时间域组件 TextField 文本框组件 ChoiceGroup 下拉列表组件 Gauge 进度条组件 Spacer 分隔符组件 ImageItem 图像组件 CustomItem. 用户界面组件24 Gauge进度条从工作模式上来划分可分为哪几种?从值的范围来说双可分为哪几种?从交互性上来说,进度条有两种工作模式:交互模式和非交互模式。从值的范围来说,进度条也有两种工作模式:范围确定模式和范围不确定模式。25 如让提示窗口Alert 的一直显示应如何设置?Alert 提示对象通过setTimeout(int time)来设置显示时间,参数time为显示时间值,单位为毫秒。time值还可以为Alert.FOREVER,表示提示创建将一直显示,除非手动关闭它。26 在Canvas 中请求重绘的时候,调用什么方法?在Canvas类中包含一个抽象方法paint(Graphicsg),用于绘制画布屏幕,。在Canvas派生类中必须覆盖paint方法。27 如何将画布全屏显示?如果需要全屏显示,则可以使用Canvas类setFullScreenMode(boolean model)方法,并将参数设为true。28 请说出Canvas画布类支持的个关于键盘输入事件处理的函数及用途,GameCanvas是否支持键盘输入事件?protectedvoid keyPressed(int keyCode)protectedvoid keyRepeated(int keyCode)protectedvoid keyReleased(int keyCode)、 当按下某个键时会触发keyPressed函数;、 当用户一直按着某个键时会触发keyRepeated函数;、 当用户释放某个键时触发keyReleased函数。GameCanvas因为继承了Canvas也支持键盘输入事件。29 简述J2ME中动画实现的原理。任何动画的最基本的前提,是要在足够快的时间内显示和更换一张张的图片,让人的眼睛看到活动的画面效果。J2ME中的动画实现就基于这个原理,主要需要由以下几个步骤实现:、 定义一个画布类;、 定义一个Image 图像数组装载动画帧图像;、 定义一个图像索引成员变量i;、 在画布的paint方法中绘制索引i指向的帧图像;、 画布类实现Runnable接口,在线程体内定义一个循环,每循环一次使i在图像数组的索引范围顺序变化,并调用画布的repaint()方法重绘索引i指向的新的动画帧,暂停一小段时间。、 在画布的构造函数中或动画的显示方法中,用画布自身启动一个线程。30 在J2ME手机系统中,可以按一个简易数据库使用的机制是什么?RMS记录管理系统。31 简述向手机记录管理系统(RMS)中插入记录的步骤。 打开或创建一个指定名称记录存储对象: RecordStore.openRecordStore(String name, boolean createIfNecessary) 将要插入的数据转换成二进制byte数组,如:byte data = 测试内容.getBytes(); 插入记录:RecordStore.addRecord(byte data, int offset,int numBytes); 关闭记录:RecordStore.closeRecordStore();32 记录管理系统中实现监听、过滤、比较的三个接口是什么?记录监听接口否能对记录的添加、删除、修改都进行监听?记录监听:RecordListener记录过滤:RecordFilter记录比较:RecordComparator33 简述文件的复制和移动步骤。1 获得要被复制文件的FileConnection;2 获得要复制到的目标文件FileConnection.;3 检查目标文件是否存在,如果存在则删除;4 创建一个新的目标文件;5 打开源文件的输入流和目标文件的输出流,每次读取一个字节写入目标文件,一直到源文件读取完毕;6 如果为移动操作,则这里要删除源文件,否则不执行;7 关闭连接,完成文件的复制。34 JSR75规范中pim包是一个可选的包,主要用来处理个人的信息,包括哪三个部分?每一部分对应的两个主要接口名称又是什么?JSR75规范中pim包是一个可选的包,主要用来处理个人的信息,包括联系人、日程安排和待办事项三个部分。PIM对联系人、日程安排和待办事项三个部分使用3种数据库存储和管理。每种数据库都使用了两个接口。一个接口关注的是数据元素的操作和收集数据,另一个接口关注的是部分和所有的数据元素的持续性问题。每种数据库的面向数据的接口分别是Contact,Event和ToDo。每种数据库的持续性接口分别为ContactList,EventList和ToDoList。35 如何获得一个联系人列表ContactList的实例?如何获得一个联系人Contact的实例? 利用PIM实例openPIMList方法打开PIM列表,两个参数列表类型和打开方式:PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE); 通过ContactList对象的createContact工厂方法,创建一个和当前列表关联的空的联系人对象contactList. createContact();36 如何将一个新增的联系人添加到联系人列表中去?在添加完数据后,需要调用Contact的commit函数提交到联系人列表中,否则数据不会被添加:tryCmit();catch(PIMException e)最后,要调用PIMList的close函数关闭联系人列表,释放系统资源:trycontactList.close();catch(PIMException e)37 在J2ME中主要通过哪个接口使用HTTP协议和Web服务器通讯,怎样打开一个HTTP连接?在MIDP2.0开发包中,HttpConnection接口封装了HTTP协议处理,通过这个接口可以使用HTTP协议和Web服务器通信。可以使用通用连接框架打开一个HTTP连接。例如,以下代码使用HTTP协议打开本机的8080端口。HttpConnection httpCon = (HttpConnection)Connector.open(“:8080”);38 新建的HttpConnection对象的缺省采用什么请求方法?怎样改变请求方法?新建的HttpConnection对象的缺省请求方法为GET,可以通过HttpConnection对象的setRequestMethod方法设置希望的请求方法。39 SMS消息分为哪几类?消息的接收通过哪个接口来实现?SMS消息可分为TextMessage文本消息、BinaryMessage二进制消息、MultipartMessage多媒体消息三类。消息的接收通过MessageListener监听接口实现。40 J2ME中Player播放器有几种状态?Player接口提供哪几个方法用于状态间的切换?做出简要说明。共有五种状态,各状态说明如下: UNREALIZED仅表示Player已经被创建; REALIZED表示已经定位到了数据媒体数据; PREFETCHED表示用于播放的所有必要操作已经完成(填充缓冲、获得声音硬设备的控制权等),可以开始播放媒体了; STARTED表示已经开始播放媒体数据; CLOSE表示Player已经释放了所有的资源,关闭了所有的网络连接,不能再被使用了。Player状态切换相关函数说明:Player状态切换函数说 明realize()调用realize()函数后会进入REALIZED状态prefetch()在REALIZED状态时调用prefetch()函数会进入PREFETCHED状态start()调用start()函数会进入STARTED状态stop()在STARTED状态调用stop()函数都会返回PREFETCHED状态deallocate()在realize()方法执行过程中调用deallocate(),函数都会返回UNREALIZED状态;在PREFETCHED状态调用deallocate()函数会返回REALIZED状态close()在任何一个状态调用close()函数都会进入CLOSED状态41 Socket 编程使用什么协议发送数据,使用到哪两个主要接口?J2ME中Socket 编程使用TCP/IP协议发送数据,使用的两个主要接口是ServerSocketConnection和SocketConnection。42 UDP 编程使用什么协议发送数据,使用到哪两个主要接口?J2ME中UDP 编程使用UDP协议发送数据,使用的两个主要接口是UDPDatagramConnection 和Datagram。43 在GameCanvas的构造函数中,有一个布尔型的参数suppressKeyEvents,这个参数有什么作用?参数suppressKeyEvents表示是否禁止游戏按键事件。如果为false,则所有的按键处理和Canvas一样;如果为true,则表示禁止游戏按键事件,即对于有游戏动作的按键,不会去响应常规的keyPressed、keyReleased和keyRepeated三个方法。此时可以通过GameCanvas的getKeyStates方法查询游戏按键的状态。44 Sprite精灵对象在J2ME游戏开发中有什么作用?精灵动画帧的索引是从0开始的吗?游戏精灵Sprite是由存储在一个Image对象中的几个图像帧渲染出来的基本视觉元素。它可通过镜像和旋转的方式呈现出更多的外观。它提供了碰撞检测的方法,可以检测与其他游戏精灵、图层和图像的碰撞。同时由于Sprite派生于图层Layer类,可方便的改变其位置和可见性。在J2ME游戏开发中常用精灵Sprite的定义游戏人物、子弹等经常移动和变换的物体。精灵动画帧的索引是从0开始的。45 请简述游戏图层TiledLayer的特点。 游戏图层是由一系列网格组成,每个网格中都可以填充并显示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产业研究报告-2025年中国环网柜行业发展现状、市场规模、投资前景分析
- 中国芦荟种植行业发展前景预测及投资方向研究报告
- 2025年中国高密度薄板行业市场发展前景及发展趋势与投资战略研究报告
- 中国CPI膜行业市场调查报告
- 成卷梳棉机行业深度研究分析报告(2024-2030版)
- 年产2万吨覆膜砂新建项目可行性研究报告
- 中国电力电子元件市场深度分析及行业前景展望报告
- 2025年中国充电电池行业发展趋势预测及投资战略咨询报告
- 2025年中国变频微波炉行业市场发展监测及投资潜力预测报告
- 2025-2030年中国组合式冷藏库行业深度研究分析报告
- 企业员工保密协议书范本
- 居住区规划智慧树知到期末考试答案章节答案2024年湖南师范大学
- 公路防汛抢险应急演练脚本
- 2024年陕西西安市第一社会福利院西安市救助管理站招聘34人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 生态环境保护与可持续发展智慧树知到期末考试答案章节答案2024年浙江农林大学
- MH-T 5003-2016 民用运输机场航站楼离港系统工程设计规范
- 专题24 生物的进化-备战2024年中考《生物》复习全考点
- 中医治疗失眠课件
- 《家庭氧疗》课件
- 医疗器械运输管理制度范本
- GB/T 43492-2023预制保温球墨铸铁管、管件和附件
评论
0/150
提交评论