快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

JAVA,误解为何如此之深

前几天被电话面试,问Java的参数传递方法,我说只有一种方法,就是by value啊,对方纠正我说,基本类型传值,对象类型传引用;呜呼,当时被噎了一下,几秒钟后回过神来,我明白他的意思,也明白我碰上新世纪的新新人类了,但我怕他不明白啊,就说我们还是先把“引用”这个概念定义清晰吧,不要同一个词两人有两个意思,或者举个例子吧,在函数里对String类型的参数赋值是不影响实际参数的啊,于是他也明白我其实也明白,电话面试就算过了

然而还不算完,正式面试的四轮:笔试题,笔试完后与leader谈,谈完后与manager谈,谈完后与VP谈,居然每一轮都有这道题!只不过换成了swap函数的形式,让你说出执行结果;我就纳了闷了,这道题在人们心目中的形象就那么高大?并且甲方答案也似是而非?

Bjarne一直认为是C++的教育害了C++,那么是什么害了Java语言呢?过度的商业宣传!

当然,商业宣传成功的帮助了Java平台,吸引了大量开发者,但对Java语言来说,先听到宣传词后再来学习的初学者,耳中充斥的是“Java取消了指针”,“Java没有内存泄露”,“Java纯面向对象”等宣传用语,先入为主的就接受了表面现象,而没有理解问题的实质

Java取消了指针?看看那个所谓的“引用”为空时抛出的非常吧,看看在Java实现者的眼中这个东西到底是啥吧:NullPointerException!不是我鄙视Sun,它的细节伪装的确实不如MS:.Net里对应的非常叫NullReferenceException,虽然也是换汤不换药;作为一种类C语言,我认为对应概念的命名还是一致较好,Java里其实全是指针,你基本无法得到对象本身,只不过这种指针功能受限,不需删除而已

指针的概念被伪装起来,不需要delete了,那么除内存之外的其它资源呢?数数你的程序里有多少个finally就可以了

Java纯面向对象?其实就这句话本身来说也无可厚非,只是它使用了<<箭鱼行动>>里定义的“错误引导”,这句话会使初学者倾向于认为用Java写出来的程序都是面向对象的,从而阻碍了理解真正的面向对象;数数你程序里有多少根据对象类型的switch/if/else就可以了

题外话:

面试时被问道面向对象的三个基本特征,我知道他想听到什么封装继续多态,但实际上传统面向对象的核心特征就是多态,继续只是用来实现多态的一种手段,并非本质特征;C语言没有继续,但照样可以进行OO风格的编程
返回类别: 教程
上一教程: JAVA学习之踏上旅途的第一步
下一教程: JAVA中的两个特别变量THIS和SUPER

您可以阅读与"JAVA,误解为何如此之深"相关的教程:
· Java,误解为何如此之深
· Java 和 XML 为何将成功
· Java从何而来 为什么会如此火暴?
· java初学者常用开发工具介绍
· 新一代Java技术即将出现
    微笑服务 优质保证 索取样品