灌溉梦想,记录脚步

关于Java初学者需要了解的几个基础问题

对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。

问题一:我声明了什么!

String s = "Hello world!";

许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。

这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hello world!"这个String类型的对象。这就是真正发生的事情。我们并没有声明一个String对象,我们只是声明了一个只能指向String对象的引用变量。所以,如果在刚才那句语句后面,如果再运行一句:

String string = s;

我们是声明了另外一个只能指向String对象的引用,名为string,并没有第二个对象产生,string还是指向原来那个对象,也就是,和s指向同一个对象。

问题二:"=="和equals方法究竟有什么区别?

==操作符专门用来比较变量的值是否相等。比较好理解的一点是:

int a=10;
int b=10;

则a==b将是true。

但不好理解的地方是:

String a=new String("foo");
String b=new String("foo");

则a==b将返回false。

根据前一帖说过,对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。a和b都使用了new操作符,意味着将在内存中产生两个内容为"foo"的字符串,既然是“两个”,它们自然位于不同的内存地址。a和b的值其实是两个不同的内存地址的值,所以使用"=="操作符,结果会是false。诚然,a和b所指的对象,它们的内容都是"foo",应该是“相等”,但是==操作符并不涉及到对象内容的比较。

对象内容的比较,正是equals方法做的事。

看一下Object对象的equals方法是如何实现的:

boolean equals(Object o){
return this==o;
}

Object对象默认使用了==操作符。所以如果你自创的类没有覆盖equals方法,那你的类使用equals和使用==会得到同样的结果。同样也可以看出,Object的equals方法没有达到equals方法应该达到的目标:比较两个对象内容是否相等。因为答案应该由类的创建者决定,所以Object把这个任务留给了类的创建者。

看一下一个极端的类:

Class Monster{
private String content;

boolean equals(Object another){ return true;}
}

我覆盖了equals方法。这个实现会导致无论Monster实例内容如何,它们之间的比较永远返回true。

所以当你是用equals方法判断对象的内容是否相等,请不要想当然。因为可能你认为相等,而这个类的作者不这样认为,而类的equals方法的实现是由他掌握的。如果你需要使用equals方法,或者使用任何基于散列码的集合(HashSet,HashMap,HashTable),请察看一下java doc以确认这个类的equals逻辑是如何实现的。

问题三:String到底变了没有?

没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。请看下列代码:

String s = "Hello";
s = s + " world!";

s所指向的对象是否改变了呢?从本系列第一篇的结论很容易导出这个结论。我们来看看发生了什么事情。在这段代码中,s原先指向一个String对象,内容是"Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。

通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改,或者说,不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为String对象建立之后不能再改变,所以对于每一个不同的字符串,都需要一个String对象来表示。这时,应该考虑使用StringBuffer类,它允许修改,而不是每个不同的字符串都要生成一个新的对象。并且,这两种类的对象转换十分容易。

同时,我们还可以知道,如果要使用内容相同的字符串,不必每次都new一个String。例如我们要在构造器中对一个名叫s的String引用变量进行初始化,把它设置为初始值,应当这样做:

public class Demo {
private String s;

public Demo {
s = "Initial Value";
}

}

而非

s = new String("Initial Value");

后者每次都会调用构造器,生成新对象,性能低下且内存开销大,并且没有意义,因为String对象不可改变,所以对于内容相同的字符串,只要一个String对象来表示就可以了。也就说,多次调用上面的构造器创建多个对象,他们的String类型属性s都指向同一个对象。
上面的结论还基于这样一个事实:对于字符串常量,如果内容相同,Java认为它们代表同一个String对象。而用关键字new调用构造器,总是会创建一个新的对象,无论内容是否相同。

