首页 > 知识问答 >新闻内容

Java语言有什么特点?

2020年09月09日 11:41

1.简单性

Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。

2.面向对象

Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。

Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。

3.分布性

Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。

4.编译和解释性

Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。

在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。

5.稳健性

Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。

Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。

可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重写存储和讹误数据的可能性。类似地,Java自动的“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。

异常处理是Java中使得程序更稳健的另一个特征。异常是某种类似于错误的异常条件出现的信号。使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。

6.安全性

Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。

Java运行系统使用字节码验证过程来保证装载到网络上的代码不违背任何Java语言限制。这个安全机制部分包括类如何从网上装载。例如,装载的类是放在分开的名字空间而不是局部类,预防恶意的小应用程序用它自己的版本来代替标准Java类。

7.可移植性

Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。

Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。

8.高性能

Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。

Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。

9.多线程性

Java是多线程语言,它提供支持多线程的执行(也称为轻便过程),能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。

Java的线索支持也包括一组同步原语。这些原语是基于监督程序和条件变量风范,由C.A.R.Haore开发的广泛使用的同步化方案。用关键词synchronized,程序员可以说明某些方法在一个类中不能并发地运行。这些方法在监督程序控制之下,确保变量维持在一个一致的状态。

10.动态性

Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。



相关推荐

美团2020年Q1营收167.54亿,经营亏损17.16亿

联商网消息:5月25日,美团点评发布2020年第一季度财报。财报显示,2020年第一季度,美团点评营收167.54亿元,同比下降12.6%,去年同期为191.73亿元;经营亏损17.16亿元,去年同期亏损13.04亿元,亏损同比扩大31.6%;经调整后净亏损2.16亿元,去年同期该数据为净亏损10.49亿元,净亏损同比收窄79.4%。分业务来看,报告期内,餐饮外卖业务营收94.9亿元,同比下降11.4%;经营亏损7.09亿元,去年同期亏损15.42亿元,亏损同比收窄54%。到店、酒店及旅游业务营收30.95亿元,同比下降31.1%;经营利润6.8亿元,同比去年下降57.3%。新业务及其他营收41.68亿元,同比增长4.9%;经营亏损13.64亿元,去年同期亏损25.83亿元,亏损同比收窄47.2%。此外,截至2020年3月31日,餐饮外卖业务的交易金额715.04亿元,同比减少5.4%;餐饮外卖日均交易笔数13.75亿笔,同比减少17.3%。美团点评在财报中表示,自2020年1月下旬以来,COVID-19疫情对公司包括餐饮、酒店及其他本地生活服务等商家的日常营运造成了严重影响,继而对公司2020年第一季度的业务造成下行压力。餐饮外卖以及到店、酒店及旅游等业务在需求端以及供給端方面均面临重大挑战。

2020年05月26日 11:21

租客惠:为商家谋效益,为消费者谋利益的好平台!

