huangbqsky
随笔 - 20, 文章 - 0, 评论 - 0, 引用 - 0
数据加载中……
[导入]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风格的编程
々上善若水々
2007-12-10 21:12
发表评论
文章来源:
http://www.blogjava.net/supercrsky/articles/166793.html
posted on 2009-04-10 13:20
天天开源
阅读(64)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © 天天开源
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2009年4月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
(20)
2010年5月 (10)
2009年4月 (10)
搜索
最新评论
阅读排行榜
1. [导入]Eclipse和MyEclipse工程描述符详解(861)
2. [导入]2010-03-09 传智播客—WebService(二)(419)
3. [导入]2010-03-16 传智播客—企业ERP进销存、Linux(360)
4. [导入]2010-03-08 传智播客—WebService(一)(315)
5. [导入]Javadoc的简捷使用(248)
评论排行榜
1. [导入]传智播客——总结(0)
2. [导入]2010-03-16 传智播客—企业ERP进销存、Linux(0)
3. [导入]2010-03-09 传智播客—WebService(二)(0)
4. [导入]2010-03-08 传智播客—WebService(一)(0)
5. [导入]2010-03-06 传智播客—Android(六)通知、样式、主题、HTML(0)