调查你是否达到JAVA中级程序员的级别,下面的面试问题可测试你是否达到JAVA中级程序员的级别。

时间:2023-02-12 10:47:29
1, Classpath , import 有什么关系?

2,什么是Jar?

3, 你怎样查JAVA的API文档,在文档中经常出现的Deprecated是什么意思?

4,Object类的每个方法的用法你是不是完全搞懂?

5分钟全部答对,恭喜你,你至少具有JAVA中级程序员的能力了。否则,你就是新手。

38 个解决方案

#1


这几道面试题只有第一次考有效。

#2


初级是什么水平呢?helloworld?

#3


看来初级只有hellworld了

#4


#5


1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

2,什么是Jar?
我的理解是类库的一种打包格式,引入它就等于引入整个目录结构

3, 你怎样查JAVA的API文档,在文档中经常出现的Deprecated是什么意思?
联机文档啊,deprecated是不推荐使用的意思,该方法或成员在今后的JAVA版本中可能被取消或修改

4,Object类的每个方法的用法你是不是完全搞懂?
不多

还是菜鸟多一些啊

#6


回复人: gernett21(森林狼) ( ) 信誉:89  2004-04-20 09:40:00  得分:0 
 
 
  1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

2,什么是Jar?
我的理解是类库的一种打包格式,引入它就等于引入整个目录结构

3, 你怎样查JAVA的API文档,在文档中经常出现的Deprecated是什么意思?
联机文档啊,deprecated是不推荐使用的意思,该方法或成员在今后的JAVA版本中可能被取消或修改

4,Object类的每个方法的用法你是不是完全搞懂?
不多

还是菜鸟多一些啊
 
 
==============================================

你的第二个问题有问题,答得不好。

#7


回复人: game0ver12345(sfsfdsfdsdfsf) ( ) 信誉:100  2004-04-20 10:14:00  得分:0 
 
 
  回复人: gernett21(森林狼) ( ) 信誉:89  2004-04-20 09:40:00  得分:0 
 
 
  1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

2,什么是Jar?
我的理解是类库的一种打包格式,引入它就等于引入整个目录结构

3, 你怎样查JAVA的API文档,在文档中经常出现的Deprecated是什么意思?
联机文档啊,deprecated是不推荐使用的意思,该方法或成员在今后的JAVA版本中可能被取消或修改

4,Object类的每个方法的用法你是不是完全搞懂?
不多

还是菜鸟多一些啊
 
 
==============================================

你的第二个问题有问题,答得不好。
 
 
第三个问题也有问题,答得不好。

#8


第一个问题能不能回答完美一点,

   claapath怎样配 ?如果没配好,import会出现什么问题?你怎么知道classpath有没有配好? 如果classpath存在两个相同类库,import 会有什么问题?如果classpath引入两个相同的库,你有什么好办法排除?

#9


应该算初级程序员吧,如果答不出来只能算新手,不能算java程序员。
classpath永远属于新手问题。

#10



 回复人: jkit(不再灌水) ( ) 信誉:100  2004-04-20 11:26:00  得分:0 
 
 
  应该算初级程序员吧,如果答不出来只能算新手,不能算java程序员。
classpath永远属于新手问题。
 
 
==================================================================

1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

如果这样的回答算是对的话,问题确实太简单了。但如果你要完全明白classpath 和import 的所有问题,这个问题确实是需要相当的一段时间的。

 例如  :    如果classpath存在两个相同类库,import 会有什么问题?会有什么情况出现。
  基本上你搞JAVA有一段比较长的时间,才会遇到这种问题。

#11


回复人: gernett21(森林狼) ( ) 信誉:89  2004-04-20 09:40:00  得分:0 
 
 
  1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

2,什么是Jar?
我的理解是类库的一种打包格式,引入它就等于引入整个目录结构

3, 你怎样查JAVA的API文档,在文档中经常出现的Deprecated是什么意思?
联机文档啊,deprecated是不推荐使用的意思,该方法或成员在今后的JAVA版本中可能被取消或修改

4,Object类的每个方法的用法你是不是完全搞懂?
不多


======================================

gernett21(森林狼) 这个回答表现出他不是一个中级程序员。

第二条问题你的理解有偏差。

#12


TO gameover12345:

claapath怎样配 ?
==>在系统(或用户)环境变量中配置

如果没配好,import会出现什么问题?
==>编译时找不到相应的类

你怎么知道classpath有没有配好?
==>用不了或不好用时就知道了期 *_*

如果classpath存在两个相同类库,import 会有什么问题?
==>编译器会通知你,不能通过编译

如果classpath引入两个相同的库,你有什么好办法排除?
==>在需要用到类时使用类的全路径
==>如果是相同的包名和类名,则最好是去掉低版本的那个设置[基本上是高版本兼容低版本].

#13


up

#14


如果classpath存在两个相同类库,import 会有什么问题?
--------------------------------------------------------------------------

没有问题!

#15


