自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Max

  • 博客(80)
  • 收藏
  • 关注

翻译 Day17-52.Enumerated types

枚举类型在JavaSE5中添加了一个看似很小的特性,即enum关键字,它使得我们在需要群组并使用枚举类型集时,可以很方便地处理。在此之前,你需要创建一个整型常量集,但是这些枚举值并不会必然地将其自身的取值限制在这个常量集的范围之内,因此它们显得更有风险,且更难以使用。枚举类型属于非常普遍的需求,C、C++和其他许多语言都已经拥有它了。在JavaSE5之前

2017-09-08 17:45:02 336

翻译 Day16-51.Array initialization

数组初始化数组只是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。数组是通过方括号下表操作符[]来定义和使用的。要定义一个数组,只需在类型名后加上一对方括号即可:int[] a1;方括号也可以置于标识符后面:int a1[];两种格式的含义是一样的,后一种格式符合C和C++程序员 的习惯。不过,前一

2017-09-05 17:59:59 434

翻译 Day16-50.Constructor initialization

构造器初始化可以用构造器来进行初始化。在运行时刻,可以调用方法或执行某些动作来确定初值,这为编程带来了更大的灵活性。但要牢记:无法阻止自动初始化的进行,它将在构造器被调用之前。因此,加入使用下述代码://: initialization/Counter.javapublic class Counter { int i; Counter(

2017-09-04 18:13:28 320

翻译 Day15-49.Member initialization

