仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 514|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA网站制作之J2ME编程最好理论之天真的RMS使用

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:11:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)编程  MIDP使用程序的尺度耐久化计划就是利用RMS。RMS相似于一个小型数据库,RecordStore相称于数据库的表,每一个“表”由多少纪录(Record)组成,一笔记录就是一个用int暗示的纪录号RecordID和用byte[]暗示的内容。纪录号能够看做是“主键”,byte[]数组存储内容。
  RMS供应的纪录操纵能够完成依据ID间接取得纪录,大概列举出一个表中的一切纪录。
  列举纪录长短常低效的,由于只能对照byte[]数据来断定该纪录是不是是所需的纪录。经由过程ID取得纪录是高效而便利的,相似于SQL语句“SELECTbyteArrayDataFROMrecordStoreNameWHERERecordID=?”。但是,一般使用程序很难晓得某笔记录的ID号,而RMS纪录的“主键”又仅限于int范例,没法利用其他范例如String作为“主键”来查找。因而,关于必要存取分歧范例对象的使用程序而言,就必要一个天真的RMS操纵框架。
  我们的基础假想是,假如能利用String作为“主键”来查找纪录,就可以十分便利地取得所需的内容。比方,使用程序设置能够经由过程"sys.settings"取得byte[]数组,并顺次读掏出设置,用户登录信息能够经由过程"user.info"取得byte[]数组,再分化出用户名和口令。
  因而,我们完成一个StorageHandler类,供应独一的RMS会见接口,使得其他类完整不用思索底层的RMS操纵,只需供应能标识本身的一个String便可。
  假如我们能完成一品种似于数据库索引的查找表,就可以依据String关头字查找某笔记录。因而,我们利用一个名为"index"的RecordStore来存储一切的索引,每条索引都指向某一条详细纪录的ID,计划一个IndexEntry暗示一条索引:
classIndexEntry{
privateintselfId;//IndexEntry的ID
privateintrecordId;//对应纪录的ID
privateStringkey;//会见纪录的Key
}
  依据索引查找,分3步举行:
  1.在名为"index"的RecordStore中依据String查找对应的IndexEntry。

  2.掏出IndexEntry,取得纪录ID号。

  3.依据ID号取得另外一个RecordStore的纪录,然后就能够读取、更新和删除该纪录。
  以下图所示:



  因为IndexEntry保留的数据很少,为了加速查找速率,能够在使用程序启动时,把一切的IndexEntry读进一个Vector,在前面的操纵中更新这个Vector并与RecordStore坚持同步。
  为了处置分歧范例的数据,一切可经由过程StorageHandler存取的类都必需完成一个Storable接口:
publicinterfaceStorable{
StringgetKey();
voidgetData(DataOutputStreamoutput)throwsIOException;
voidsetData(DataInputStreaminput)throwsIOException;
}
  后面已提到,在MIDP使用程序中,序列化一个类的最好办法是利用DataInputStream和DataOutputStream。因而,必要耐久化的类能够经由过程getData()和setData()办法十分便利地存取。假定使用程序的类UserInfo保留了用户的登录名、口令和是不是主动登录的信息:
publicclassUserInfo{
Stringusername;
Stringpassword;
booleanautoLogin;
}
  为了能将UserInfo存进RMS,必要完成Storable接口:
classUserInfoimplementsStorable{
Stringusername;
Stringpassword;
booleanautoLogin;
publicStringgetKey(){return"user.info";}//供应一个独一标识符便可
publicvoidgetData(DataOutputStreamoutput)throwsIOException{
output.writeUTF(username);
output.writeUTF(password);
output.writeBoolean(autoLogin);
}
publicvoidsetData(DataInputStreaminput)throwsIOException{
username=input.readUTF();
password=input.readUTF();
autoLogin=input.readBoolean();
}
//gettershere...
}
  要保留UserInfo,只需挪用StorageHandler的保留办法:
StorageHandler.storeOrUpdate(userinfo);
  要读取UserInfo,挪用StorageHandler的读取办法:
UserInfouserinfo=newUserInfo();
StorageHandler.load(userinfo);
  如许,必要读取或保留数据的类完整不用触及底层的RMS操纵,年夜年夜简化了使用程序的计划,加强了源代码的可复用性与可保护性。

再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。
兰色精灵 该用户已被删除
沙发
发表于 2015-1-20 16:42:14 来自手机 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-20 19:39:16 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
柔情似水 该用户已被删除
地板
发表于 2015-1-24 13:46:57 来自手机 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
再现理想 该用户已被删除
5#
发表于 2015-1-30 22:49:58 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
小妖女 该用户已被删除
6#
发表于 2015-2-6 16:29:45 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
飘飘悠悠 该用户已被删除
7#
发表于 2015-2-11 03:53:50 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
蒙在股里 该用户已被删除
8#
发表于 2015-3-1 20:40:15 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
精灵巫婆 该用户已被删除
9#
发表于 2015-3-10 23:18:48 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
谁可相欹 该用户已被删除
10#
发表于 2015-3-17 12:45:48 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
若天明 该用户已被删除
11#
发表于 2015-3-24 10:10:18 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 16:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表