如果classpath存在两个相同类库,import 会有什么问题?
==>编译器会通知你,不能通过编译

如果classpath引入两个相同的库,你有什么好办法排除?
==>在需要用到类时使用类的全路径
==>如果是相同的包名和类名,则最好是去掉低版本的那个设置[基本上是高版本兼容低版本].

=====================================================================

你的回答错误:

如果两个类库是完全一模一样的(则同一个类库,两个copy),import 是不会有任何问题,而且程序也不会产生任何问题。基本上classpath存在两个完完全全相同的类库,程序是没有影响的。不会有任何错误。

如果两个类库是表面相同,实现不同(则其中一种可能是一个新版类库,一个旧版类库),编译很有可能通过,因为通常新版类库不会改变类名及公共方法。

  “==>在需要用到类时使用类的全路径”,完全错误。只有一个类同名不同包才起作用。

   我认为你懂JAVA,但你不懂JAVA其中一些应用中很巧妙的变化。




#16


4,Object类的每个方法的用法你是不是完全搞懂?第一个方法,clone()为什么用protected修饰而不用public

#17


1, #include有什么作用,#include <filename.h>和#include "filename.h"有什么区别?

2,什么是目标文件?什么是可执行文件?

3, 你怎样查C++的文档?

4,标准库的几个基本类(string, list, vector, map)的用法你是不是完全搞懂?

5分钟全部答对,恭喜你,你至少具有C++中级程序员的能力了。否则,你就是新手。

#18


大家觉得程序是什么?仅仅是code吗?程序员的意思是不是就是coder?如果那样的话,回答出这几个问题,也许可以称得上是中级程序员吧。
另:楼上关于C++的问题我在上学时就搞得差不多了,但感觉这些问题并不能将你和一个C程序员明显的区别开。我觉得最重要的还是思想。
一些拙见,大家见笑了

#19


回复人: crazy2398() ( ) 信誉:100  2004-04-20 14:24:00  得分:0 
 
 
  大家觉得程序是什么?仅仅是code吗?程序员的意思是不是就是coder?如果那样的话,回答出这几个问题,也许可以称得上是中级程序员吧。
另:楼上关于C++的问题我在上学时就搞得差不多了,但感觉这些问题并不能将你和一个C程序员明显的区别开。我觉得最重要的还是思想。
一些拙见,大家见笑了
 
 
===============================================================

要你判断像小李飞刀和神雕侠侣两本书哪本属于优秀哪本良好是很难的。

但如果有一个人的书写得很差,就可判断了。

例如我写的书和小李飞刀哪本写得好,哪本写得差是很容易判断的。

所以如果一个人很差,还差10万8千里才达到中级程序员,这样就可判断的。

我只不过给一个试题而已,如果你的回答差10万8千里,哪么大家是知道你的水平的。你是不是中级程序员,不是由我一个人判断的。

我说“5分钟全部答对,恭喜你,你至少具有JAVA中级程序员的能力了。否则,你就是新手。”
当然不足为信,

但你回答得不好,大家会知你的水平。

#20


楼主的话很有道理。分辨两个知识层次像类似的java程序员和C++程序员的难度的确像要分辨李寻欢和杨过谁的功力高一些一样的难。不过网络上不要吹牛却也不要自谦,楼主将来写的书未必就不会比古龙的书畅销,纵然是千古绝唱也还是要有后人超越的。呵呵
一个资深的程序员对语言本身的深刻理解肯定是必然的,但是理解了语言的种种细节却未必可以成为一个高明的程序员。相信大家都是认同这点的。我的意见只是觉得楼主通过了解语言细节来断定一个程序员的水平有些误导的意思,难免有些才步入programer行列的牛犊会把他们接触到的第一个概念牢牢的记一辈子。他们往往看帖却不回帖,就像我在几年前干的那样。一旦有人看到我们在以一个人记住的对象属性的数量来衡量什么的话,那么他的下一步就快出问题了。其实语言细节对一个高明的程序员来说不过是一些语法结构和资料而已,否则编译原理的课对我们大多数的程序员就不要开了。
呵呵,又是一些拙见,请大家抨击

#21


另:楼上关于C++的问题我在上学时就搞得差不多了,但感觉这些问题并不能将你和一个C程序员明显的区别开。我觉得最重要的还是思想。
----------------------------------------------------------------------
我敢断定 ,如果一个C程序员能熟练使用string, list, vector, map,那么他同时一定还是一个中级的C++程序员。

#22


偶来回答这个问题:
@@@@@@@@@@@@@@@@@@@@@@@@@@@

1, #include有什么作用,#include <filename.h>和#include "filename.h"有什么区别?
---------------------------------
引入各种声明,供编译器使用,但是要求可见的目录里面有相应的实现lib或者dll.
<>和""体现在搜索的开始位置不同,<>从系统目录开始(相对于编译器),""从当前路径开始
ps:#include<iostream>和#include<iostream.h>的不同