现如今开店竞争激烈,单品折扣、满减优惠、充值返现甚至送礼品等各类促销层出不穷,商家的毛利越来越低。如果是团购平台订单,商家还要额外付出去扣点。本来就竞争激烈的市场,毛利逐年降低,平台扣点却居高不下。月底一算账,不做没客户,做了不赚钱。每天听老板们抱怨平台扣点高,可是现在的消费者习惯了在平台上下单,做与不做,怎么做,确实也不是老板说了算了。那怎么办?来自的深圳的陈小姐曾经是同事聚餐最被喜爱的人物,因为善于利用团购“捡便宜”,因此经常花很少的钱就能吃到很多很丰富的美食。可是现在她发现,“超值”的团购越来越少。网上的一项数据也证实了她的感受,在2016年,中国本地生活服务领域O2O的交易额一直在大比例攀升,而团购业务作为过去的到店服务主要模式,占比却从2014年的90%下降到了30%。事实上,餐饮商家对团购平台的“又爱又恨”,让商家和消费者两败俱伤。压垮他们的最后一根稻草是12%的销售额(注意是销售额不是利润)提点,在团购本就亏损的情况下,再拿出12%给一些团购平台是他们无法接受的——08年团购刚兴起的时候,所有的平台提点都在3%以下。“其实有些商户也挺矫情的,离不开平台还骂街,但客观的说,他们现在日子确实不太好过,可能是打的大伤元气,现在三四线城市团购平台的代理商之间关系好着呢……他们关系一好,商户就被折磨了。”事实上,但凡喊着要逃离传统团购平台的商家,一般身体都很诚实。翻开一些团购网站的app,各类商家琳琅满目,可见联盟的牢固程度还是抵御不了平台流量的冲击。现实来说,这是一个“你不做也有别人做的问题。”事实上,任何一个通过努力去赚钱的人都应该得到尊重。商家要么不赚钱,要么用比较次的材料,要不谁去给谁免费打工。如此以往,必然恶性循环,想必这也不是商家所希望的结果。商家入驻平台,无非是希望通过平台提高门店的引流能力,借助平台多元化的引流手段和平台影响力带动店内销售的增长。可是美好的愿望却事与愿违。经过充分调研大部分商家的真实需求,充分研究各类传统型优惠折扣类网站的闪光之处,租客惠平台横空出世。租客惠是租客网旗下一个大型生活消费优惠类服务平台,通过平台影响力、自媒体平台矩阵、视频平台矩阵及社群营销等多渠道引流,帮助合作商家免费引流,提高商家的曝光度和知名度。租客惠对于商家经营中需要的现金流问题和利润问题,推出了付款秒到账,收款不扣点的特色服务,全新全意帮助商家搞大品牌的同时搞大业绩,形成共赢的新型商业联盟。租客惠的商家类型多样,覆盖了餐饮、娱乐、休闲、美容、购物等等生活服务类项目,致力于为广大租客提供一个高品质高性价比的优质生活圈,让租客会生活,更惠生活!

2020年04月29日 16:06

SpaceX“太空互联网”即将问世,可覆盖全球

