Java是什么?

    Java是一门语言,Java更是一个平台 。C++的语言设计者一个核心思想就是假定:程序员是足够聪明的。因此把C++的设计的足够的复杂,几乎接近了人类理解力的极限,其中更是充满了彼此矛盾需要仔细权衡的地方。作为一个合格的C++程序员,不仅仅要会使用各种武器,更重要的要学会自己制造这些武器,这就是一个特种兵和工程师的复合体啊,真的是过于困难了。而反观Java语言,恰恰是最初那些Java的创始人觉得自己不足够的聪明,用不好C++这种东西,所以干脆自己发明了一种语言,不需要你足够的聪明,只要不太傻就可以上手了。因此,Java是一门很容易上手的语言,特别是对于我们这种C++程序员来说。当然,任何技术要达到精通的地步,不付出艰苦的努力也是不行的。其实如果仅仅如此说,并不能体现Java的伟大之处,Java真正比C++更优秀的地方是那个庞大的Java类库。比起C++中那些鱼目混珠,风格各异的类库来说,这里简直就是天堂了。

    总的来说,如果说C++是一个兵器制造工厂,那么Java就是一个超级武器库。

    先打开《Java 核心技术》第一卷的第一章,一上来就列举了“白皮书”中的11个关键术语:

  1. 简单性:Java语言是对C++语言简化后的结果,特别是去掉了多派生
  2. 面向对象:Java语言是彻底面向对象的,在这里只有对象,没有全局变量,没有普通函数
  3. 分布式:分布式是现代编程的重要题目,当然庞大的java类库不会令你失望的
  4. 健壮性:C++中最麻烦的指针问题在Java中消失了,并采取了一系列措施尽可能的减少出错的可能
  5. 安全性:这个题目其实有点太大了,不过借助于虚拟机的隔离机制,Java确实能够让机器少死几次
  6. 体系结构中立:这也是借助于虚拟机技术的设计初衷啊
  7. 可移植性:Java是跨平台的,“一次编写,到处运行”,这个口号都听了n多年了
  8. 解释型:因为有虚拟机,并须多经过一次编译过程,这也是不得不付出的一个代价
  9. 高性能:虚拟机也支持即时编译技术,基本上这属于一种缓存优化技术,并且被虚拟机屏蔽在底层了
  10. 多线程:多核时代的到来,多线程也是现代编程的重要题目,当然庞大的java类库还是不会令你失望的
  11. 动态性:Java因为采用单根继承的体系,比起C++确实可以有更多的运行信息支持,这在反射技术中体现的尤为深刻

   总的来说,因为Java采用了虚拟机技术,相当于额外增加了一个间接层,这也是设计模式中的惯用伎俩了,因此,Java在很多设计理念上其实是和C++截然相反的。不幸的是,随着现代软件开发越来越大的规模,越来越短的开发周期,也因为硬件水平超级快的进步,Java的发展势头确实比C++要好

   向C++的创造者致敬,没有他的崇尚包容,就不会有后来语言设计者的那么多的感悟
   向Java的创造这致敬,没有他的崇尚简单,就不会有后来语言编者者的幸福生活
   向Java的类库编写者致敬,你们确实创造了一个天堂,可惜就是门牌号太多了些:)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值