2,什么是目标文件?什么是可执行文件?
--------------------------------------
目标文件,由源文件编译过来的文件,
可执行文件,目标文件连接后的文件
二者都是二进制文件

3, 你怎样查C++的文档?
-------------------------------------
用msdn,别的不知道

4,标准库的几个基本类(string, list, vector, map)的用法你是不是完全搞懂?
----------------------------------------------------------------------
string,vector知道,list,map不太清楚,不过估计用时没有问题(用文档嘛 ^_^ )


5分钟全部答对,恭喜你,你至少具有C++中级程序员的能力了。否则,你就是新手。
----------------------------------------------------------------------
天啦,我现在连用c++写一个HelloWorld都run不起来, 555555555

#23


to 回复人: oyd(cplusplus) (MVP) ( ) 信誉:100  2004-04-20 17:15:00  得分:0 
我敢断定 ,如果一个C程序员能熟练使用string, list, vector, map,那么他同时一定还是一个中级的C++程序员。
---------------------------------------------
  是吗?我身边好多人用STL编程但在自己的代码里从来不用继承和多态,更不会去定义个啥类。他们使用STL仅仅是出于方便的考虑,但是他们的思路仍然是结构化的而非面向对象.这就好比买椟还珠,用大炮打蚊子
 

#24


asdmonster(快乐的土豆)

引入各种声明,供编译器使用,但是要求可见的目录里面有相应的实现lib或者dll.
<>和""体现在搜索的开始位置不同,<>从系统目录开始(相对于编译器),""从当前路径开始
---------------------------------------------------------------------
你的第一个回答实际上并不准确,你是以java的import来类比C++的include,可是你不知道#include仅仅由预处理器进行文本包含而已,不是什么引入各种声明,忽视了这一点,你可能会在许多错误面前而不知所措

string,vector知道,list,map不太清楚,不过估计用时没有问题(用文档嘛 ^_^ )
-------------------------------------------------------------------------
那你是否知道如何用同一的方式遍历string, list, vector, map的元素呢?
map的元素类型是什么?如何使用?
list和vector的区别在哪?何时用list,何时用vector?
vector<char>和string有什么区别?如何从一个vector<char>构造出一个string来?


#25


是吗?我身边好多人用STL编程但在自己的代码里从来不用继承和多态,更不会去定义个啥类。他们使用STL仅仅是出于方便的考虑,但是他们的思路仍然是结构化的而非面向对象.这就好比买椟还珠,用大炮打蚊子
-------------------------------------------------------------------------------
实际上你不了解C++,C++不等于面向对象,C++不是单根继承,就算我用类,我也不一定要继承和多态,
C++可以作为一门大炮,但是必要的时候,它和苍蝇拍一样轻。

#26


re:oyd(cplusplus) (MVP)
C++本来就是一种注重实用的语言,兼容C是为了让C程序员尽快的学会面向对象,这一点你我应该无异议吧。不懂如何使用面向对象的C++程序员决不会是合格的程序员, 好像一个炮手不懂瞄准和计算弹道(呵呵,现在机械化和电子化了,炮手也轻松了许多阿)。高明的炮手也许可以用大炮击落蚊子,但我向他通常会用苍蝇拍,而非大炮。我也经常用VC去编写ACM试题之类的小程序,但我想反过来的话,如果我只会用C,那么也不能因为我在用C++编译器和C++库就说我是C++程序员。
呵呵,好奇怪哦,咋在java论坛里说起了C和C++的事。不过说到底,类库等语言细节虽然重要,却不是评判一个程序员水平的全部标准

#27


JavaSoft 在 JDK 1.1 中已定义了一种新的档案文件格式,您可以用这种新的格式将所有图像文件、音频文件和类文件打包在一个文件中。JavaSoft 将这种格式称为 Java Archive (JAR)。

#28


类库等语言细节虽然重要,却不是评判一个程序员水平的全部标准


==========================

补充:同意你的说法,类库等语言细节虽然重要,却不是评判一个程序员水平的全部标准,所以评价高级JAVA程序员或JAVA大师不应该使用这样的办法,但我想可以用来作为初级程序员和中级程序员的标准。

#29


crazy2398(抬杠中......) 
如果我只会用C,那么也不能因为我在用C++编译器和C++库就说我是C++程序员。
--------------------------------------------------------------------------------
首先,如果一个程序员在用C++编译器和C++标准库,那么我们可以断定
1,他会使用using namespace std;或者他会用std::这样的限定符,这说明他会名字空间
2,他会利用模版进行泛型程序设计
3,他会调用成员函数
4,他在声明一个对象时会使用其构造函数来初始化数据
5,他的编程过程中或多或少会存在错误,那么他调试的时候一定会知道运算符重载是怎么回事。例如跟踪一个=号,他就会发现那是operator =。
以上种种迹象足以表明这是一个C++程序员所为。

我再说明一遍,C++不同于java,它不是java那样的面向对象的语言。在java中,class是一切,而在c++中,class只是一种自定义类型而已。