至于为什么要把String类设计成不可变类,是它的用途决定的。其实不只String,很多Java标准类库中的类都是不可变的。在开发一个系统的时候,我们有时候也需要设计不可变类,来传递一组相关的值,这也是面向对象思想的体现。不可变类有一些优点,比如因为它的对象是只读的,所以多线程并发访问也不会有任何问题。当然也有一些缺点,比如每个不同的状态都要一个对象来代表,可能会造成性能上的问题。所以Java标准类库还提供了一个可变版本,即StringBuffer。

3G催生未来三年五百亿元应用软件市场

3G是中国未来通信建设的重点。随着3G发展趋势逐渐明朗化,为了有效地对3G网络进行支撑和管理,针对3G业务的IT系统建设也逐渐成为运营商信息化的重点建设项目。BSS、OSS和MSS将成为这次建设的主要方向,今后相当长的一段时间内,计费账务系统、经营分析与决策系统、网络资源管理系统、客户关系管理系统等将成为国内电信运营商建设或规划的重点。根据计世资讯调查显示,2007~2011年,在3G建设全面展开后,电信应用软件市场的市场规模累积将达到将近500亿元的市场份额。

3G业务对于电信应用系统的性能提出了更高的要求,对于系统要求提高的同时,也对市场竞争格局起到了一定的净化作用。从目前市场格局来看,电信应用软件市场的市场集中度逐步提高,一些实力强劲的企业逐步通过兼并和扩大业务范围获得了更多的市场份额,而一些实力较弱的企业逐渐开始淡出市场。从3G业务的需求来看,电信应用软件市场在面临新一轮增长的同时,也将重新面临一次洗牌。从计世资讯《2007年电信应用软件市场排名》来看,排名前十位的企业市场尚未占据30%的市场份额,市场集中度相比于2006年略有上升,随着电信运营商需求的逐渐提高,市场集中度将继续提升。

从计世资讯相关报告来看,2008年电信应用软件市场将出现以下特点:

一、市场集中度将进一步增强

从2007年市场排名前十位的企业来看,其所占市场份额总计比2006年增长了2%,市场集中度略有增强。一些龙头企业开始一系列的兼并动作来增加市场份额,是市场集中度增高的主要原因。2008年,随着3G建设的全面启动,市场前十位的企业将有希望占据市场30%~40%的份额,市场集中度将进一步加强。

二、技术核心竞争力开始体现

随着电信运营商对于系统性能需求的逐步提高,以及硬件产品价格的下调,电信运营商在电信应用软件上的投入占电信应用系统总投入的比例也逐步提升。技术核心竞争力在竞争中也越发体现出其重要性。从2007年的市场来看,亚信、联创、亿阳信通与联信永益等企业的高速增长与其出色的研发团队有密不可分的关系。2008年,电信应用软件在整体投入中的重要性将进一步增强,研发能力出色的企业将有可能获得更大的市场份额。

三、市场开始考验企业综合竞争力

如果说在2007年以前,电信应用软件市场考察的更多是企业业务扩展能力的话,2007年可以说是电信应用软件的一个分水岭。在3G建设中,产品研发能力、企业的产品线以及项目执行能力等几项指标在市场的竞争中也将占据主要的位置。研发出满足客户需求的产品、提供全套的产品服务和快速可靠的完成项目,将使企业在市场竞争中占据更多的市场份额。

谷歌Android开发竞赛的10大最佳软件

