mdrjava的简单介绍
今天给各位分享mdrjava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
游戏工学, 研究生论文
J2ME手机游戏的开发-Beckham Goal
摘 要
J2ME(Java 2 Micro Edition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于J2ME技术的应用,开发一款简单的手机游戏程序--Beckham Goal。 论文在分析了实现小游戏的相关基础技术及理论后,对该游戏进行了功能需求分析、模块划分及总体设计,解决了游戏中涉及的碰撞检查以及其他若干关键技术,最后在J2ME平台下实现了该小游戏,并通过验证达到预期的效果。
关键词:J2ME;手机游戏; K-Java;碰撞检查
1 引言
1.1 手机游戏概述
手机游戏几乎是当今市面上所有手机所必有的。在几年前的机型中,游戏都是手机中自带的,称为嵌入式游戏,由手机生产厂商设计并直接嵌入在手机里面。这样的游戏用户不能自行开发、添加及删除,其游戏种类取决于不同的机型,是一种单机游戏。随后的几年兴起了一种基于短信的游戏,由用户发送特定字符串给短信游戏提供商,来控制游戏的动作或剧情的发展。随着wap的兴起,出现了一种基于浏览器的游戏,和短信游戏差不多,由用户手机通过wap登录游戏提供商所提供的网址,然后填写或选择相应表单来操作游戏。上面两类游戏都是基于文本的,操作比较繁琐,游戏性不强。短信游戏每做一次操作(也就是发送一条短信)需要花费一毛钱;wap游戏无论是通过CSD上网还是通过GPRS上网都需要出上网费用。两种游戏的花费都比较高。现在新出的手机很大一部分都支持Java程序下载,而且这是一种趋势。由Java开发的游戏可以对图像进行操作,是动态的。而且可以接入网络,既可以开发单机游戏也可以开发网络游戏。随着彩屏手机的普及,游戏可以不再是黑白的,可随心所欲的为游戏中的不同物体赋予不同的颜色。
过去的手机是一个封闭的操作系统,除非用厂商自己的软件和工具,否则无法对手机的菜单进行改动,更无法在手机上附加其他应用。而K-Java技术的应用将摆脱这些传统的束缚,K-Java编写的应用程序可以兼容不同的网络协定,简单说就是,只要网络内容服务提供商提供K-Java服务,用户的K-Java手机就可以拥有无限扩充应用的能力。K-Java服务是一种新的移动数据业务的增值服务,它为用户提供了一个开放的平台,能更好地为用户提供全新图形化、动态化的移动增值服务。用户使用支持K-Java功能的手机终端,接入网络内容服务提供商的K-Java服务平台,可以通过手机随意下载Java应用软件,能方便地享受类似于Internet上的各种服务,如下载游戏、动漫、小说等,也可进行各种在线应用,如联网游戏、收发邮件、证券炒股、信息查询等。
1.2 Java手机游戏的发展现状
在欧美市场,由于较早采用GPRS技术,所以欧洲和美国运营商的K-Java也开展得较早,不过早期的应用并没能在个人消费市场激起太大的波澜。而日韩的无线数据业务从发展之初就将目标锁定在了游戏、娱乐等个人消费方面。K-Java技术能够利用手机有限的硬件条件使得PC上大量的互动性娱乐、游戏应用在手机上,正是凭借着这一技术特点,K-Java迅速成为了手机游戏的主流编程语言。在欧美市场,2002年此项业务的直接收入已经超过了2.45亿美元。
在中国,2003年2月15日,中国移动开始了大范围的K-Java应用测试。4月8日,无线K-Java服务被移动正式定名为“百宝箱”,并全面开始免费试用。而在发展较快的广东地区,更是从5月17日开始了大规模的K-Java业务推广,投入资金多达千万元。7月1日,中国移动宣布了“百宝箱”正式商用的消息,K-Java在中国市场的掘金旅程也将由此开启。但是,K-Java目前在中国的发展速度却不够快,主要的原因是用户群体不足。首先是终端不足。在市场上,能够支持K-Java的手机很少,而且几乎都是几个国外主流品牌,其定位也较高,而国内品牌,介于成本和技术,一般都不含K-Java功能。与此同时,大量已有手机的老用户不会因此功能而重新购置一台新的手机。其次,在拥有K-Java功能的手机用户群体中,懂得或者愿意使用K-Java的人却更少。所以,我们必须期待更多含有K-Java功能的面向各个消费群体的手机上市和普及,以及用户对手机附加功能使用意识的加强。
1.3 手机游戏的发展前景
由Juniper Research发布的最新调查说明,Java手机游戏在2008年将会获得超过63亿美元得收益。据IDC预计,仅在美国,整个手机无线游戏业务的硬件、软件以及服务所带来的收入在2006年将达到40亿美元,而更别说有着更大手机无线游戏市场潜力的日本、韩国和中国等亚洲市场。预计到2006年,全球的无线游戏市场总值将达170亿美元。研究机构Informa分析说,手机游戏是全球游戏市场中增长最快的部分,其产值将从2002年的2.43亿美元上升至2007年的38亿美元。英国市场研究机构AnalysysLtd在这份研究报告中称,随着彩屏智能手机的广泛应用和手机功能不断升级,游戏市场预期将从2002年的2亿欧元,至2008年时增长到接近30亿欧元。FrostSullivan研究公司指出,全球移动游戏业收入2008年将上升至93.4亿美元。Ovum公司则指出,到2006年,全球移动游戏业的价值将是44亿美元。比较保守的In-Stat/MDR研究公司也指出,无线游戏业的营收将以数十亿计,2006年将达到28亿美元。据StrandConsults公司预测,到2005年,预计手机移动游戏和娱乐的营收将会成为移动业务中利润最大的一项服务。来自众多研究公司的结果似乎都在表明:无线游戏将是下一个互联网金矿。
如今,从高档写字楼到青青校园,手机无处不在,手机如今已成为都市时尚文化和消费主义的象征。本来手机只是用来通话,后来可以发短信,现在当人们空闲无聊时候,手机用户们将会转向那些提供游戏和娱乐的服务的功能也就显现出来了。
随着2.5G和3G的大发展,彩屏手机今年包括今后几个将会逐步取代黑白手机,后几年的时间里,彩屏手机将具有类似GameBoys游戏机的功能。更重要的是随着数据业务的成熟,寄托于移动通信网络与移动终端的无线游戏,使手机游戏由单机游戏迅速的过渡到了类似于电脑上网络游戏的时代。
Java将成为无线游戏发展的中坚力量,由Java所开发的手机游戏将占据巨大的市场分额。
2 J2ME的概述与相关理论基础
2.1 J2ME的简介
J2ME 是Sun微系统公司流行Java编程语言的紧凑版本。很多人没有意识到Java作为一种语言刚刚发明的时候是为了用来进行移动设备编程的,于是,它最终以J2ME的形式来实现这个目的。J2ME包括一组开发工具和丰富的应用程序接口(API)以供开发手机应用程序,人们称之为MIDlet。
J2ME也包括K虚拟机,它负责协助Java字节码在每个具体手机上的执行。依靠通用的字节码而不是本地应用程序代码,J2ME就能够开发你的游戏的基本代码,并且能够移植到不同的手机而不需要费太大力气。事实上,如果不需要改变屏幕尺寸和图形显示能力,在J2ME手机之间移植一个游戏所需要的工作几乎是零。
在美国的手机制造商中,J2ME享受着最广泛的工业支持。在市场上,Motorola,Nakia,Research In Motion(RIM)和Samsung等业界巨头都有功能基于J2ME的手机。
我是小学教育(文科)专业的,现在大二,想读计算机方面的研究生,要准备哪些方面的东西?
你可以照大纲看看阿。算法那时必须会的,不要存在侥幸心理,算法是数据结构课的灵魂,09年没有考并不意味着以后也不考。并且09年还是有算法题的。应用题第二题要写算法的。
另附09大纲:
Ⅰ考查目标
计算机学科专业基础综合考试涵盖数据机构、计算机组成原理、操作系统和计算机网络
等学科专业基础课程。要求考生比较系统地掌握上述专业基础课程的概念、基本原理和方法,
能够运用所学的基本原理和基本方法分析、判断和解决有关理论问题和实际问题。
Ⅱ考试形式和试卷结构
一、试卷满分及考试时间
本试卷满分为150分,考试时间为180分钟
二、答题方式
答题方式为闭卷、笔试
三、试卷内容结构
数据结构45分
计算机组成原理45分
操作系统35分
计算机网络25分
四、试卷题型结构
单项选择题80分(40小题,每小题2分)
综合应用题70分
Ⅲ考查范围
数据结构
【考查目标】
1.理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作
的实现。
2.掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。
3.能够选择合适的数据结构和方法进行问题求解。
一、线性表
(一)线性表的定义和基本操作
(二)线性表的实现
1.顺序存储结构
2.链式存储结构
3.线性表的应用
二、栈、队列和数组
(一)栈和队列的基本概念
(二)栈和队列的顺序存储结构
(三)栈和队列的链式存储结构
(四)栈和队列的应用
(五)特殊矩阵的压缩存储
三、树与二叉树
(一)树的概念
(二)二叉树
1.二叉树的定义及其主要特征
2.二叉树的顺序存储结构和链式存储结构
3.二叉树的遍历
4.线索二叉树的基本概念和构造
5.二叉排序树
6.平衡二叉树
(三)树、森林
1.书的存储结构
2.森林与二叉树的转换
3.树和森林的遍历
(四)树的应用
1.等价类问题
2.哈夫曼(Huffman)树和哈夫曼编码
四、图
(一)图的概念
(二)图的存储及基本操作
1.邻接矩阵法
2.邻接表法
(三)图的遍历
1.深度优先搜索
2.广度优先搜索
(四)图的基本应用及其复杂度分析
1.最小(代价)生成树
2.最短路径
3.拓扑排序
4.关键路径
五、查找
(一)查找的基本概念
(二)顺序查找法
(三)折半查找法
(四)B-树
(五)散列(Hash)表及其查找
(六)查找算法的分析及应用
第2页共?页六、内部排序
(一)排序的基本概念
(二)插入排序
1.直接插入排序
2.折半插入排序
(三)气泡排序(bubble sort)
(四)简单选择排序
(五)希尔排序(shell sort)
(六)快速排序
(七)堆排序
(八)二路归并排序(merge sort)
(九)基数排序
(十)各种内部排序算法的比较
(十一)内部排序算法的应用计算机组成原理
【考查目标】
1.理解单处理器计算机系统中各部件的内部工作原理、组成结构以及相互连接方式,具有
完整的计算机系统的整机概念。
2.理解计算机系统层次化结构概念,熟悉硬件与软件之间的界面,掌握指令集体系结构的
基本知识和基本实现方法。
3.能够运用计算机组成的基本原理和基本方法,对有关计算机硬件系统中的理论和实际问
题进行计算、分析,并能对一些基本部件进行简单设计。
一、计算机系统概述
(一)计算机发展历程
(二)计算机系统层次结构
1.计算机硬件的基本组成
2.计算机软件的分类
3.计算机的工作过程
(三)计算机性能指标
吞吐量、响应时间;CPU时钟周期、主频、CPI、CPU执行时间;MIPS、MFLOPS。
二、数据的表示和运算
(一)数制与编码
1.进位计数制及其相互转换
2.真值和机器数
3.BCD码
4.字符与字符串
5.校验码
第3页共?页(二)定点数的表示和运算
1.定点数的表示
无符号数的表示;有符号数的表示。
2.定点数的运算
定点数的位移运算;原码定点数的加/减运算;补码定点数的加/减运算;定点数
的乘/除运算;溢出概念和判别方法。
(三)浮点数的表示和运算
1.浮点数的表示
浮点数的表示范围;IEEE754标准
2.浮点数的加/减运算
(四)算术逻辑单元ALU
1.串行加法器和并行加法器
2.算术逻辑单元ALU的功能和机构
三、存储器层次机构
(一)存储器的分类
(二)存储器的层次化结构
(三)半导体随机存取存储器
1.SRAM存储器的工作原理
2.DRAM存储器的工作原理
(四)只读存储器
(五)主存储器与CPU的连接
(六)双口RAM和多模块存储器
(七)高速缓冲存储器(Cache)
1.程序访问的局部
2.Cache的基本工作原理
3.Cache和主存之间的映射方式
4.Cache中主存块的替换算法
5.Cache写策略
(八)虚拟存储器
1.虚拟存储器的基本概念
2.页式虚拟存储器
3.段式虚拟存储器
4.段页式虚拟存储器
5.TLB(快表)
四、指令系统
(一)指令格式
1.指令的基本格式
2.定长操作码指令格式
3.扩展操作码指令格式
(二)指令的寻址方式
1.有效地址的概念
2.数据寻址和指令寻址
第4页共?页3.常见寻址方式
(三)CISC和RISC的基本概念
五、中央处理器(CPU)
(一)CPU的功能和基本结构
(二)指令执行过程
(三)数据通路的功能和基本结构
(四)控制器的功能和工作原理
1.硬布线控制器
2.微程序控制器
微程序、微指令和微命令;微指令的编码方式;微地址的形式方式。
(五)指令流水线
1.指令流水线的基本概念
2.超标量和动态流水线的基本概念
六、总线
(一)总线概述
1.总线的基本概念
2.总线的分类
3.总线的组成及性能指标(二)总线仲裁
1.集中仲裁方式
2.分布仲裁方式
(三)总线操作和定时
1.同步定时方式
2.异步定时方式
(四)总线标准
七、输入输出(I/O)系统
(一)I/O系统基本概念
(二)外部设备
1.输入设备:键盘、鼠标
2.输出设备:显示器、打印机
3.外存储器:硬盘存储器、磁盘阵列、光盘存储器
(三)I/O接口(I/O控制器)
1.I/O接口的功能和基本结构
2.I/O端口及其编址
(四)I/O方式
1.程序查询方式
2.程序中断方式
中断的基本概念;中断响应过程;中断处理过程;多重中断和中断屏蔽的
概念。
3.DMA方式
DMA控制器的组成;DMA传送过程。
4.通道方式
第5页共?页操作系统
【考查目标】
1.了解操作系统在计算机系统中的作用、地位、发展和特点。
2.理解操作系统的基本概念、原理,掌握操作系统设计方法与实现技术。
3.能够运用所学的操作系统原理、方法与技术分析问题和解决问题。
一、操作系统概述
(一)操作系统的概念、特征、功能和提供的服务
(二)操作系统的发展与分类
(三)操作系统的运行环境
二、进程管理
(一)进程与线程
1.进程概念
2.进程的状态与转换
3.进程控制
4.进程组织
5.进程通信
共享存储系统;消息传递系统;管道通信。
6.线程概念与多线程模型
(二)处理机调度
1.调度的基本概念
2.调度时机、切换与过程
3.调度的基本准则
4.调度方式
5.典型调度算法
先来先服务调度算法;短作业(短任务、短进程、短线程)优先调度算法;时间片轮转调度
算法;优先级调度算法;高响应比优先调度算法;多级反馈队列调度算法。
(三)进程同步
1.进程同步的基本概念
2.实现临界区互斥的基本方法
软件实现方法;硬件实现方法。
3.信号量
4.管程
5.经典同步问题
生产者-消费者问题;读者-写者问题;哲学家进餐问题。(四)死锁
1.死锁的概念
2.死锁处理策略
3.死锁预防
4.死锁避免
第6页共?页系统安全状态:银行家算法。
5.死锁检测和解除
三、内存管理
(一)内存管理基础
1.内存管理概念
程序装入与链接;逻辑地址与物理地址空间;内存保护。
2.交换与覆盖
3.连续分配管理方式
单一连续分配;分区分配。
4.非连续分配管理方式
分页管理方式;分段管理方式;段页式管理方式。
(二)虚拟内存管理
1.虚拟内存基本概念
2.请求分页管理方式
3.页面置换算法
最佳置换算法(OPT);先进先出置换算法(FIFO);最近
法(LRU);时钟置换算法(CLOCK)。
4.页面分配策略
5.抖动
抖动现象;工作集。
6.请求分段管理方式
7.请求段页式管理方式
四、文件管理
(一)文件系统基础
1.文件概念
2.文件结构
顺序文件;索引文件;索引顺序文件。
3.目录结构
文件控制块和索引节点;单级目录结构和两级目录结构;树形
目录结构。
4.文件共享
共享动机;共享方式;共享语义。
5.文件保护
访问类型;访问控制。
(二)文件系统实现
1.文件系统层次结构
2.目录实现
3.文件实现
(三)磁盘组织与管理
1.磁盘的结构
2.磁盘调度算法
3.磁盘的管理
五、输入输出(I/O)管理
第7页共?页(一)I/O管理概述
1.I/O设备
2.I/O管理目标
3.I/O管理功能
4.I/O应用接口
5.I/O控制方式
(二)I/O核心子系统
1.I/O调度概念
2.高速缓存与缓冲区
3.设备分配与回收
4.假脱机技术(SPOOLing)
5.出错处理计算机网络
【考查目标】
1.掌握计算机网络的基本概念、基本原理和基本方法。
2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组
型网络设备的工作原理
3.能够运用计算机网络的基本概念、基本原理和基本方法进行网络系统
用
一、计算机网络体系结构
(一)计算机网络概述
1.计算机网络的概念、组成与功能
2.计算机网络的分类
3.计算机网络与互联网的发展历史
4.计算机网络的标准化工作及相关组织
(二)计算机网络体系结构与参考模型
1.计算机网络分层结构
2.计算机网络协议、接口、服务等概念
3.ISO/OSI参考模型和TCP/IP模型
二、物理层
(一)通信基础
1.信道、信号、宽带、码元、波特、速率等基本概念
2.奈奎斯特定理与香农定理
3.信源与信宿
4.编码与调制
5.电路交换、报文交换与分组交换
6.数据报与虚电路
(二)传输介质
1.双绞线、同轴电缆、光纤与无线传输介质
第8页共?页2.物理层接口的特性
(三)物理层设备
1.中继器
2.集线器
三、数据链路层
(一)数据链路层的功能
(二)组帧
(三)差错控制
1.检错编码
2.纠错编码
(四)流量控制与可靠传输机制
1.流量控制、可靠传输与滑轮窗口机制
2.单帧滑动窗口与停止-等待协议
3.多帧滑动窗口与后退N帧协议(GBN)
4.多帧滑动窗口与选择重传协议(SR)
(五)介质访问控制
1.信道划分介质访问控制
频分多路复用、时分多路复用、波分多路复用、码分多
本原理。
2.随即访问介质访问控制
ALOHA协议;CSMA协议;CSMA/CD协议;CSMA
3.轮询访问介质访问控制:令牌传递协议
(六)局域网
1.局域网的基本概念与体系结构
2.以太网与IEEE 802.3
3.IEEE 802.11
4.令牌环网的基本原理
(七)广域网
1.广域网的基本概念
2.PPP协议
3.HDLC协议
4.ATM网络基本原理
(八)数据链路层设备
1.网桥
网桥的概念;透明网桥与生成树算饭;源选径网桥与源选
2.局域网交换机及其工作原理。
四、网络层
(一)网络层的功能
1.异构网络互联
2.路由与转发
3.拥塞控制
(二)路由算法1.静态路由与动态路由
2.距离-向量路由算法
3.链路状态路由算法
4.层次路由
三)IPv4
1.IPv4分组
2.IPv4地址与NAT
3.子网划分与子网掩码、CIDR
4.ARP协议、DHCP协议与ICMP协议
四)IPv6
1.IPv6的主要特点
2.IPv6地址
五)路由协议
1.自治系统
2.域内路由与域间路由
3.RIP路由协议
4.OSPF路由协议
5.BGP路由协议
六)IP组播
1.组播的概念
2.IP组播地址
3.组播路由算法
七)移动IP
1.移动IP的概念
2.移动IP的通信过程
八)网络层设备
1.路由器的组成和功能
2.路由表与路由转发
传输层
传输层提供的服务
1.传输层的功能
2.传输层寻址与端口
3.无连接服务与面向连接服务
UDP协议
1.UDP数据报
2.UDP校验
TCP协议
1.TCP段
2.TCP连接管理
3.TCP可靠传输
4.TCP流量控制与拥塞控制
应用层
第10页共?页网络应用模型
1.客户/服务器模型
2.P2P模型
DNS系统
1.层次域名空间
2.域名服务器
3.域名解析过程
FTP
1.FTP协议的工作原理
2.控制连接与数据连接
电子邮件
1.电子邮件系统的组成结构
2.电子邮件格式与MIME
3.SMTP协议与POP3协议
WWW
1.WWW的概念与组成结构
2.HTTP协议Ⅳ.
试题示例
一、单项选择题:1~40小题,每小题2分,共80分。在每小题给出的四个选项中,
请选出一项最符合题目要求的。
试题示例:
1、下列排序算法中,时间复杂度为O(nlog2n)且占用额外空间最少的是
A.堆排序
B.起泡排序
C.快速排序
D.希尔排序
2、下列序列中,满足堆定义的是
A.(100,86,48,73,35,39,42,57,66,21)
B.(12,70,33,65,24,56,48,92,86,33)
C.(103,97,56,38,66,23,42,12,30,52,6,26)
D.(5,56,20,23,40,38,29,61,35,76,28,100)
3、程序计数器PC用来存放指令地址,其位数和下列哪个寄存器相同?
A.指令寄存器IR
B.主存数据寄存器MDR
C.程序状态字寄存器PSWR
D.主存地址寄存器MAR
4、假定一个十进制数为-66,按补码形式存放在一个8位寄存器中,该寄存器的内容用十六
进制表示为
A.C2H
B.BEH
C.BDH
D.42H
5、下列进程状态转换中,不可能发生的转换是
A.运行→就绪
B.运行→等待
C.等待→运行
D.等待→就绪
6、高某系统中有3个并发过程都需要4个同类资源,该系统不会发生死锁的最少资源是
A.9
B.10
C.11
D.12
7、根据CSMA/CD协议的工作原理,下列情形中需要提高最短帧长度的是
A.网络传输速率不变,冲突域的最大距离变短
第12页共?页B.冲突域的最大距离不变,网络传输速率提高
C.上层协议使用TCP的概率增加
D.在冲突域不变的情况下减少线路中的中继器数量
8、在选择重传协议(SR)中,当帧的序号字段为3比特,且接收窗口与发送窗口尺寸相同
时,发送窗口的最大尺寸为
A.2
B.4
C.6
D.8
二、综合应用题:41~47小题,共70分。
试题示例:
41.(10分)设无向图G=(V,E),其中V={1,2,3,4,5},E={(1,2,4),(2,5,5),
(1,3,2),(2,4,4),(3,4,1),(4,5,3),(1,5,8)},每条边由一个三元组表
示,三元组中前两个元素为与该边关联的顶点,第三个元素为该边的权。请写出图G中从
顶点1到其余各点的了短路径的求解过程。要求列出最短路径上的顶点,并计算路径长度.
42.(15分)已知一棵二叉树采用二叉链表存储,结点构造为:
LeftChild Data RightChild,root指向根结点。现定义二叉树中结点X0的根
路径为从根结点到X0结点的一条路径,请编写算法输出该二叉树中最长的根路径(多条
最长根路径中只输出一条即可。算法可使用C或C++或JAVA语言实现)。
43.(11分)某计算机的主存地址位数为32位,按字节编址。假定数据Cache中最多存放
128个主存块,采用4路组相联方式,块大小为64Byte,每块设置了1位有效位“脏(Dirty)”
位。
要求:
(1)分别支出主存地址中标记(Tag)、组号(Index)和块内地址(Offset)三部分的
位置和位数
(2)计算该数据Cache的总位数(请给出详细计算过程)
44(.10分)下图是一个简化的CPU与主存连接结构示意图(图中省略了所有多路选择器)。
其中有一个累加寄存器AC、一个状态数据寄存器和其他四个寄存器:主存地址寄存器
MAR、主存数据寄存器MDR、程序计数器PC和指令寄存器IR,各部件及其之间的连线表
示数据通路,箭头表示信息传递方向。
计算机考研常见问题解答
地址:
2010年计算机考研大纲
地址:
2009年计算机专业统考试题及解析
地址:
计算机专业考研视频汇总
地址:
计算机考研全国统考复习指导及备战建议
地址:
09年全国计算机专业排名公布
地址:
计算机考研统考行之有效的备考方案
地址:
计算机考研最好考的10所学校
地址:
文件用什么软件打开
查看TIF文件图片可以用系统自带的windows图片、画图工具、Photoshop软件。
查看方法:
1、找到需要打开的TIF文件图片,点击鼠标右键,在弹出的选项中选择“打开方式”。
2、在“打开方式”中选择“Photoshop程序”。
3、即可在Photoshop中将该图片打开。
4、再返回图片位置,在“打开方式”中选择“Windows照片查看器”。
5、即可在“Windows照片查看器”中将该图片打开。
6、返回“打开方式”,选择“画图”工具。
7、即可在画图工具中将该图片打开。
四阶魔方公式
四阶魔方公式有:拼棱公式、原地翻棱公式、对棱换公式、单棱翻公式。具体如下:
1、拼棱公式:Uw' ( R U R' F R' F' R) Uw
2、原地翻棱公式:R U R' F R' F' R
3、对棱换公式(P特公式)Uw2 ( MR2 U2 )2 MR2 Uw2
4、单棱翻公式(O特公式)Rw U2 CR (Rw U2)2 Rw' U2
扩展资料
魔方的发明人是匈牙利的艾尔诺.鲁比克(ERNO RUBIK)。
1944年7月13日生于匈牙利的布达佩斯,其父是布达佩斯ESZTERGOM飞机厂工程师,从事滑翔机设计。1967年毕业于布达佩斯理工大学建筑学专业,然后,攻读雕刻和内部设计研究生。1971至1975年从事建筑师工作,其后,成为布达佩斯应用艺术学院的教授。
他喜欢在自己的房间里摆弄几何纸板和木制模型。1974年春,他拿一些木块,并用可伸缩弹簧把它们组合在一起,并开始拧转。在拧的过程中,看到立方体小方块位置相互变化,把他迷住了。
然后,他在每个面的9个小方块上贴上相同颜色纸,6个面分别用6个颜色纸,并再次拧转。他喜欢不同颜色图案的变化,随之发现,他拧转不到它开始的状态了。为了数学计算和找到颜色复原的思路,他整整花了一个月的时间。
德鲁克就该立方体玩具于1975年1月30日向匈牙利专利局提交了专利申请,并于1977年12月31日被授予了专利权。专利号为170062。此后,魔方风靡全球,被视为匈牙利人的骄傲、民族智力创造的代表。发明人艾尔诺.鲁比克则是匈牙利人的偶像。
参考资料:人民网-【影响世界的专利】魔方
参考资料:百度百科-四阶魔方
怎么使用JAVA中的包
员都熟悉对 JAR 文件的基本操作。但是只有少数程序员了解 JAR 文件格式的强大功能。在本文中,作者探讨了 JAR 格式的许多功能和优势,包括打包、可执行的 JAR 文件、安全性和索引。JAR 文件是什么?JAR 文件格式以流行的 ZIP 文件格式为基础,用于将许多个文件聚集为一个文件。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。一个 JAR 文件可以用于:用于发布和使用类库作为应用程序和扩展的构建单元作为组件、applet 或者插件程序的部署单位用于打包与组件相关联的辅助资源JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如 ZIP 或者 TAR 所没有提供的。它们包括:安全性。 可以对 JAR 文件内容加上数字化签名。这样,能够识别签名的工具就可以有选择地为您授予软件安全特权,这是其他文件做不到的,它还可以检测代码是否被篡改过。减少下载时间。 如果一个 applet 捆绑到一个 JAR 文件中,那么浏览器就可以在一个 HTTP 事务中下载这个 applet 的类文件和相关的资源,而不是对每一个文件打开一个新连接。压缩。JAR 格式允许您压缩文件以提高存储效率。传输平台扩展。 Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 开发的扩展例子)。包密封。 存储在 JAR 文件中的包可以选择进行密封,以增强版本一致性和安全性。密封一个包意味着包中的所有类都必须在同一 JAR 文件中找到。包版本控制。 一个 JAR 文件可以包含有关它所包含的文件的数据,如厂商和版本信息。可移植性。 处理 JAR 文件的机制是 Java 平台核心 API 的标准部分。压缩的和未压缩的 JARjar 工具(有关细节参阅 jar 工具)在默认情况下压缩文件。未压缩的 JAR 文件一般可以比压缩过的 JAR 文件更快地装载,因为在装载过程中要解压缩文件,但是未压缩的文件在网络上的下载时间可能更长。META-INF 目录大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息。Java 2 平台识别并解释 META-INF 目录中的下述文件和目录,以便配置应用程序、扩展和类装载器:MANIFEST.MF。 这个 manifest 文件定义了与扩展和包相关的数据。INDEX.LIST。 这个文件由 jar 工具的新选项 -i 生成,它包含在应用程序或者扩展中定义的包的位置信息。它是 JarIndex 实现的一部分,并由类装载器用于加速类装载过程。xxx.SF。 这是 JAR 文件的签名文件。占位符 xxx 标识了签名者。xxx.DSA。 与签名文件相关联的签名程序块文件,它存储了用于签名 JAR 文件的公共签名。jar 工具为了用 JAR 文件执行基本的任务,要使用作为Java Development Kit 的一部分提供的 Java Archive Tool (jar 工具)。用 jar 命令调用 jar 工具。表 1 显示了一些常见的应用:表 1. 常见的 jar 工具用法 功能 命令用一个单独的文件创建一个 JAR 文件 jar cf jar-file input-file...用一个目录创建一个 JAR 文件 jar cf jar-file dir-name创建一个未压缩的 JAR 文件 jar cf0 jar-file dir-name更新一个 JAR 文件 jar uf jar-file input-file...查看一个 JAR 文件的内容 jar tf jar-file提取一个 JAR 文件的内容 jar xf jar-file从一个 JAR 文件中提取特定的文件 jar xf jar-file archived-file...运行一个打包为可执行 JAR 文件的应用程序 java -jar app.jar可执行的 JAR一个可执行的 jar 文件是一个自包含的 Java 应用程序,它存储在特别配置的JAR 文件中,可以由 JVM 直接执行它而无需事先提取文件或者设置类路径。要运行存储在非可执行的 JAR 中的应用程序,必须将它加入到您的类路径中,并用名字调用应用程序的主类。但是使用可执行的 JAR 文件,我们可以不用提取它或者知道主要入口点就可以运行一个应用程序。可执行 JAR 有助于方便发布和执行 Java 应用程序。创建可执行 JAR创建一个可执行 JAR 很容易。首先将所有应用程序代码放到一个目录中。假设应用程序中的主类是 com.mycompany.myapp.Sample。您要创建一个包含应用程序代码的 JAR 文件并标识出主类。为此,在某个位置(不是在应用程序目录中)创建一个名为 manifest 的文件,并在其中加入以下一行:Main-Class: com.mycompany.myapp.Sample然后,像这样创建 JAR 文件:jar cmf manifest ExecutableJar.jar application-dir所要做的就是这些了 -- 现在可以用 java -jar 执行这个 JAR 文件 ExecutableJar.jar。一个可执行的 JAR 必须通过 menifest 文件的头引用它所需要的所有其他从属 JAR。如果使用了 -jar 选项,那么环境变量 CLASSPATH 和在命令行中指定的所有类路径都被 JVM 所忽略。启动可执行 JAR既然我们已经将自己的应用程序打包到了一个名为 ExecutableJar.jar 的可执行 JAR 中了,那么我们就可以用下面的命令直接从文件启动这个应用程序:java -jar ExecutableJar.jar包密封密封 JAR 文件中的一个包意味着在这个包中定义的所有类都必须在同一个 JAR 文件中找到。这使包的作者可以增强打包类之间的版本一致性。密封还提供了防止代码篡改的手段。要密封包,需要在 JAR 的 manifest 文件中为包添加一个 Name 头,然后加上值为“true”的 Sealed 头。与可执行的 JAR 一样,可以在创建 JAR 时,通过指定一个具有适当头元素的 manifest 文件密封一个 JAR,如下所示:Name: com/samplePackage/Sealed: trueName 头标识出包的相对路径名。它以一个“/”结束以与文件名区别。在 Name 头后面第一个空行之前的所有头都作用于在 Name 头中指定的文件或者包。在上述例子中,因为 Sealed 头出现在 Name 头后并且中间没有空行,所以 Sealed 头将被解释为只应用到包 com/samplePackage 上。如果试图从密封包所在的 JAR 文件以外的其他地方装载密封包中的一个类,那么 JVM 将抛出一个 SecurityException。扩展打包扩展为 Java 平台增加了功能,在 JAR 文件格式中已经加入了扩展机制。扩展机制使得 JAR 文件可以通过 manifest 文件中的 Class-Path 头指定所需要的其他 JAR 文件。假设 extension1.jar 和 extension2.jar 是同一个目录中的两个 JAR 文件,extension1.jar 的 manifest 文件包含以下头:Class-Path: extension2.jar这个头表明 extension2.jar 中的类是 extension1.jar 中的类的扩展类。extension1.jar 中的类可以调用 extension2.jar 中的类,并且不要求 extension2.jar 处在类路径中。在装载使用扩展机制的 JAR 时,JVM 会高效而自动地将在Class-Path 头中引用的 JAR 添加到类路径中。不过,扩展 JAR 路径被解释为相对路径,所以一般来说,扩展 JAR 必须存储在引用它的 JAR 所在的同一目录中。例如,假设类 ExtensionClient 引用了类 ExtensionDemo,它捆绑在一个名为 ExtensionClient.jar 的 JAR 文件中,而类 ExtensionDemo 则捆绑在 ExtensionDemo.jar 中。为了使 ExtensionDemo.jar 可以成为扩展,必须将 ExtensionDemo.jar 列在 ExtensionClient.jar 的 manifest 的 Class-Path 头中,如下所示:Manifest-Version: 1.0Class-Path: ExtensionDemo.jar在这个 manifest 中 Class-Path 头的值是没有指定路径的 ExtensionDemo.jar,表明 ExtensionDemo.jar 与 ExtensionClient JAR 文件处在同一目录中。JAR 文件中的安全性JAR 文件可以用 jarsigner 工具或者直接通过 java.security API 签名。一个签名的 JAR 文件与原来的 JAR 文件完全相同,只是更新了它的 manifest,并在 META-INF 目录中增加了两个文件,一个签名文件和一个签名块文件。JAR 文件是用一个存储在 Keystore 数据库中的证书签名的。存储在 keystore 中的证书有密码保护,必须向 jarsigner 工具提供这个密码才能对 JAR 文件签名。图 1. Keystore 数据库JAR 的每一位签名者都由在 JAR 文件的 META-INF 目录中的一个具有 .SF 扩展名的签名文件表示。这个文件的格式类似于 manifest 文件 -- 一组 RFC-822 头。如下所示,它的组成包括一个主要部分,它包括了由签名者提供的信息、但是不特别针对任何特定的 JAR 文件项,还有一系列的单独的项,这些项也必须包含在 menifest 文件中。在验证一个签名的 JAR 时,将签名文件的摘要值与对 JAR 文件中的相应项计算的摘要值进行比较。清单 1. 签名 JAR 中的 Manifest 和 signature 文件Contents of signature file META-INF/MANIFEST.MFManifest-Version: 1.0Created-By: 1.3.0 (Sun Microsystems Inc.)Name: Sample.javaSHA1-Digest: 3+DdYW8INICtyG8ZarHlFxX0W6g=Name: Sample.classSHA1-Digest: YJ5yQHBZBJ3SsTNcHJFqUkfWEmI=Contents of signature file META-INF/JAMES.SFSignature-Version: 1.0SHA1-Digest-Manifest: HBstZOJBuuTJ6QMIdB90T8sjaOM=Created-By: 1.3.0 (Sun Microsystems Inc.)Name: Sample.javaSHA1-Digest: qipMDrkurQcKwnyIlI3Jtrnia8Q=Name: Sample.classSHA1-Digest: pT2DYby8QXPcCzv2NwpLxd8p4G4=数字签名一个数字签名是.SF 签名文件的已签名版本。数字签名文件是二进制文件,并且与 .SF 文件有相同的文件名,但是扩展名不同。根据数字签名的类型 -- RSA、DSA 或者 PGP -- 以及用于签名 JAR 的证书类型而有不同的扩展名。Keystore要签名一个 JAR 文件,必须首先有一个私钥。私钥及其相关的公钥证书存储在名为 keystores 的、有密码保护的数据库中。JDK 包含创建和修改 keystores 的工具。keystore 中的每一个密钥都可以用一个别名标识,它通常是拥有这个密钥的签名者的名字。所有 keystore 项(密钥和信任的证书项)都是用唯一别名访问的。别名是在用 keytool -genkey 命令生成密钥对(公钥和私钥)并在 keystore 中添加项时指定的。之后的 keytool 命令必须使用同样的别名引用这一项。例如,要用别名“james”生成一个新的公钥/私钥对并将公钥包装到自签名的证书中,要使用下述命令:keytool -genkey -alias james -keypass jamespass-validity 80 -keystore jamesKeyStore-storepass jamesKeyStorePass这个命令序列指定了一个初始密码“jamespass”,后续的命令在访问 keystore “jamesKeyStore”中与别名“james”相关联的私钥时,就需要这个密码。如果 keystore“jamesKeyStore”不存在,则 keytool 会自动创建它。jarsigner 工具jarsigner 工具使用 keystore 生成或者验证 JAR 文件的数字签名。假设像上述例子那样创建了 keystore “jamesKeyStore”,并且它包含一个别名为“james”的密钥,可以用下面的命令签名一个 JAR 文件:jarsigner -keystore jamesKeyStore -storepass jamesKeyStorePass-keypass jamespass -signedjar SSample.jar Sample.jar james这个命令用密码“jamesKeyStorePass”从名为“jamesKeyStore”的 keystore 中提出别名为“james”、密码为“jamespass”的密钥,并对 Sample.jar 文件签名、创建一个签名的 JAR -- SSample.jar。jarsigner 工具还可以验证一个签名的 JAR 文件,这种操作比签名 JAR 文件要简单得多,只需执行以下命令:jarsigner -verify SSample.jar如果签名的 JAR 文件没有被篡改过,那么 jarsigner 工具就会告诉您 JAR 通过验证了。否则,它会抛出一个 SecurityException, 表明哪些文件没有通过验证。还可以用 java.util.jar 和 java.security API 以编程方式签名 JAR(有关细节参阅参考资料)。也可以使用像 Netscape Object Signing Tool 这样的工具。JAR 索引如果一个应用程序或者 applet 捆绑到多个 JAR 文件中,那么类装载器就使用一个简单的线性搜索算法搜索类路径中的每一个元素,这使类装载器可能要下载并打开许多个 JAR 文件,直到找到所要的类或者资源。如果类装载器试图寻找一个不存在的资源,那么在应用程序或者 applet 中的所有 JAR 文件都会下载。对于大型的网络应用程序和 applet,这会导致启动缓慢、响应迟缓并浪费带宽。从 JDK 1.3 以后,JAR 文件格式开始支持索引以优化网络应用程序中类的搜索过程,特别是 applet。JarIndex 机制收集在 applet 或者应用程序中定义的所有 JAR 文件的内容,并将这些信息存储到第一个 JAR 文件中的索引文件中。下载了第一个 JAR 文件后,applet 类装载器将使用收集的内容信息高效地装载 JAR 文件。这个目录信息存储在根 JAR 文件的 META-INF 目录中的一个名为 INDEX.LIST 的简单文本文件中。创建一个 JarIndex可以通过在 jar 命令中指定 -i 选项创建一个 JarIndex。假设我们的目录结构如下图所示:图 2. JarIndex您将使用下述命令为 JarIndex_Main.jar、JarIndex_test.jar 和 JarIndex_test1.jar 创建一个索引文件:jar -i JarIndex_Main.jar JarIndex_test.jar SampleDir/JarIndex_test1.jarINDEX.LIST 文件的格式很简单,包含每个已索引的 JAR 文件中包含的包或者类的名字,如清单 2 所示:清单 2. JarIndex INDEX.LIST 文件示例JarIndex-Version: 1.0JarIndex_Main.jarspJarIndex_test.jarSampleSampleDir/JarIndex_test1.jarorgorg/apacheorg/apache/xercesorg/apache/xerces/frameworkorg/apache/xerces/framework/xml4j结束语JAR 格式远远超出了一种压缩格式,它有许多可以改进效率、安全性和组织 Java 应用程序的功能。因为这些功能已经建立在核心平台 -- 包括编译器和类装载器 -- 中了,所以开发人员可以利用 JAR 文件格式的能力简化和改进开发和部署过程。.
关于mdrjava和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。