#30


Object类的每个方法的用法你是不是完全搞懂?


靠。加上注释,Object类可是有477行代码歪。真正想搞清楚Object的蛛丝马迹还是挺复杂的。

#31


第一次问题问的很不明白
如果要深入讲的话,就是研究jvm的class loader的问题了

能回答这些问题的真的就可以算是中级程序员了么?
感觉问题的难度很不一致啊
3与4的差别尤其明显

另外,Object中的方法我只知道有toString(),clone(),hashcode(),equals(),getClass()
看了这个帖子才去查api,发现还有好几个
既然都没听说过,更谈不上搞懂了 -_-#

#32


oyd(cplusplus) (MVP) :

--------------------------
不能这么说吧,
如果没有class和它所代表的OO,那么你写出来的c++代码依然是c代码,那么你也不过是一个掌握了一些c++类库的c程序员。

其实有些地方也值得商榷,比如泛型设计,一方面,很多人都认为这个比较难,也就是另一方面,学好的学懂的人不多。怎么样进行泛型设计不难,但是怎么样进行良好的泛型设计就是一个很见程序设计功底的话题了。当然,这和语言没有关系,而是纯粹的OO,你用伪代码写最好。

当考虑到C++里面的templet,class等的时候,c++已经不是一个简单的c&&plusplus,“也许刚开始叫它D语言也没有多少人反对”

#33


楼上的一些回答有点搞  俺想俺应该算是菜鸟级的

#34


回复人: zcjl(假球迷:最爱米兰!) ( ) 信誉:105  2004-04-22 18:12:00  得分:0 

另外,Object中的方法我只知道有toString(),clone(),hashcode(),equals(),getClass()
看了这个帖子才去查api,发现还有好几个
既然都没听说过,更谈不上搞懂了 -_-#

========================================
你应该不懂线程 ,你可能搞JAVA的时间或者比较短,或者没兴趣搞线程。
 
 

#35


回复人: zcjl(假球迷:最爱米兰!) ( ) 信誉:105  2004-04-22 18:12:00  得分:0 
 
 
  第一次问题问的很不明白
如果要深入讲的话,就是研究jvm的class loader的问题了

能回答这些问题的真的就可以算是中级程序员了么?
感觉问题的难度很不一致啊
3与4的差别尤其明显

另外,Object中的方法我只知道有toString(),clone(),hashcode(),equals(),getClass()
看了这个帖子才去查api,发现还有好几个
既然都没听说过,更谈不上搞懂了 -_-#
 
==============================================

如果你是以正常的步骤搞JAVA,那么要完全搞懂classpath,你必须搞JAVA有相当长的一段时间并且比较认真搞JAVA。

当然会有误差,特别是如果一个初级JAVA程序员什么都不搞,就只想搞懂classpath,这一定属于误差。

#36


你应该不懂线程 ,你可能搞JAVA的时间或者比较短,或者没兴趣搞线程。

----------------------
呵呵,真是好准
我学java很仓促,本来毕业时是准备用c的
加上没有人指导和自己的懒惰
从来都是要用什么的时候才去看
这样做的后果是能勉强作些东西给老板看
却造就了很多toy程序,甚至是垃圾程序
线程是前不久让我做聊天室的时候才稍微看了一下
后来因为任务的变动又放下了
所以我至今不知道wait方法原来是在Object中声明的
还以为是Thread类的专有方法呢  *_*

#37


如果你是以正常的步骤搞JAVA,那么要完全搞懂classpath,你必须搞JAVA有相当长的一段时间并且比较认真搞JAVA。

----------------------------
我明白classpath该怎么用并没有花多少时间(当然,也没有深入到jvm的程度)
这得益于我的愚笨和电脑配置太差,我一直使用不惯IDE(jb或是其他..)
在csdn上看到一篇用editplus集成外部工具做开发后
我就渐渐喜欢上了这种方式
因为所有的设置都得自己去弄,也出了不少问题
但也逐步的了解到classpath怎样设置才会起作用而不会引发冲突
当然,在使用了ant作为编译工具后,每次都动态设置classpath
问题出现的次数就更少了
^_^

#38


回复人: zcjl(假球迷:最爱米兰!) ( ) 信誉:105  2004-04-23 08:41:00  得分:0 
 
 
  如果你是以正常的步骤搞JAVA,那么要完全搞懂classpath,你必须搞JAVA有相当长的一段时间并且比较认真搞JAVA。

----------------------------
我明白classpath该怎么用并没有花多少时间(当然,也没有深入到jvm的程度)
这得益于我的愚笨和电脑配置太差,我一直使用不惯IDE(jb或是其他..)
在csdn上看到一篇用editplus集成外部工具做开发后
我就渐渐喜欢上了这种方式
因为所有的设置都得自己去弄,也出了不少问题
但也逐步的了解到classpath怎样设置才会起作用而不会引发冲突
当然,在使用了ant作为编译工具后,每次都动态设置classpath
问题出现的次数就更少了
^_^
 