谷歌刚刚结束Android开发人员挑战赛。裁判向创建的50个最佳应用程序每个奖励2.5万美元。没有人能够保证在Android手机于2008年晚些时候发布时这些应用程序是否能火起来和吸引用户。但是,下面是人们可以期待的一些例子。

  1. AndroidScan

  AndroidScan软件是Jeffrey Sharkey制作的。这个软件能够让用户发现和评估带条形码的任何东西的价格。这个软件能够显示CD、DVD和图书封面,以及亚马逊网站的详细评估。这个软件还能够搜索十几个商店,提供给商店打电话或者得到方向等选择。

  2. BioWallet

  BioWallet是用于Android操作系统的一种生物身份识别系统。这个软件能够通过观察用户的虹膜进行身份识别,作为一种口令安全措施和提供其它Android应用程序的单一登录。Jose Luis Huertas Fernandez创建的这个应用程序肯定会满足我们的詹姆斯·邦德粉丝的需求。

  3. Commandro

  类似于有用的网络应用程序SNIFF,这个社交网络应用程序使用GPS数据显示有关用户和朋友的实时事件和位置信息。用户能够邀请朋友参加活动。当他们确认之后,相关的活动将自动创建并且增加到他们的活动计划中。这个应用程序是Alex Pisarev和Andrey Tapekha创建的。

  4. PedNav

  PedNav软件能够帮助用户在城市中活动中规划自己的活动。这个软件能够向手机用户提供帮助,让手机用户规划一天的活动,包括饭店、办公室、商店和旅游点等内容。利用当地公司和物流公司创建一个个性化的行程计划,指定什么时候去什么地方和如何去。PedNav软件是RouteMe2技术公司制作的。

  5. Eco2goFor

  Eco2goFor是一款环保软件,能够让用户跟踪和减少碳排放量并且与全球的其他人共享这个想法。Taneem Talukdar、Gary Pong、Jeff Kao和Robert Lam共同创建的这个软件能够计算旅行的碳排放量并且找到和建议公共交通的替代方法。

3G工程师要求

3G工程师必须拥有通信、电子类专业本科以上学历,熟练使用C或C++语言编程方法,熟悉移动通信原理及微波通信技术,具有4年以上数字电路设计或硬件开发工作经验,有CDMA、GSM或TD-SCDMA、WCDMA等手机软/硬件开发经验

计算机网络(独立本科段)

专业代码:01B0802 专业名称:计算机网络(独立本科段)
课程代码 课程名称 教材名称 出版社 版本 作者
00015 英语(二) 高等教育出版社 1998年版 高 远
00023 高等数学(工本) 北京大学出版社 2006年版 陈兆斗 高 瑞
02331 数据结构 经济科学出版社 2000年版 黄刘生
02335 网络操作系统 吉林大学出版社 2000年版 徐甲同
02379 计算机网络管理 经济科学出版社 2006年版 雷震甲
03142 互联网及其应用 吉林大学出版社 2000年版 袁保宗
03708 中国近现代史纲要 出版社 2008年版 王顺生 李 捷
03709 马克思主义基本原理概论 出版社 2008年版 卫兴华 赵家祥
04730 电子技术基础(三) 经济科学出版社 2006年版 温希东
04732 微型计算机及接口技术 经济科学出版社 2007年版 孙德文
04735 数据库系统原理 经济科学出版社 2007年版 丁宝康
04741 计算机网络原理 经济科学出版社 2007年版 杨明福
04747 Java语言程序设计(一) 出版社 2008年版 夏宽理
课程代码 课程名称 教材名称 出版社 版本 作者

世界3G五大趋势

