Java,是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由Sun公司的詹姆斯·高斯林(James Gosling)等人于1990年代初开发。它最初被命名为Oak,目标设置在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以“Java”的名称正式发布了。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
Java编程语言的风格十分接近C++语言。继承了C++ 语言面向对象技术的内核,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。在Java SE 15版本中Java又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java不同于一般的编译运行计算机语言和解释执行计算机语言。它首先将源代码编译成字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了Java程序的运行效率。但在J2SE142发布后,Java的运行速度有了大幅提升。
与传统程序不同Sun公司在推出Java之际就将其作为一种开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
脚本对于大多数程序员来说应该不陌生了吧。今天我们就一起来了解一下,在使用java编程开发语言编写API脚本的时候都需要注意哪些问题。
Java脚本化API为谁准备
脚本语言的一些有用的特性是:
方便:大多数脚本语言都是动态类型的。您通常可以创建新的变量,而不声明变量类型,并且您可以重用变量来存储不同类型的对象。此外,脚本语言往往会自动执行许多类型的转换,例如,必要时将数字10转换为“10”。
开发快速原型:您可以避免编辑编译运行周期,只使用“编辑运行”!
应用扩展/定制:你可以“具体化”的部分应用程序,例如一些配置脚本,业务逻辑/规则和财务应用中的数学表达式。
为应用添加命令行模式,用于调试、运行时配置/部署时间。现在大多数应用程序都有一个基于Web的GUI配置工具。但是系统管理员/部署人员常常喜欢命令行工具。一个“标准”的脚本语言可以用来实现这个目的,而不是发明特设的脚本语言。
Java脚本API是一种独立于框架的脚本语言,使用来自于Java代码的脚本引擎。通过java脚本API,可以使用Java语言编写定制/可扩展的应用程序并将自定义脚本语言选择留给终用户。Java应用程序开发者不需要在开发过程中选择扩展语言。如果你使用JSR-223API来编写应用,那么你的用户可以使用任何JSR-223兼容的脚本语言。
脚本包
Java脚本功能是在javaxscript包中。这是一个比较小的,简单的API。脚本的出发点是ScriptEngineManager类。一个ScriptEngineManager对象可以通过jar文件的服务发现机制发现脚本引擎。它也可以实例化脚本引擎来解释使用特定的脚本语言编写的脚本。
脚本变量
当你的java应用程序嵌入脚本引擎和脚本,你可能希望将您的应用程序对象为全局变量暴露于脚本中。这个例子演示了如何将您的应用程序对象作为全局变量暴露于脚本中。我们在应用程序中创建一个javaioFile对象作为全局变量,名称是file。沙河电脑培训发现该脚本可以访问变量,例如,它可以调用它的公共方法。注意访问java对象、领域和方法的语法依赖于脚本语言。JavaScript支持“自然”的类似java的语法。
正则表达式即可
public class Du {
public static void main(String[] args) {
String str = "865923366779";
String telephoneNum = parseTelephoneNumber(str);
Systemoutprintln(telephoneNum);
}
private static String parseTelephoneNumber(String str) {
String telephone = null;
if(strsubstring(0, 2)matches("0[12]")){
telephone = strsubstring(0, 3) + "-" + strsubstring(4);
}else if(strcharAt(0) == '8'){
if(strsubstring(1, 4)matches("[16]0[12]")){
telephone = strsubstring(0, 2) + "-" + strsubstring(2, 5) + "-" + strsubstring(5);
}else if(strsubstring(1, 4)matches("[16]0[^12]")){
telephone = strsubstring(0, 2) + "-" + strsubstring(2, 6) + "-" + strsubstring(6);
}else if(strsubstring(1, 3)matches("[16][^0]")){
telephone = strsubstring(0, 2) + "-" + strsubstring(2, 5) + "-" + strsubstring(5);
}
}else if(strmatches("0[^12]\\d+")){
telephone = strsubstring(0, 4) + "-" + strsubstring(4);
}else{
Systemoutprintln("Invalid telephone number!");
}
return telephone;
}
}
----------05923366779
0592-3366779
-----------------865923366779
86-592-3366779
--------------8602012345678
86-020-12345678
/ /项目名称:Car_Demo
/ /说明:参与实施汽车语音控制
/ /库:CMacro1016lib
/ / bsrv222SDLlib
/ / sacmv26e。库
/ /组成文件:mainc中
/ / Flashasm,hardwareasm,ISRasm
/ /的hardwareh,s480h,hardwareinc
> / /硬件连接:IOA0 ----- KEY1
/ / IOA1 ----- KEY2
/ / IOA2 ----- KEY3
/ / IOB8 ---- - 远期
/ / IOB9 -----倒车
/ / IOB10 ----左
/ / IOB11 ----右转
/ /保养纪录:2005年-12-12 V10
/ / ===================================== ===================
#包括“s480h”
#包括“bsrsdh”
BR />#定义P_IOA_Data(挥发性无符号整数)0x7000处
#定义P_IOA_Dir(挥发性无符号整数)0x7002
#定义P_IOA_Attrib(挥发性无符号整数)0x7003
#定义P_IOB_Data(挥发性无符号整型)0x7005
#定义P_IOB_Dir(挥发性无符号整数)0x7007
#定义P_IOB_Attrib(挥发性无符号整数)0x7008
#定义P_TimerA_Data(挥发性无符号整数)0x700A
>#定义P_TimerA_Ctrl(挥发性无符号整数)0x700B
#定义P_TimerB_Data(挥发性无符号整数)0x700C
#定义P_TimerB_Ctrl(挥发性无符号整数)0x700D
#定义P_Watchdog_Clear(挥发性无符号整型)0x7012
#定义P_INT_Mask(挥发性无符号整数)0x702D
#定义P_INT_Clear(挥发性无符号整数)0x7011
#定义名_ID量0x100
#定义COMMAND_GO_ID 0x101
#定义COMMAND_BACK_ID 0x102
#定义COMMAND_LEFT_ID #定义COMMAND_RIGHT_ID量0x104
#定义S_NAME 0 / /给我一个名字吧
#定义S_ACT1 1 / /前进
#定义S_ACT2 2 / /倒车,请注意
#定义S_ACT3 3 / /左
#定义S_ACT4 4 / /右转
#定义S_RDY 5 / /是啊
#定义S_AGAIN 6 / /请重复
#定义S_NOVOICE 7 / /没有听到任何声音
#定义S_CMDDIFF 8 / /代码字说啊
#定义S_NOISY 8 / /说什么暗语呀
#定义S_START 9 / /准备开始识别
#定义S_GJG 10 / /诱拐绑架
#定义S_DCZY 11 / /倒车,请注意
的extern unsigned int类型BSR_SDModel [100]; / /外部变量BSR_SDModel [100],读者自带
外部无效F_FlashWrite1Word(unsigned int类型地址,无符号整型值);
外部无效F_FlashErase(无符号整数部门);
无符号整型uiTimeset = 3; / /运行时间定时器,调节参数控制运行时间
无符号整型uiTimecont; / /运行时定时
/ / ================================== ===========================
/ /语法:无效延迟();
/ /功能:延时
/ /参数:无
/ /返回值:无
/ / ================ =============================================
无效延迟()
{
无符号整数I;
就(i = 0; I <0X3FFF,我+ +)
{
P_Watchdog_Clear = 0X0001;
/ / ============================== ===============================
/ /语法:无效PlaySnd(无符号SndIndex,无符号DAC_Channel);
/ /功能:语音播放功能
/ /参数:SndIndex播放语音资源索引号
/ / DAC_Channel播放通道选择
/ /返回值:无
> / / =============================================== ============== 无效PlaySnd(无符号SndIndex,无符号DAC_Channel)
{
BSR_StopRecognizer(); / /停止识别
SACM_S480_Initial(1); / /初始化为自动
SACM_S480_Play玩(SndIndex,DAC_Channel,3); / /开始播放语音
同时(!(SACM_S480_Status()&0X0001)= 0)/ /如果播放完毕?
SACM_S480_ServiceLoop(); / /解码,并填补了队列
P_Watchdog_Clear = 0X0001; / /清除看门狗
}
SACM_S480_Stop(); / /停止播放
BSR_InitRecognizer(BSR_MIC); / /初始化识别器
}
/ / ============================== ===============================
/ /语法:INT TrainWord(INT的wordID,诠释SndID);
/ /功能:训练命令
/ /参数:
/ / SndID命令语气指数
/ /返回值的wordID指令编码:无
/ / ================================================= ============
整数TrainWord(无符号整数的wordID,无符号整型SndID)
{
int结果;
PlaySnd(SndID,3); / /导游培训,打相应的动作
指令,而(1)
{
结果= BSR_Train(的wordID,BSR_TRAIN_TWICE); / /训练两次,得到训练成绩
如果(结果== 0)打破;
开关(结果)
{
案例-1:/ /未检测到声音
PlaySnd(S_NOVOICE,3);
返回-1;
案例-2:/ /要培养第二
PlaySnd(S_AGAIN,3);
突破;
案例-3:/ /环境嘈杂
PlaySnd(S_NOISY,3);
返回-3;
案例-4:/ /数据库全
回报-4;
情况-5:/ /检测声音不同
PlaySnd(S_CMDDIFF,3);
返回-5;
情况-6:/ /错误号
回报-6;
默认:
突破;
返回0;
/ / =================================== ==========================
/ /语法:无效TrainSD();
/ /功能:训练功能
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
无效TrainSD()
{
同时(TrainWord(名_ID,S_NAME)= 0!); / /培训名称
而(TrainWord(COMMAND_GO_ID,S_ACT1)= 0);! / /训练第1节动作
同时(TrainWord(COMMAND_BACK_ID,S_ACT2)= 0);! / /培训前两个动作
同时(TrainWord(COMMAND_LEFT_ID,S_ACT3)= 0!); / /训练第3节动作
同时(TrainWord(COMMAND_RIGHT_ID,S_ACT4)= 0!); / /培训4的动作
}
/ / ============================= ================================
/ /语法:无效StoreSD();
/ /实现功能:存储语音模型功能
/ /参数:无
/ /返回值:无
/ / ============ ================================================= BR />无效StoreSD() {unsigned int类型ulAddr,我,命令号,g_Ret;
F_FlashWrite1Word(0xef00,加上0xAAAA);
F_FlashErase(0xe000);
F_FlashErase(0xe100);
F_FlashErase(0xe200);
ulAddr = 0xe000 ;/ /
为(命令号= 0x100的;命令号<0x105;命令号+ +)
{
g_Ret = BSR_ExportSDWord(命令号);
而(g_Ret! = 0)/ /导出模型成功?
g_Ret = BSR_ExportSDWord(命令号);
就(i = 0; I <100; i + +)/ /保存语音模型SD1(0xe000 --- 0xe063)
{
F_FlashWrite1Word(ulAddr,BSR_SDModel [I]) ;
ulAddr + = 1;
/ / ========================= ====================================
/ /语法:无效StoreSD();
/ /功能:承载语音模型函数
/ /参数:无
/ /返回值:无 / / ============= ================================================ 无效LoadSD()
{unsigned int类型 P,K,JK,惩戒,g_Ret;
P =(INT )0xe000;
为(JK = 0; JK <5; JK + +)
{
为(K = 0,K <100,K +)
{
RET = P;
BSR_SDModel [K] = RET; / /加载语音模型
P + = 1;
g_Ret = BSR_ImportSDWord();
而(g_Ret! = 0)/ /加载成功的模式?
g_Ret = BSR_ImportSDWord();
/ / ============================== ===============================
/ /语法:无效的GoAhead();
/ /功能:正向功能
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
无效的GoAhead()/ /向前
PlaySnd(S_ACT1,3); / /提示
P_IOB_Data = 0X0100; / /前进
P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作
__ asm的(“INT FIQ,IRQ”);
uiTimecont = 0;
/ / ======================================= ======================
/ /语法:无效的备份();
/ /功能:返回函数
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
无效的备份()/ /向后
PlaySnd(S_DCZY,3); / /提示 P_IOB_Data = 0x0200; / /向后
P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作
__ asm的(“INT FIQ,IRQ”);
uiTimecont = 0;
/ / =================================== ==========================
/ /语法:无效TurnLeft();
/ /功能:打开左侧的功能
/ /参数:无
/ /返回值:无
/ / ============== ===============================================
>无效TurnLeft()/ /左转
PlaySnd(S_GJG,3);
P_IOB_Data = 0x0900; / /右转
延迟(); / /延迟
P_IOB_Data =成0x0500; / /左转
P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作
__ asm的(“INT FIQ,IRQ”);
uiTimecont = 0;
/ / ======================================= ======================
/ /语法:无效TurnRight();
/ /功能:右转子程序
/ /参数:无
/ /返回值:无
/ / ============== ===============================================
>无效TurnRight()/ /右转
PlaySnd(S_GJG,3); / /语音提示
P_IOB_Data =成0x0500; / /左转
延迟(); / /延迟
P_IOB_Data = 0x0900; / /右转
P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作
__ asm的(“INT FIQ,IRQ”);
uiTimecont = 0;
/ / =================================== ==========================
/ /语法:无效停止();
/ /功能:停车功能
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
无效停止()/ /停止
{
P_IOB_Data值= 0x0000; / /停车
PlaySnd(S_RDY,3); / /语音提示
}
/ / =============================== ==============================
/ /语法:BSR无效(无效);
/ /功能:识别功能
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
BSR无效(无效)
{
int结果; / /识别结果存储
结果= BSR_GetResult(); / /得到识别结果
如果(结果> 0)/ /语音触发?
P_IOB_Data值= 0x0000; / /临时停车
开关(结果)
{
案名_ID:/ /识别命令
停止(名称); / /停机位
突破;
情况COMMAND_GO_ID:/ /找出第一个命令
的GoAhead(); / /执行一个动作:直
突破; 案例COMMAND_BACK_ID:/ /找出第二个命令
备份(); / /执行动作二:倒车
突破;
情况COMMAND_LEFT_ID:/ /找出第三个命令
TurnLeft(); / /执行三个动作:向左转
突破;
情况COMMAND_RIGHT_ID:/ /找出第四个命令
TurnRight(); / /执行动作四:右转
突破;
默认:
突破;
/ / ============================= ================================
/ /语法:IRQ5无效(无效);
/ /功能:中断服务子程序
/ /参数:无
/ /返回值:无
/ / ============== ===============================================
> IRQ5无效(无效)的__attribute__((ISR)); / /运动定时控制
IRQ5无效(无效)
{
如果(uiTimecont + + == uiTimeset)
{
P_IOB_Data值= 0x0000;
P_INT_Clear = 0X0004;
/ / =================================== ==========================
/ /语法:INT主要(无效);
/ /功能:主要功能
/ /参数:无
/ /返回值:无
/ / ============== ===============================================
>国际主要(无效)
{unsigned int类型BS_Flag; / /火车标志
P_IOA_Dir =为0xFF00; / /初始化IOA,IOA07下拉输入
P_IOA_Attrib =为0xFF00;
P_IOA_Data值= 0x0000;
P_IOB_Dir = 0x0f00; / /初始化IOB,IOB811与输出
P_IOB_Attrib = 0x0f00;
P_IOB_Data值= 0x0000;
BSR_DeleteSDGroup(0); / /初始化存储器RAM
BS_Flag = (unsigned int类型)0xe000; / /读取内存单元0xe000
如果(BS_Flag == 0xFFFF的)/ /没有受过训练(0xe000内容0xFFFF的)
{
TrainSD(); / /培训
StoreSD(); / /存储的训练结果(语音模式)
其他/ /训练(0xe000内容0x0055)
{
LoadSD(); / /语音识别模型加载
}
PlaySnd(S_START,3); / /开始识别
BSR_InitRecognizer(BSR_MIC)提示; / /初始化识别器
同时(1)
{
BSR();
如果(( P_IOA_Data)&0X0004)/ /如果再培训
{
F_FlashErase(0xe000);
而(1);
/ / ========================= ===================================
/ /文件名:flashasm
> / /实现功能:SPCE061 32K闪存读卡器
/ /保养纪录:2003-6-9 V1 0
/ / ================= ===========================================
>。 INCLUDE hardwareinc
。 DEFINE C_FLASH_SIZE为0x8000
。 DEFINE C_FLASH_BLOCK_SIZE量0x100
。 DEFINE C_FLASH_MATCH加上0xAAAA
。 DEFINE C_FLASH_PAGE_ERASE 0x5511 / /擦除一个
。 DEFINE C_FLASH_MASS_ERASE 0x5522 / /
。 DEFINE C_FLASH_1WORD_PGM 0x5533 / /写一个字
。 DEFINE C_FLASH_SEQUENT_PGM 0x5544 / /写多个字
。 DEFINE C_FLASH_MAIN_BLOCK为0x5555
。 DEFINE C_FLASH_INFORM_BLOCK 0x5566
。代码
/ / =========================================== ================================================= BR /> / /语法:无效F_FlashWrite1Word(INT地址,int值)
/ /描述:写一个字到FLASH
/ /参数:要写入的地址内存中的数据写入值地址数据
/ /返回:无
/ / ================================== ================================================== ===========
。公众_F_FlashWrite1Word
DEFINE P_Flash_Ctrl 0x7555
_F_FlashWrite1Word: PROC
推基点至[SP]
BP = SP +1
R1 = C_FLASH_MATCH / / AAAA
> [P_Flash_Ctrl] = R1
R1 = C_FLASH_1WORD_PGM / / 5533
[P_Flash_Ctrl] = R1
R1 = [BP +4] / / flash地址
R2 = [BP + 4 ] / /数据
[R1 = R2
流行BP从[SP]
。 ENDP
/ / ======================================= ================================================== ====
/ /语法:F_FlashWrite(INT部门,诠释及次数,int的大小)
/ /说明:顺序写更多的字
/ /参数:扇区是起始地址将数据写入写入和NUM-大小的写入数据数
/ /返回的数据:无
/ / ================== ================================================== =========================
公众_F_FlashWrite
_F_FlashWrite: PROC
推基点至[SP]
BP = SP +1
R1 = [BP +4] / / flash基地址
R2 =
/数据/> R3 = [BP +5] / /多字节
R4 = C_FLASH_MATCH / / AAAA
[P_Flash_Ctrl] = R4
L_FlashWriteLoop:
R4 = C_FLASH_SEQUENT_PGM / / 5544
[P_Flash_Ctrl] = R4 R4 = [R2 +]
[R1 + +] = R4
R3 - = 1
JNZ L_FlashWriteLoop
[P_Flash_Ctrl] = R3 / /写从最终
d出基点[SP]
RETF 。 ENDP
/ / ======================================= ================================================== ===
/ /语法:无效F_FlashErase(部门)
/ /说明:擦除256字节
/ /参数:起始地址扇区擦除页
/ /返回:无
/ / ============================================ ================================================ 公共_F_FlashErase
_F_FlashErase: PROC
推基点至[SP]
BP = SP + 1
R1 = C_FLASH_MATCH / / AAAA
[P_Flash_Ctrl] = R1
R1 = C_FLASH_PAGE_ERASE / / 5511
[P_Flash_Ctrl] = R1
R1 = [BP +4] / /擦除一个
[R1] = R1
从[SP]
。 ENDP
。完
/ / ======================================= =====================
/ /文件名:ISRasm
/ /功能:语音播放/识别中断服务
> / /保养纪录:2003-9-9 V10
/ / ============================== ==============================
包括hardwareinc
公共_FIQ;。
外部_BSR_FIQ_Routine
外部F_FIQ_Service_SACM_S480
_FIQ:
推R1,R5为[SP]; / /注册推来保护
R1 = C_FIQ_TMA;
[P_INT_Clear] = R1;
致电_BSR_FIQ_Routine / /语音识别中断服务
致电F_FIQ_Service_SACM_S480; / /语音播放中断服务
流行R1,R5从[SP];
RETI;
以上就是关于什么是JAVA语言程序设计全部的内容,包括:什么是JAVA语言程序设计、java编程开发语言编辑脚本应该怎么做、用Java语音实现一小程序,如输入05923366779,输出0592-3366779。而且输入865923366779,输出86-592-33667等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)