======================================================
当然会有误差,特别是如果一个初级JAVA程序员什么都不搞,就只想搞懂classpath,这一定属于误差。

  还好我没说死。

  呵呵呵呵..........

#1


这几道面试题只有第一次考有效。

#2


初级是什么水平呢?helloworld?

#3


看来初级只有hellworld了

#4


#5


1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

2,什么是Jar?
我的理解是类库的一种打包格式,引入它就等于引入整个目录结构

3, 你怎样查JAVA的API文档,在文档中经常出现的Deprecated是什么意思?
联机文档啊,deprecated是不推荐使用的意思,该方法或成员在今后的JAVA版本中可能被取消或修改

4,Object类的每个方法的用法你是不是完全搞懂?
不多

还是菜鸟多一些啊

#6


回复人: gernett21(森林狼) ( ) 信誉:89  2004-04-20 09:40:00  得分:0 
 
 
  1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

2,什么是Jar?
我的理解是类库的一种打包格式,引入它就等于引入整个目录结构

3, 你怎样查JAVA的API文档,在文档中经常出现的Deprecated是什么意思?
联机文档啊,deprecated是不推荐使用的意思,该方法或成员在今后的JAVA版本中可能被取消或修改

4,Object类的每个方法的用法你是不是完全搞懂?
不多

还是菜鸟多一些啊
 
 
==============================================

你的第二个问题有问题,答得不好。

#7


回复人: game0ver12345(sfsfdsfdsdfsf) ( ) 信誉:100  2004-04-20 10:14:00  得分:0 
 
 
  回复人: gernett21(森林狼) ( ) 信誉:89  2004-04-20 09:40:00  得分:0 
 
 
  1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

2,什么是Jar?
我的理解是类库的一种打包格式,引入它就等于引入整个目录结构

3, 你怎样查JAVA的API文档,在文档中经常出现的Deprecated是什么意思?
联机文档啊,deprecated是不推荐使用的意思,该方法或成员在今后的JAVA版本中可能被取消或修改

4,Object类的每个方法的用法你是不是完全搞懂?
不多

还是菜鸟多一些啊
 
 
==============================================

你的第二个问题有问题,答得不好。
 
 
第三个问题也有问题,答得不好。

#8


第一个问题能不能回答完美一点,

   claapath怎样配 ?如果没配好,import会出现什么问题?你怎么知道classpath有没有配好? 如果classpath存在两个相同类库,import 会有什么问题?如果classpath引入两个相同的库,你有什么好办法排除?

#9


应该算初级程序员吧,如果答不出来只能算新手,不能算java程序员。
classpath永远属于新手问题。

#10



 回复人: jkit(不再灌水) ( ) 信誉:100  2004-04-20 11:26:00  得分:0 
 
 
  应该算初级程序员吧,如果答不出来只能算新手,不能算java程序员。
classpath永远属于新手问题。
 
 
==================================================================

1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

如果这样的回答算是对的话,问题确实太简单了。但如果你要完全明白classpath 和import 的所有问题,这个问题确实是需要相当的一段时间的。

 例如  :    如果classpath存在两个相同类库,import 会有什么问题?会有什么情况出现。
  基本上你搞JAVA有一段比较长的时间,才会遇到这种问题。

#11


回复人: gernett21(森林狼) ( ) 信誉:89  2004-04-20 09:40:00  得分:0 
 
 
  1, Classpath , import 有什么关系?
import会引入在classpath上的路径上的类库

2,什么是Jar?
我的理解是类库的一种打包格式,引入它就等于引入整个目录结构

3, 你怎样查JAVA的API文档,在文档中经常出现的Deprecated是什么意思?
联机文档啊,deprecated是不推荐使用的意思,该方法或成员在今后的JAVA版本中可能被取消或修改

4,Object类的每个方法的用法你是不是完全搞懂?
不多


======================================

gernett21(森林狼) 这个回答表现出他不是一个中级程序员。

第二条问题你的理解有偏差。

#12


TO gameover12345:

claapath怎样配 ?
==>在系统(或用户)环境变量中配置

如果没配好,import会出现什么问题?
==>编译时找不到相应的类

你怎么知道classpath有没有配好?
==>用不了或不好用时就知道了期 *_*

如果classpath存在两个相同类库,import 会有什么问题?
==>编译器会通知你,不能通过编译

如果classpath引入两个相同的库,你有什么好办法排除?
==>在需要用到类时使用类的全路径
==>如果是相同的包名和类名,则最好是去掉低版本的那个设置[基本上是高版本兼容低版本].

#13


up

#14


如果classpath存在两个相同类库,import 会有什么问题?
--------------------------------------------------------------------------

没有问题!

#15


如果classpath存在两个相同类库,import 会有什么问题?
==>编译器会通知你,不能通过编译

如果classpath引入两个相同的库,你有什么好办法排除?
==>在需要用到类时使用类的全路径
==>如果是相同的包名和类名,则最好是去掉低版本的那个设置[基本上是高版本兼容低版本].