太空互联网,听上去遥不可及,目前我们生活中用到这类卫星网络的场景很少,而且费用高体验差。以达美航空为例,在飞机上使用基于卫星的互联网每24小时需要16美元,而且速度极慢,整架飞机共享2Mbps网速,大多数乘客宁可忍着也不愿掏这个钱。这个情况或许很快将发生改变,科技狂人马斯克正在行动。就在4月22日,SpaceX在肯尼迪太空中心成功使用可回收的猎鹰9号火箭发射了60个人造卫星进入太空,这已经是SpaceX第八次成功发射卫星了,而且八次之中没有一次失败。SpaceX自2018年以来已8次发射卫星,第二次开始每次发送60颗卫星目前SpaceX公司在太空的卫星已达到了422颗,这个数字超过了美国以外任何国家和卫星公司。猎鹰9号这次发射的另一个最重要意义在于,它已超越阿特拉斯五号火箭,成为美国现役发射次数最多的火箭,而它达成这一目标所用的时间,还不到阿特拉斯五号火箭的一半。SpaceX如此大规模发射卫星的目的,就是要建设“星链”(Starlink)。什么是“星链”?“星链”是一项通过近地轨道卫星群覆盖全球的高速互联网接入服务,真正实现可用、经济、高速的天基互联网。这前八次发射升空的累计422颗卫星只是“星链”计划的开始,SpaceX最初的计划是要在2020年代中期之前在三个轨道上部署接近12000颗卫星:首先在550千米轨道部署约1600颗卫星,然后是在1150千米轨道部署约2800颗波段卫星,最后是在340千米轨道部署约7500颗波段卫星。但SpaceX的野心不止于此,就在2019年十月,SpaceX再次高调宣布“星链”增新计划,并已进入官方审批流程,一旦通过,它将在原有计划的基础上再新增30000颗卫星,即“星链”计划总计将包括42000颗卫星。“星链”示意图SpaceX认为,未来20年,全球将有近半数的网络上天,无信息死角的数字地球将成为现实,“星链”将打造一张覆盖全球的天基自组通信网络,彻底摆脱传统路基通信的区域限制。对于北美、非洲等不少地区来说,由于地广人稀,基站之间平均距离太远,铺设光纤的投入产出比很低,相对东亚人口密集地区来说,北美和非洲并不适合路基光线+基站组网的传统方案。“星链”的成功部署将在大量地区补充或替代过去那种高成本和低可靠性的通信网络,弥补互联网覆盖的漏洞,目前该项目的预期年收入达到300亿美元,如果我们参考传统网络运营商的营收状况,面向全球市场的“星链”一旦完善,每年收入300亿美元可能还只是一个保守的预测。“星链”与我们普通人见面的时间也远比预期的早,4月23日,马斯克在推文中表示,他们会先在3个月内开启内测、然而在6个月内进行公测。马斯克近期推文透露内测和公测时间良好体验与成本控制“星链”相比传统光缆,它最显著的特点就是传播速度快,低延时。“星链”的信号传播速度接近真空中光速每秒30万公里,而光信号在光纤中的传播速度为每秒20万公里。星链不用像远距离光纤通信那样,一段段接起来,可以做到点对点,所以即使是考虑空地往返,“星链”的速度还是更快。“星链”服务的网速怎么样呢?如果你还在拿现在国际航班上的卫星网络作为参考那就错了。SpaceX第一次发射“星链”卫星是在2018年2月22日,当时只发射了两颗试验卫星,它们的设计下行速度是1440Mbps,在测试过程中,测试者在一架飞行的C-12运输机上测到了610Mbps的速度,这个速度是前所未有的,比全美2018年的平均网速(93.98Mbps)快得多,也比新一代铱星对地服务的速度快两个数量级。美国平均网速发射几万个卫星上天,还要构建太空互联网,这不是一件简单的事,肯定要烧很多钱,根据SpaceX的计划“星链”将耗资100亿美元,这个数字多不多?要看和谁比,在2013-2017年,中国光建设4G基站的总投资就达到了8000亿,这样看,100亿美元并不多。不过SpaceX是一个私营公司,100亿美元对马斯克来说还是有压力的,好在他在商业方面取得了巨大进展(过去一年的特斯拉牛气冲天);另一方面,马斯克还考虑让SpaceX上市。不用怀疑,这是一个真正掌握核心科技而且未来发展空间远大于特斯拉的公司,市场将迎来新的投资机会、SpaceX将得到充足资金,各取所需。今年二月的消息,马斯克考虑让SpaceX上市为了降低“星链”的成本,SpaceX几乎在每一个重要环节都做到极致。这其中最值得一提的就是“一箭多星”,这种方式是指的是用一枚运载火箭同时或先后将数颗卫星送入地球轨道的技术,全世界只有少数国家掌握这种技术,中国的长征六号火箭曾一次送20颗卫星上天,创下“一箭20星”的亚洲记录。SpaceX从第二次到第八次发射都是单次携带60个卫星上天,这家公司的航空技术已经比绝大多数国家还要强了。SpaceX未来可能一次携带更多的卫星,因为只有这样才有可能满足上万个的卫星总数。在运载火箭内打包好的60个卫星,批量上天,降低成本在节省成本的措施中,最拉风的要属运载火箭回收技术。当初猎鹰火箭的回收是网络直播的,引起了全世界的关注,火箭降落地面的那一刻仿佛是在播放火箭发射的倒带,平稳的让人难以置信。要知道,单个猎鹰火箭的成本在5000-6000万美元,熟练掌握回收技术代表每次发射卫星都将节约这样一笔费用。SpaceX猎鹰火箭返回地球,运载工具回收,进一步降低成本太空互联网的概念很多人都可以想到,但如果落实,恐怕也只有SpaceX这种拥有顶尖技术的公司才能做到。无论是“一箭多星”还是火箭回收,缺少任何一个关键技术都没法用可行的开支建设出“星链”。SpaceX的太空技术不是一天得来的,研发之路也不是顺风顺水的,就在不远的2016年,SpaceX遭遇了火箭爆炸和第四次回收失败,马斯克甚至被很多人质疑是骗子。在一步步实现梦想的过程中,SpaceX经历过的挫折或许远比我们想象的要多。SpaceX火箭爆炸SpaceX海上回收火箭失败与正在构建的“星链”相比,传统的陆基互联网成本也不低。以中印光缆为例,它跨越青藏高原和喜马拉雅山上千公里的高海拔无人区,连接了成都-拉萨-日喀则-乃维拉-勒克瑙-新德里,虽然新德里和成都之间直线距离不到2600公里,这个光缆长度和其他一些海底光缆相比不算什么,但由于它所通过的地形特殊,未来建设维护成本注定极为昂贵。但如果“星链”成型,新德里到成都之间的直接通讯将没有任何额外成本。“星链”的其他优势还包括:星链是低轨卫星,具备太阳能电推功能,不会成为太空垃圾,一旦丧失动力就会自己掉下来,也不用担心火箭发射污染问题,SpaceX用的是环保火箭。与5G的关系:互补大于竞争说过“星链”的强大竞争力,你可能已经想到了另一个正在崛起的通讯技术,那就是5G。对于中国读者来说,5G如雷贯耳,它似乎被赋予了特殊的意义,它被视作互联网下半场的基石以及日常生活、自动驾驶、人工智能、物联网、工业互联网等场景不可缺少的基础设施。但是SpaceX步步推进,每一步都快于大多数人的预期,马斯克更表示:星链计划将实现个人用户带宽超过1Gbps,接入速率能达到目前家庭宽带的30多倍,这和5G相比已经颇有竞争力。有网友表示:“星链”可能比5G还厉害。毕竟5G全球布局的成本远高于“星链”,而且只能大城市布局,很多人口密度低的小城市都可以用“星链”代替,比5G便宜的多!不过马斯克倒没有说要用“星链”替代传统通信,他只是表达了星链未来可以承担全球互联网一半流量的愿景。对于“星链”来说,要替代4G和5G也是不现实的,但他们之间可以进行非常好的搭配,因为“星链”的优势恰好就是5G的弱点。5G和2G、3G、4G的主要区别在哪里?简单来说就是频率更高、速度更快,但频率越高穿透力就越弱:一个2G基站理论上可以覆盖6-8公里、3G基站覆盖4公里、4G基站覆盖2公里、到了5G只能覆盖几百米甚至更低,考虑到成本,5G基站想达到4G这样的大范围覆盖范围几乎是不可能的。在这种情况下,“星链”对于5G覆盖不到的地方可以提供补充。带来的问题“星链”并不是完美的,对于“星链”的批评主要出现在天文学界,有天文学家表示,“星链”将导致可见卫星的数量将超过可见星的数量,并且它们在光学和无线电波长上的亮度都会严重影响科学观测。国际空间站上看到的“星链”后来,SpaceX表示将尽可能把卫星对科学观测的影响降到最小,他们把一颗卫星做了涂层以减少它的反光率,可是经过观察这个减少的幅度非常小,对天文学界来说远远不够。因为卫星反光主要来自太阳能板,如果把太阳能板也加上涂层,那就彻底收集能量的功能了,这个问题目前看来还找不到解决的有效方法。对美国的意义对美国来说,“星链”具有很大的战略价值,美国企业的卫星占满天空,其他国家可利用的空间轨道资源会越来越少;从产业来看,由于“星链”这种太空互联网的前期投入很大,一旦“星链”成熟,其他公司或其他国家在同类领域几乎不可能与之匹敌,有助于美国强化自己在通信领域的地位。另一方面,“星链”卫星拥有发射全向波束的能力,说简单点就是它也可以对航天器进行遥测,跟踪和控制。所以如果SpaceX和美国军方合作,这个系统可以针对世界上任何地方发射的导弹进行计算、模拟、预测,然后再进行拦截。借助“星链”密集的低空卫星群,美国可以开启上帝模式进行导弹拦截,这会让那些瞄准美国的洲际弹道导弹彻底沦为玩具,虽然这是防御能力的提升,但还是会打破军事平衡,并不是一件好事。从已有的信息看,美国军方显然已经注意到“星链”的价值了,在2019年8月,美国阿拉巴马州2019年度太空与导弹研讨会议上,美国空军将领O'Shaughnessy高度评价了SpaceX的工作,他认为SpaceX公司成功开拓低成本大载荷发射的星链项目具有非凡意义,改变了太空防卫格局。对世界的意义根据SpaceX的官方介绍,“星链”不能直接连接手持设备,但连接“星链”只需要一个披萨盒大小的终端,这个终端带有相控阵天线且可以追踪卫星,终端可以部署在任何能看见天的地方,然后终端再产生一个wifi信号供周边的人使用互联网。“星链”最重要的意义不在一个国家,而在全人类。有了它,人类可以把互联网服务投送到世界上任何一个角落,无论山有多高、路有多远,对于卫星来说都是小事一桩。因此“星链”有助于改善很多国家的信息便捷度,让地球村变得更小,对于落后国家发展经济、提高教育、扩大开放、融入世界都具有举足轻重的意义。

2020年04月28日 01:18