根据UMTS论坛和CDMA发展组织(CDG)的最新统计数据,截至2008年4月15日,全球3G用户已经突破6.6亿户,这意味着全球3G的商用进入加速发展阶段。值得关注的是,3G在全球正在呈现出五大发展趋势,对这些趋势的剖析有助于中国运营商在3G运营时进行借鉴。
  五大发展趋势之一:3G用户增长加快
  CDG的数据显示,目前cdma2000用户已经突破4.26亿,EV-DO用户截至2007年底也超过9053万。UMTS论坛的数据显示,目前WCDMA用户数已经突破2.34亿,其中HSPA用户超过3200万。
  3G的发展正在明显加快,截至2008年1月30日,全球有超过182个WCDMA网络。很多新近部署WCDMA网络的运营商都出现了用户的强劲增长。例如马来西亚运营商DIGI.COM近一季度的WCDMA用户增长率高达834%,T-Mobile挪威分公司、斯洛文尼亚Si.Mobil和沃达丰捷克分公司近一季度的WCDMA用户增长率也都超过了100%。
    CDG的数据也证明了cdma2000的高速增长。2007年,全球250个网络的cdma2000用户总数增长了16%,2007年EV-DO用户从5500万增至9053万,年复合增长率超过64%。非洲和中东等新兴地区增长尤为突出,该地区38个国家的65家运营商都选择cdma2000来提供电信服务,目前该地区用户数已超过1200万。
  五大发展趋势之二:后3G技术部署加速
  随着3G的日益普及,用户对业务体验的要求不断增加,这促进了HSPA和EV-DO等后3G技术的发展开始加速,运营商正在加大投资力度,将网络升级到更高阶段。
  以HSPA为例,2007年一季度末的HSPA用户还只有300万,但到2007年底这个数字增长了10倍,超过3200万。GSM协会的统计显示,从2007年5月到2008年3月HSPA网络的数量增长了44%,在73个国家有超过166个HSPA网络实现商用。
    CDMA方面也不例外,EV-DO技术的部署速度也非常快。目前EV-DO版本0的商用网络为95个,还有47个正在部署中。在更先进的EV-DO版本A方面,2007年初还只有3家运营商部署,而现在19个国家的27家运营商已经实现了该技术的商用,还有另外19个国家的31家运营商将要部署EV-DO版本A。在北美和南美大陆,目前已有5个国家的12个EV-DO版本A商用网络,另外还有13个网络处于部署之中。
  澳大利亚运营商Telstra的移动宽带网络构建尤为突出,2006年1月,Telstra投资10亿澳元在全国建设HSDPA网络。短短的10个月之后,覆盖澳大利亚98%国土面积的移动宽带网络开通,这个名为NextG的网络堪称世界最大的移动宽带网络。从一开始,NextG的下载速率就高达3.6Mbit/s,大大提升了用户体验。Telstra更是不断推动该网络下载速率的提升,去年中期,该公司将速率提升到了7.2Mbit/s。
    Telstra的CEOSolTrujillo近日透露,Telstra将继续升级网络以实现更大性能。今年,Telstra将启动HSPA+技术的试验,该试验将使用高通MDM8200芯片,预计最早在今年底可以实现商用。据悉,届时NextG网络下载速率将高达21Mbit/s,明年更是可以为用户带来42Mbit/s的极速体验。Trujillo还声称,该公司计划在未来的三到四年内最早商用LTE,使速率进一步提升至100Mbit/s。
  HSPA和EV-DO发展加速的背后与终端的日益丰富密切相关。例如,HSPA终端的数量在过去16个月里增长了265%,目前有超过467款HSPA终端可供用户选择。支持EV-DO版本0和版本A的终端也分别超过512和55款。
  当然,除了款式丰富之外,3G终端的种类也多种多样,除了手机和无线数据卡之外,笔记本电脑等新型设备也加入到移动宽带终端行列之中,惠普、索尼等笔记本电脑生产商已经推出了内嵌HSPA模块的笔记本电脑。高通推出的Gobi解决方案更是使笔记本电脑同时支持HSPA和EV-DO,使用户的笔记本电脑能够在全球不同网络中工作,随时随地保持连接状态。
    五大发展趋势之三:数据流量剧增资费下降
  3G步入主流的表现还在于除了用户增长之外,用户对3G的使用量也在急剧攀升,这表现在3G网络数据流量的猛增。应该说,除了用户体验不断增强之外,数据资费的不断下降对3G使用量的增加也功不可没。
  咨询公司HeavyReading近日发布的报告显示,2007年全球3G网络的移动数据流量增长了4到8倍,对于某些运营商,去年的平均数据流量增长甚至超过8倍。ComScore公司的报告也显示,美国在2007年通过移动网络接入宽带的流量比上一年飙升了154%。
  数据资费的下降是推动移动宽带普及的重要原因。运营商纷纷出台更优惠的数据套餐来吸引用户,以VerizonWireless为例,其日前公布的数据套餐计划显示,用户使用5Gbit/s流量只需付59.99美元,下载速率可以高达1.4Mbit/s。沃达丰在英国推出的HSDPA服务,则定价为每月45英镑无限量接入,其下行数据速率也高达1.4Mbit/s。T-Mobile的资费为,17欧元可以使用1Gbit/s数据流量。
    在英国,目前移动上网每月最低收费甚至低到10英镑,这个价格甚至比固网宽带还有吸引力。目前5家领先的3G运营商每月的移动数据资费在2007年平均下降了234%,每兆字节的价格从2006年的平均5.7美分降到了2008年初的1.6美分,降幅高达356%。
  英国Top-10-Broadband网站日前对其过去6个月宽带销售数据进行了调查。结果显示,移动宽带的销售自被调查以来,月度增长量超过50%,移动宽带销售量6个月前占该网站总宽带销售的0%,现在份额已经超过10%。该网站预测,英国的三个移动运营商H3G、T-Mobile和沃达丰的3G移动宽带服务使用量最早将于2010年超过固网宽带。
  五大发展趋势之四:3G对运营商业绩贡献巨大
  凭借3G,发达市场的运营商得以开拓多元化服务,从单纯的语音扩展到丰富多彩的数据增值业务。例如,在线游戏、电子邮件、互联网访问、上网冲浪、定位、流媒
  视频、可视电话、手机电视和即按即说(push-to-talk)等,这些都是3G可支持的增值业务。这些业务已经在市场上催生了强大的差异化竞争,有助于在业务上创新的运营商赢得市场份额。KDDI在日本赶超NTTDoCoMo就是其中一个比较成功的例子。
  许多新兴市场在互联网发展方面面临一个共同问题—互联网接入滞后于互联网的使用。这一不平衡状况在互联网的使用和固定宽带的普及程度之间显得更为突出。例如,印尼有2000万互联网用户,但其中享有DSL等宽带接入的还不及10%;同样,越南互联网的普及率约为20%,使用率的增幅为30%至35%,超过了世界平均水平,但家庭宽带普及率尚不到2%。宽带服务缺乏的根源正是新兴市场固话基础设施的匮乏。
  通过3G应用的推广,运营商正好可以弥补新兴市场的数字鸿沟。亚洲和非洲的无线运营商正在以不同形式推出3G数字产品,例如适合笔记本电脑的PCMCIA数据卡、USB上网卡、带RJ-45以太网网卡接口的调制器盒。新兴发展中国家十分清楚,互联网和宽带是经济和社会发展的催化剂;因此,无线数据的扩张会依循无线语音服务取代固线语音服务同样的方式发展下去。
    从各大3G运营商财报可以看到,移动数据业务的发展呈现出蓬勃发展的态势,3G对运营商的业绩贡献也在增大。这表现在3G数据卡上网业务增长迅猛,非短信数据业务的比例正在提升,这些都给运营商的财务表现带来了实实在在的好处。
  据CHETANSHARMA咨询公司报告,2007年全球大多数3G运营商的数据服务收入对其总ARPU值的贡献都超过了双位数,其中KDDI、DoCoMo、3Italy、3UK和O2 UK的数据服务贡献率甚至高达30%。2007年短信在数据收入的主导地位继续下降,许多运营商的非短信数据收入都在增长。平均来说,日本和韩国运营商70~75%以上的数据收入来自非短信数据应用业务,美国约为50~60%,西欧则为20~40%。
  澳大利亚运营商Telstra的例子很典型,其CEOSolTrujillo称,在网络升级之前,该公司的3G占比同大多数的运营商一样。当时,3G用户占Tels
  tra用户总数的5%。而目前,3G用户比例已经跃升至38%。其2007年财务报告显示,Telstra旗下的非短信类数据业务收入的增幅约为93.5%,非短信类数据业务的收入已经超过了短信类业务收入。数据业务的蓬勃发展也使Telstra的3G用户ARPU比2G用户的ARPU高出了20澳元。
  再来看其他几个3G运营商的表现。VerizonWireless的2007年财报显示,其数据业务收入比2006年增长了65%,ARPU值实现连续7个季度增长;3G先行者和记电讯2007年净利润增加53%,这预示着其正在走出阴霾,开始享受到3G带来的价值;意大利运营商TIM的数据发展策略也在获得回报,其2007年非短信数据收入比上一年增长42%,达到8.69亿欧元,其中移动上网业务更是实现了95%的高增长。
    五大发展趋势之五:3G促进无线融合
  3G发展的加快,移动数据业务的蓬勃发展,正在推动移动业与其他行业的融合走向深入。
  首先,随着3G手机成为支持融合服务的混合型移动装置,计算、通信和消费电子设备之间的界线将日渐模糊。实际上,这一趋势在许多发达市场已悄然形成。Cyber-shot和Walkman是传统的知名消费者品牌,现已在无线电话领域打下了他们的标记;Blackberry、Palm和WindowsMobile设备从早先的少数用户转向了大众市场;电子邮件、网页浏览、即时通信、社区联网和流媒视频现在3G流行的国家和地区随时随处都可享用;和记黄浦的“3”最近发布了Skype手机,允许消费者在住家以外免费拨打互联网电话;Google与LG等手机供应商建立了合作伙伴关系,在新型手机中预先安装Google地图、Gmail和博客等Google应用软件;另外值得一提的是,Apple发布的iPhone给手机行业带来了一场近乎翻天覆地的冲击。
    全球最大的网上书店亚马逊(Amazon)的Kindle电子书阅读器也是一个极具创新的融合案例。Kindle是亚马逊在去年11月推出的电子书阅读器,重量290克,持握感就如同一本真正的书,它使用6英寸电子墨水技术显示屏,使观感如同阅读印刷书籍一般舒服。
  由于产品一经推出便备受追捧并屡次脱销,Kindle的价格也一涨再涨。Kindle原本售价只有399美元,但近来eBay上的Kindle已经涨到930美元,最高价格甚至高达1500美元。
  虽然索尼等其他厂商也曾经推出类似阅读器,但是都不如Kindle受到如此追捧。有专家认为,一方面,是由于Kindle背靠的亚马逊是全球第一大网络书店和第二大电子商务网站,有极其丰富的图书资源和渠道资源;另一方面,该阅读器可以实现移动网络接入,亚马逊与美国CDMA运营商SprintNextel合作,可使Kindle用户免费通过EV-DO随时随地接入网络,登录亚马逊KindleStore,实现购买图书和订阅报纸杂志甚至博客等服务,并查阅Wikipedia网络百科。
    其次,不论是发达市场还是新兴市场,基于3G的移动通信服务将持续把语音和数据的应用推向高潮。移动装置将从起初的具备某些增值功能的电话,转化成支持各种涉及互联网融合服务的混合电子消费设备。将来的手机不仅可以打电话、收发短信、上网、看电视、定位、娱乐,还可作为健康顾问、医疗诊断仪和电子钱包。
  以手机支付为例,该业务预示着移动行业与金融行业融合的深入。日本移动运营商NTTDoCoMo和韩国运营商SK电讯在这方面处于领先地位。例如借助NTTDoCoMo基于非接触智能芯片的Felica业务,消费者可用具有FeliCa功能的手机来购买车票和电影票、打开大门、借书、充当会员卡。韩国SK电讯的MONETA服务和FeliCa有异曲同工之处,利用MONETA芯片提供的手机认证、支付、证券信息等服务,可以实现移动通信与金融服务的结合以及有线通信和无线通信的结合,让消费者能够享受到方便安全的金融生活服务。
    可以说,3G目前已经踏上了一个良性发展的快车道,终端种类日趋丰富,数据速率不断提升,资费价格不断下降,用户对3G和移动数据业务需求的增加正在给运营商带来巨大价值。同时,用户也在生活、娱乐和工作中享受到3G所带来的快捷和方便