=====================================================================

你的回答错误:

如果两个类库是完全一模一样的(则同一个类库,两个copy),import 是不会有任何问题,而且程序也不会产生任何问题。基本上classpath存在两个完完全全相同的类库,程序是没有影响的。不会有任何错误。

如果两个类库是表面相同,实现不同(则其中一种可能是一个新版类库,一个旧版类库),编译很有可能通过,因为通常新版类库不会改变类名及公共方法。

  “==>在需要用到类时使用类的全路径”,完全错误。只有一个类同名不同包才起作用。

   我认为你懂JAVA,但你不懂JAVA其中一些应用中很巧妙的变化。




#16


4,Object类的每个方法的用法你是不是完全搞懂?第一个方法,clone()为什么用protected修饰而不用public

#17


1, #include有什么作用,#include <filename.h>和#include "filename.h"有什么区别?

2,什么是目标文件?什么是可执行文件?

3, 你怎样查C++的文档?

4,标准库的几个基本类(string, list, vector, map)的用法你是不是完全搞懂?

5分钟全部答对,恭喜你,你至少具有C++中级程序员的能力了。否则,你就是新手。

#18


大家觉得程序是什么?仅仅是code吗?程序员的意思是不是就是coder?如果那样的话,回答出这几个问题,也许可以称得上是中级程序员吧。
另:楼上关于C++的问题我在上学时就搞得差不多了,但感觉这些问题并不能将你和一个C程序员明显的区别开。我觉得最重要的还是思想。
一些拙见,大家见笑了

#19


回复人: crazy2398() ( ) 信誉:100  2004-04-20 14:24:00  得分:0 
 
 
  大家觉得程序是什么?仅仅是code吗?程序员的意思是不是就是coder?如果那样的话,回答出这几个问题,也许可以称得上是中级程序员吧。
另:楼上关于C++的问题我在上学时就搞得差不多了,但感觉这些问题并不能将你和一个C程序员明显的区别开。我觉得最重要的还是思想。
一些拙见,大家见笑了
 
 
===============================================================

要你判断像小李飞刀和神雕侠侣两本书哪本属于优秀哪本良好是很难的。

但如果有一个人的书写得很差,就可判断了。

例如我写的书和小李飞刀哪本写得好,哪本写得差是很容易判断的。

所以如果一个人很差,还差10万8千里才达到中级程序员,这样就可判断的。

我只不过给一个试题而已,如果你的回答差10万8千里,哪么大家是知道你的水平的。你是不是中级程序员,不是由我一个人判断的。

我说“5分钟全部答对,恭喜你,你至少具有JAVA中级程序员的能力了。否则,你就是新手。”
当然不足为信,

但你回答得不好,大家会知你的水平。

#20


楼主的话很有道理。分辨两个知识层次像类似的java程序员和C++程序员的难度的确像要分辨李寻欢和杨过谁的功力高一些一样的难。不过网络上不要吹牛却也不要自谦,楼主将来写的书未必就不会比古龙的书畅销,纵然是千古绝唱也还是要有后人超越的。呵呵
一个资深的程序员对语言本身的深刻理解肯定是必然的,但是理解了语言的种种细节却未必可以成为一个高明的程序员。相信大家都是认同这点的。我的意见只是觉得楼主通过了解语言细节来断定一个程序员的水平有些误导的意思,难免有些才步入programer行列的牛犊会把他们接触到的第一个概念牢牢的记一辈子。他们往往看帖却不回帖,就像我在几年前干的那样。一旦有人看到我们在以一个人记住的对象属性的数量来衡量什么的话,那么他的下一步就快出问题了。其实语言细节对一个高明的程序员来说不过是一些语法结构和资料而已,否则编译原理的课对我们大多数的程序员就不要开了。
呵呵,又是一些拙见,请大家抨击

#21


另:楼上关于C++的问题我在上学时就搞得差不多了,但感觉这些问题并不能将你和一个C程序员明显的区别开。我觉得最重要的还是思想。
----------------------------------------------------------------------
我敢断定 ,如果一个C程序员能熟练使用string, list, vector, map,那么他同时一定还是一个中级的C++程序员。

#22


偶来回答这个问题:
@@@@@@@@@@@@@@@@@@@@@@@@@@@

1, #include有什么作用,#include <filename.h>和#include "filename.h"有什么区别?
---------------------------------
引入各种声明,供编译器使用,但是要求可见的目录里面有相应的实现lib或者dll.
<>和""体现在搜索的开始位置不同,<>从系统目录开始(相对于编译器),""从当前路径开始
ps:#include<iostream>和#include<iostream.h>的不同

2,什么是目标文件?什么是可执行文件?
--------------------------------------
目标文件,由源文件编译过来的文件,
可执行文件,目标文件连接后的文件
二者都是二进制文件

3, 你怎样查C++的文档?
-------------------------------------
用msdn,别的不知道