成员初始化Java尽力保证:所有变量在使用前都能得到恰当的初始化。对于方法的局部变量,Java以编译时错误的形式来贯彻这种保证。所以写成:void f(){ int i; i++;//Error - -i not initialized}就会得到一条出错消息,告诉你i可能尚未初始化。当然,编译器也可以为i赋一个默认值,但是未初始化的

2017-09-01 17:34:40 344

翻译 Day15-48.Cleanup/finalization and garbage collection

清理:终结处理和垃圾回收程序员都了解初始化的重要性,但常常会忘记同样也重要的清理工作。毕竟,谁需要清理一个int呢?但在使用程序库时,把一个对象用完后就“弃之不顾”的做法并非总是安全的。当然,Java有垃圾回收器负责回收无用对象占据的内存资源。但也有特殊情况:假定你的对象(并非使用new)获得了一块特殊的内存区域,由于垃圾回收器只知道释放哪些经由

2017-09-01 17:33:12 323

翻译 Day14-47.The this keyword

this关键字如果有同一类型的两个对象,分别是a和b。你可能想知道,如何才能让这两个对象都能调用peel()方法呢://: initialization/BananaPeel.javaclass Banana { void peel(int i) { /* ... */ } }public class BananaPeel { public static void ma

2017-09-01 09:57:57 309

翻译 Day14-46.Default constructors

默认构造器如前所述,默认构造器又名无参构造器是没有形式参数的——它的作用是构建一个默认对象。如果你写的勒种没有构造器,则编译器会自动帮你创建一个默认构造器。例如://: initialization/DefaultConstructor.javaclass Bird {}public class DefaultConstructor { public stati

2017-08-31 17:58:27 353

翻译 Day14-45.Method overloading

方法重载任何程序语言都具备的一项重要特性就是对名字的运用。当创建一个对象时,也就给此对象分配到的存储空间取了一个名字。所谓方法则是给某个动作取的名字。通过使用名字,你可以引用所有的对象和方法。名字起的好可以使系统更易于理解和修改。就好比写散文—---目的是让读者易于理解。将人类语言中存在细微差别的概念“映射”到程序设计语言中时,问题随着产生。

2017-08-31 17:55:55 386

翻译 Day14-44.Initialization & Cleanup

随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一。初始化和清理(cleanup)正是涉及安全的两个问题。许多C程序的错误都源于程序员忘记初始化变量。特别是在使用程序库时,如果用户不知道如何初始化库的构件(或者是用户必须进行初始化的其他东西),更是如此。清理也是一个特殊问题,当使用完一个元素时,它对你也就不会有什么影响了,所以很容易把它忘记。

2017-08-31 17:55:09 260

翻译 Day13-43.switch

switchswitch有时也被划归为一种选择语句。根据整数表达式的值,swith语句可以从一系列代码中选出一段去执行。它的格式如下:switch(integral-selector ){ case intergral-value1:statement;break; case intergral-value2:statement;break; case intergr

2017-08-25 16:45:22 214

翻译 Day13-42.The infamous “goto”

臭名昭著的goto编程语言中一开始就有goto关键词。事实上,goto起源于汇编语言的程序控制:“若条件A成立,则跳到这里;否则跳到那里”。如果阅读由编译器最终生成的汇编代码,就会发现程序控制里包含了许多跳转。(Java编译器生成它自己的“汇编代码”,但是这个代码是运行在Java虚拟机上的,而不是直接运行在CPU硬件上。)goto语句是在源码级上的跳转,这使其招致了

2017-08-25 16:36:41 214

翻译 Day12-41.break and continue

在任何迭代语句的主体部分,都可用break和continue控制循环的流程。其中,break用于强行退出循环,不执行循环中剩余的语句。而continue则停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。下面这个程序向大家展示了break和continue在for和while循环中的例子://: control/BreakAndContinue.java//

2017-08-24 17:42:29 280

翻译 Day12-40.return

在Java中有多个关键词表示无条件分支,它们只是表示这个分支无需任何测试即可发生。这些关键字包括return、break、continue和一种与其他语言中的goto类似的跳转到标号语句的方式。return关键词有两方面的用途:一方面指定一个方法返回什么值(假设它没有void返回值),另一方面它会导致当前的方法退出,并返回那个值。可据此改写上面的test()方法,使

2017-08-24 17:41:57 245

翻译 Day12-39.Foreach syntax

foreach 语法Java SE5引入了一种新的更加简洁的for语法用于数组和容器(在第16章与第17章中将更多的讨论这种语法),即foreach语法,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。例如,假设有一个float数组,我们要选取该数组中的每一个元素://: control/ForEachFloat.javaimport

2017-08-24 17:40:17 255

翻译 Day11-38.Iteration

迭代while、do-while和for用来控制循环,有时将它们划分为迭代语句(iteration statement)。语句会重复执行,直到起控制作用的布尔表达式(Booleanexpression)得到“假”的结果为止。while循环的格式如下:while(Boolean-expression)statement在循环刚开始时,会计算一次布尔表达

2017-08-24 17:39:44 203

翻译 Day11-37.if-else

if-else语句是控制程序流程的最基本的形式。其中的else是可选的,所以可按下述两种形式来使用if:if(Boolean-expression)statement或if(Boolean-expression)statementelsestatement布尔表达式必须产生一个布尔结果,statement指用分号结尾的简单语句

2017-08-23 18:04:46 229

翻译 Day11-36.Controlling Execution

控制执行流程就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并作出选择。在Java中,你要使用执行控制语句来作出选择。Java使用了C的所有流程控制语句,所以如果读者以前用过C或C++变成,那么应该非常熟悉了。大多数过程型编程语言都具有某些形式的控制语句,它们通常在各种语言间交迭的。在Java中,涉及的关键字包括if-else/while/do-wh

2017-08-23 18:04:13 256

翻译 Day10-35.A compendium of operators

操作符小结下面这个例子向大家展示了哪些基本数据类型能进行哪些特定的运算。基本上这是同一个不断重复的程序,只是每次使用了不同的基本类型。文件编译时不会报错,因为那些会导致编译失败的行已用//!注释掉了、//: operators/AllOps.java// Tests all the operators on all the primitive data

2017-08-23 15:13:33 242

翻译 Day10-34.Java has no “sizeof”

在C和C++中,sizeof操作符可以告诉你为数据项分配的字节数。在C和C++中,需要使用sizeof()的最大原因是为了“移植”。不同的数据类型在不同的机器上可能有不同的大小,所以在进行一些与存储空间有关的运算时,程序员必须获悉那些类型具体有多大。例如,一台计算机可用32位来保存整数,而另一台只用16位保存。显然,在第一台机器中,程序可保存更大的值。可以想

2017-08-22 17:03:59 270

翻译 Day10-33.Casting operators

类型转换操作符类型转换(cast) 的原意是“模型铸造”。在适当的时候,Java会将一种数据类型自动转换成另一种。例如,假设我们为某浮点变量赋以一个整数值,编译器会将int自动转换成float。类型转换运算允许我们显式地进行这种类型的转换,或者在不能自动进行转换的时候强制进行类型转换。要想执行类型转换,需要将希望得到的数据类型置于圆括号内,放在要进行类型

2017-08-22 17:02:23 284

翻译 Day10-32.Common pitfalls when using operators

使用操作符时常犯的错误使用操作符时一个常犯的错误就是,即使对表达式如何计算有点不确定,也不愿意使用括号。这个问题在Java中仍然存在。在C和C++中,一个特别常见的错误如下:while(x= y){//….}程序员很明显是想测试是否“相等”(==),而不是进行赋值操作。在C和C++中,如果y是一个非零值,name这种赋值的

2017-08-22 17:01:49 247

翻译 Day10-31.String operator + and +=

字符串操作符+和+=这个操作符在Java中有一项特殊用途:连接不同的字符串。这一点已经在前面的例子中展示过了。尽管与+和+=的传统使用方式不太一样,但是我们还是很自然地使用这些操作符来做这件事情。这项功能用在C++中似乎是个不错的注意,所以引入了操作符重载(operator overloading)机制,以便C++程序员可以为几乎所有操作符增加功能但

2017-08-22 17:01:14 279

原创 单步转或咨询

接续坐席后,坐席可以单步转或咨询一个VoiceXML编写的业务单步转或咨询一个VoiceXML脚本时,主叫号码的格式为:实际的主叫号码**随路数据索引,ZXVXI会根据随路数据索引向ACD取随路数据。本主题包含下列各节:单步转咨询相关相互体单步转用户1呼叫触发业务脚本1进行排队接续坐席,接续成功后坐席单步转到业务2,此时,坐席挂机

2017-08-18 18:10:04 543

原创 演练:报号业务

演练:报号业务转接坐席成功后,一般会对主叫播报其所需要的电话号码,简称“报号”。坐席进行自动报号一般有两种实现方式。一种是呼通坐席后,坐席将需要播报的号码设置到随路数据中,在坐席挂机后,脚本获取随路数据,解析出随路数据中的号码,进行播报。该种方式请参照坐席挂机回业务。另一种是呼通坐席后,坐席单步转到一个报号的自动业务进行报号,本章节是

2017-08-18 18:01:44 284

原创 与呼叫中心的集成

本章节主要介绍ZXVXI对VoiceXML扩展的Object标签与呼叫中心的集成应用。其功能主要包括:1.排队、接续呼叫中心的坐席(就是之前的排队、接续坐席)http://blog.csdn.net/oqqxoxo123/article/details/766905152.通过操作随路数据与呼叫中心进行数据传递3.呼叫中心的坐席可以单步转或咨询VoiceXML的自动

2017-08-18 18:00:18 434

翻译 Day9-30.Ternary if-else operator

三元操作符if-else三元操作符也称为条件操作符,它显得比较特别,因为它有三个操作数;但它却是属于操作符的一种,因为它最终也会生成一个值,这与本章下一节中介绍的普通的if-else语句是不同的。其表达式采取下述形式:boolean-exp ?value0:value1如果boolean-exa(布尔表达式)的结果为true,就计算value0,而且这个计算

2017-08-18 17:59:21 315

翻译 Day9-29.Shift operators

移位操作符移位操作符操作的运算对象也是二进制的“位”。移位操作符只可用来处理整数类型(基本类型的一种)。左移位操作符(“有符号”右移位操作符(>>)则按照操作符右侧制定的位数将操作符左边的操作数向右移动。“有符号”右移位操作符使用“符号扩展”:若符号为正,则在高位插入0;若符号位负,则在高位插入1.Java中增加了一种“无符号”右移位操作符(>>>)

2017-08-18 17:06:28 304

翻译 Day9-28.Bitwise operators

按位操作符按位操作符用来操作证基本数据类型中的单个“比特”(bit),即二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。按位操作符来源于C语言面向底层的操作,在这种操作中经常需要直接操纵硬件,设置硬件寄存器内的二进制位。Java的设计初衷是嵌入电视机机顶盒内,所以这种面向底层的操作仍被保留了下来。但是,人们可能不会

2017-08-18 17:05:46 227

原创 操作当前的呼叫ID

获取当前的CallID标签属性 说明name 对象名称classid method://ngcc/Other/GetCurCallID(D) method://cm-ngcc/Other/GetCurCallID(ca)参数参数名 说明CallID 当前呼叫的CallID、(OUT) 可获取到当前的CallID、返回值通过name属性来

2017-08-17 18:04:57 493

原创 定时器标签

创建定时器标签创建定时器,超时事件在WaitEvent标签中获取。属性属性名说明name 对象名称classidmethod://function/CreateTimer参数参数名 说明Interval 定时器超时相对时间(IN)整数型,单位秒级LoopTimes 定时器循环次数(IN)整数

2017-08-17 17:26:59 378

翻译 Day8-27.Literals

直接常量一般来说,如果在程序里使用了“直接常量”,编译器可以准确的直到要生成什么样的类型,但有时候确实模棱两可的。如果发生这种情况,必须对编译器加以适当的“指导”,用与直接量相关的某些字符来额外增加一些信息。下面这段代码向大家展示了这些字符。//:operators/Literals.javaimport static net.mindview.util.

2017-08-17 15:06:14 233

翻译 Day8-26.Logical operators

逻辑操作符逻辑操作符&& 、||、! 能根据参数的逻辑关系,生成一个布尔值(true或false)//:operators/Bool.java//Relational and logical operators.import java.util.*;import static net.mindview.util.Print.*;public c

2017-08-17 15:05:07 259

翻译 Day8-25.Relational operators

关系操作符关系操作符生成的是一个boolean(布尔)结果,它们计算的是操作数的值之间的关系。如果关系是真实的,关系表达式会生成true(真);如果关系不真实,则生成false(假)。关系操作符包括,=,==以及不等于!=.等于和不等于适用于所有的基本数据类型,而其他比较符不适用于boolean类型。因为boolean值只能为true或false,“大于”和

2017-08-17 15:03:27 335

翻译 Day7-24.Auto increment and decrement

自动增递和递减和c类似,java提供了大量的快捷运算。这些快捷运算使编码更方便,同时也使得代码更容易阅读,但是有时可能使代码阅读起来更困难。递增和递减运算是两种相当不错的快捷运算(常称为“自动递增”和“自动递减”运算)。其中,递减操作符是”—”,意为“减少一个单位”;递增操作符是“++”,意为“增加一个单位”。举个例子来说,假设a是一个int(整数)值,则表达式++a就等价

2017-08-17 15:02:37 249

原创 对视频的支持

对视频的支持ZXVXI对VoiceXML扩展支持的视频包括三个部分:视频呼叫视频会议视频叠加文字录制视频视频呼叫:在使用标签或扩展的callout标签进行转接时,用标签设置isVideo的属性为1.具体实例如下: 初始呼叫:

2017-08-16 18:00:36 311

翻译 Day7-23.Mathematical operators

算术操作符java的基本算术操作符与其他大多数程序设计语言是相同的。其中包括加号(+)、减号(-)、除号(/)、乘号(*)以及取模操作符(%,它从整数除法中产生余数)。整数除法会直接去掉结果的小数位,而不是四舍五入地圆整结果。Java也使用一种来自C和C++的简化符号同时进行运算与赋值操作。这用操作符后紧跟一个等号来表示,它对于Java中的所有操作符都适用,

2017-08-15 18:36:46 236

翻译 Day7-22.Assignment

赋值赋值使用操作符“=”。它的意思是“取右边的值(即右值),把它复制给左边(即左值)”。右值可以是任何常数、变量或者表达式(只要它能生成一个值就行)。但左值必须是一个明确的、已命名的变量。也就是说,必须有一个物理空间可以存储等号右边的值。举例来说,可将一个常熟赋给一个变量:a=4;但是不能把任何东西赋给一个常数,常数不能作为左值(比如不能说4

2017-08-15 18:36:13 207

翻译 Day7-21.Precedence

当一个表达式中存在多个操作符时,操作符的优先级就决定了各部分的计算顺序。Java对计算顺序做了特别的规定。其中,最简单的规则就是先乘除后加减。程序员经常会忘记其他优先级规则,所以应该用括号明确规定计算顺序。例如以下语句中的(1)和(2)://: operators/Precedence.javapublic class Precedence{publ

2017-08-15 18:35:51 219

翻译 Day7-20.Using Java operators

使用java操作符操作符接受一个或多个参数,并生成一个新值。参数的形式与普通方法调用不同,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的值,这被称为“副作用”。那些能改变其操作数的操作符,最普

2017-08-15 18:35:23 190

翻译 Day7-19.Coding style

编码风格在“Java编程语言编码约定”中,代码风格是这样规定的:类名的首字母要大写;如果类名由几个单词构成,那么把它们并在一起(也就是说,不要用下划线来分割名字),其中每个内部单词的首字母都采用大写形式。例如:class AllTheColorsOfTheRainbow{//…..这种风格有时称作“驼峰风格”。几乎其他所有内容—方法、字段

2017-08-15 18:35:02 198

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除