4,标准库的几个基本类(string, list, vector, map)的用法你是不是完全搞懂?
----------------------------------------------------------------------
string,vector知道,list,map不太清楚,不过估计用时没有问题(用文档嘛 ^_^ )


5分钟全部答对,恭喜你,你至少具有C++中级程序员的能力了。否则,你就是新手。
----------------------------------------------------------------------
天啦,我现在连用c++写一个HelloWorld都run不起来, 555555555

#23


to 回复人: oyd(cplusplus) (MVP) ( ) 信誉:100  2004-04-20 17:15:00  得分:0 
我敢断定 ,如果一个C程序员能熟练使用string, list, vector, map,那么他同时一定还是一个中级的C++程序员。
---------------------------------------------
  是吗?我身边好多人用STL编程但在自己的代码里从来不用继承和多态,更不会去定义个啥类。他们使用STL仅仅是出于方便的考虑,但是他们的思路仍然是结构化的而非面向对象.这就好比买椟还珠,用大炮打蚊子
 

#24


asdmonster(快乐的土豆)

引入各种声明,供编译器使用,但是要求可见的目录里面有相应的实现lib或者dll.
<>和""体现在搜索的开始位置不同,<>从系统目录开始(相对于编译器),""从当前路径开始
---------------------------------------------------------------------
你的第一个回答实际上并不准确,你是以java的import来类比C++的include,可是你不知道#include仅仅由预处理器进行文本包含而已,不是什么引入各种声明,忽视了这一点,你可能会在许多错误面前而不知所措

string,vector知道,list,map不太清楚,不过估计用时没有问题(用文档嘛 ^_^ )
-------------------------------------------------------------------------
那你是否知道如何用同一的方式遍历string, list, vector, map的元素呢?
map的元素类型是什么?如何使用?
list和vector的区别在哪?何时用list,何时用vector?
vector<char>和string有什么区别?如何从一个vector<char>构造出一个string来?


#25


是吗?我身边好多人用STL编程但在自己的代码里从来不用继承和多态,更不会去定义个啥类。他们使用STL仅仅是出于方便的考虑,但是他们的思路仍然是结构化的而非面向对象.这就好比买椟还珠,用大炮打蚊子
-------------------------------------------------------------------------------
实际上你不了解C++,C++不等于面向对象,C++不是单根继承,就算我用类,我也不一定要继承和多态,
C++可以作为一门大炮,但是必要的时候,它和苍蝇拍一样轻。

#26


re:oyd(cplusplus) (MVP)
C++本来就是一种注重实用的语言,兼容C是为了让C程序员尽快的学会面向对象,这一点你我应该无异议吧。不懂如何使用面向对象的C++程序员决不会是合格的程序员, 好像一个炮手不懂瞄准和计算弹道(呵呵,现在机械化和电子化了,炮手也轻松了许多阿)。高明的炮手也许可以用大炮击落蚊子,但我向他通常会用苍蝇拍,而非大炮。我也经常用VC去编写ACM试题之类的小程序,但我想反过来的话,如果我只会用C,那么也不能因为我在用C++编译器和C++库就说我是C++程序员。
呵呵,好奇怪哦,咋在java论坛里说起了C和C++的事。不过说到底,类库等语言细节虽然重要,却不是评判一个程序员水平的全部标准

#27


JavaSoft 在 JDK 1.1 中已定义了一种新的档案文件格式,您可以用这种新的格式将所有图像文件、音频文件和类文件打包在一个文件中。JavaSoft 将这种格式称为 Java Archive (JAR)。

#28


类库等语言细节虽然重要,却不是评判一个程序员水平的全部标准


==========================

补充:同意你的说法,类库等语言细节虽然重要,却不是评判一个程序员水平的全部标准,所以评价高级JAVA程序员或JAVA大师不应该使用这样的办法,但我想可以用来作为初级程序员和中级程序员的标准。

#29


crazy2398(抬杠中......) 
如果我只会用C,那么也不能因为我在用C++编译器和C++库就说我是C++程序员。
--------------------------------------------------------------------------------
首先,如果一个程序员在用C++编译器和C++标准库,那么我们可以断定
1,他会使用using namespace std;或者他会用std::这样的限定符,这说明他会名字空间
2,他会利用模版进行泛型程序设计
3,他会调用成员函数
4,他在声明一个对象时会使用其构造函数来初始化数据
5,他的编程过程中或多或少会存在错误,那么他调试的时候一定会知道运算符重载是怎么回事。例如跟踪一个=号,他就会发现那是operator =。
以上种种迹象足以表明这是一个C++程序员所为。

我再说明一遍,C++不同于java,它不是java那样的面向对象的语言。在java中,class是一切,而在c++中,class只是一种自定义类型而已。



#30


Object类的每个方法的用法你是不是完全搞懂?


靠。加上注释,Object类可是有477行代码歪。真正想搞清楚Object的蛛丝马迹还是挺复杂的。

#31


第一次问题问的很不明白
如果要深入讲的话,就是研究jvm的class loader的问题了

能回答这些问题的真的就可以算是中级程序员了么?
感觉问题的难度很不一致啊
3与4的差别尤其明显

另外,Object中的方法我只知道有toString(),clone(),hashcode(),equals(),getClass()
看了这个帖子才去查api,发现还有好几个
既然都没听说过,更谈不上搞懂了 -_-#

#32


oyd(cplusplus) (MVP) :

--------------------------
不能这么说吧,
如果没有class和它所代表的OO,那么你写出来的c++代码依然是c代码,那么你也不过是一个掌握了一些c++类库的c程序员。

其实有些地方也值得商榷,比如泛型设计,一方面,很多人都认为这个比较难,也就是另一方面,学好的学懂的人不多。怎么样进行泛型设计不难,但是怎么样进行良好的泛型设计就是一个很见程序设计功底的话题了。当然,这和语言没有关系,而是纯粹的OO,你用伪代码写最好。

当考虑到C++里面的templet,class等的时候,c++已经不是一个简单的c&&plusplus,“也许刚开始叫它D语言也没有多少人反对”

#33


楼上的一些回答有点搞  俺想俺应该算是菜鸟级的

#34


回复人: zcjl(假球迷:最爱米兰!) ( ) 信誉:105  2004-04-22 18:12:00  得分:0 

另外,Object中的方法我只知道有toString(),clone(),hashcode(),equals(),getClass()
看了这个帖子才去查api,发现还有好几个
既然都没听说过,更谈不上搞懂了 -_-#

========================================
你应该不懂线程 ,你可能搞JAVA的时间或者比较短,或者没兴趣搞线程。
 
 

#35


回复人: zcjl(假球迷:最爱米兰!) ( ) 信誉:105  2004-04-22 18:12:00  得分:0 
 
 
  第一次问题问的很不明白
如果要深入讲的话,就是研究jvm的class loader的问题了

能回答这些问题的真的就可以算是中级程序员了么?
感觉问题的难度很不一致啊
3与4的差别尤其明显

另外,Object中的方法我只知道有toString(),clone(),hashcode(),equals(),getClass()
看了这个帖子才去查api,发现还有好几个
既然都没听说过,更谈不上搞懂了 -_-#
 
==============================================

如果你是以正常的步骤搞JAVA,那么要完全搞懂classpath,你必须搞JAVA有相当长的一段时间并且比较认真搞JAVA。

当然会有误差,特别是如果一个初级JAVA程序员什么都不搞,就只想搞懂classpath,这一定属于误差。

#36


你应该不懂线程 ,你可能搞JAVA的时间或者比较短,或者没兴趣搞线程。

----------------------
呵呵,真是好准
我学java很仓促,本来毕业时是准备用c的
加上没有人指导和自己的懒惰
从来都是要用什么的时候才去看
这样做的后果是能勉强作些东西给老板看
却造就了很多toy程序,甚至是垃圾程序
线程是前不久让我做聊天室的时候才稍微看了一下
后来因为任务的变动又放下了
所以我至今不知道wait方法原来是在Object中声明的
还以为是Thread类的专有方法呢  *_*

#37


如果你是以正常的步骤搞JAVA,那么要完全搞懂classpath,你必须搞JAVA有相当长的一段时间并且比较认真搞JAVA。

----------------------------
我明白classpath该怎么用并没有花多少时间(当然,也没有深入到jvm的程度)
这得益于我的愚笨和电脑配置太差,我一直使用不惯IDE(jb或是其他..)
在csdn上看到一篇用editplus集成外部工具做开发后
我就渐渐喜欢上了这种方式
因为所有的设置都得自己去弄,也出了不少问题
但也逐步的了解到classpath怎样设置才会起作用而不会引发冲突
当然,在使用了ant作为编译工具后,每次都动态设置classpath
问题出现的次数就更少了
^_^

#38


回复人: zcjl(假球迷:最爱米兰!) ( ) 信誉:105  2004-04-23 08:41:00  得分:0 
 
 
  如果你是以正常的步骤搞JAVA,那么要完全搞懂classpath,你必须搞JAVA有相当长的一段时间并且比较认真搞JAVA。

----------------------------
我明白classpath该怎么用并没有花多少时间(当然,也没有深入到jvm的程度)
这得益于我的愚笨和电脑配置太差,我一直使用不惯IDE(jb或是其他..)
在csdn上看到一篇用editplus集成外部工具做开发后
我就渐渐喜欢上了这种方式
因为所有的设置都得自己去弄,也出了不少问题
但也逐步的了解到classpath怎样设置才会起作用而不会引发冲突
当然,在使用了ant作为编译工具后,每次都动态设置classpath
问题出现的次数就更少了
^_^
 
======================================================
当然会有误差,特别是如果一个初级JAVA程序员什么都不搞,就只想搞懂classpath,这一定属于误差。

  还好我没说死。

  呵呵呵呵..........