为什么我觉得java比C/C++难

ninesea 2008-01-27 12:25:21
感觉java的数据结构好难理解
C/C++的数据结构代码我看一遍基本上就能看懂
用java写的数据结构我看很多遍都不一定能看懂
谁给我说一下java写数据结构的一些思想 不像C/C++用指针指来指去的感觉很直观明了 我很喜欢goto那种逻辑
...全文
1230 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzdiablo 2008-01-29
  • 打赏
  • 举报
回复
上手 先用.net吧 最少开发调试时比java简单多了 学精了再学java.
如果LZ C++基础还行的话学这些应该不难
healer_kx 2008-01-28
  • 打赏
  • 举报
回复
tomcat我几年前都模拟过,可以支持Servlet。这个道理我明白,最早的CGI和Servlet从原理上确实是一直的,你认为Servlet里面的out.writeln比CGI里面用printf("%s", "<html></html>")高级到什么层次了嘛?最近一年我学了Lex和Yacc,从JSP到Servlet的翻译,你认为那很高级嘛?
insiku 2008-01-28
  • 打赏
  • 举报
回复
面向的层面不同而已
你用C++去写网站啊 你直接把html的内容以字符流返回啊
就好像老式的房子 地基是用那种水泥砖 俗称青砖 上面就用红砖 非沉重墙只用半砖
healer_kx 2008-01-28
  • 打赏
  • 举报
回复
诸位,有只会C语言,不会其他语言的高手嘛? 有,Linus就是一个,这个鸟人连C++都不会。
有只会Java,不会其他语言的高手存在嘛? 我不知道,等着大家发掘出来一个,不过常常听人说不会C就等于不会编程。
healer_kx 2008-01-28
  • 打赏
  • 举报
回复
TO 火龙果
Java中也有指针的,只不过不对外开放,由虚拟机内部进行操作。
————————————————————————————————
你这句话等于没有说,那我说SQL也有指针呢。Java在语言上没有C#的unsafe,sizeof等关键字,即便是把指针开放出来,也是没有用的。
如果加了,就要考虑大端,小端的问题,那么Java还能跨平台嘛?不能跨平台的Java还是Java嘛?


C/C++所能实现的数据结构和算法在Java都能实现,现在也有以Java为语言的数据结构和算法书籍。
————————————————————————————————
这个确实,但是HashMap这种东西基本都是C/C++写的,Java给做了一个“壳子”。有真正用Java本身实现的哈息表在使用嘛?

为了便于开发人员使用,Java类库中的已经包含了大多数的数据结构,并不需要自己去实现,直接
调用就可以了,让开发人员更多地关注于业务逻辑的实现,而并非关注在数据结构上。
————————————————————————————————
确实,大多数的情况,ArrayList,HashTable,TreeMap就可以适用了,但是那种极端的情况就是非C/C++不可的了。


或者可以这么说,Java是一种偏向于应用的编程语言,而C/C++更多地偏向于学术方面。
—————————————————————————————————
C/C++在学术方面相对于Java来说的确实够学术了,但是从应用的角度,java的应用还是远远少于C/C++的。
你此刻无论是在WinXP上,还是Linux上,除了你的Eclipse是一个优秀的Java产品外,你还能找出来第二个嘛?

:)

lovekker 2008-01-28
  • 打赏
  • 举报
回复
个人观点:
思想上的问题 Java会使你的思想从过程式的设计方式转变到oo方式..
把具体细节给封装(隐藏)了,你只需要关注你本职的那一部分,而不用了解整个系统..
  • 打赏
  • 举报
回复
Java中也有指针的,只不过不对外开放,由虚拟机内部进行操作。

C/C++所能实现的数据结构和算法在Java都能实现,现在也有以Java为语言的数据结构和算法书籍。

为了便于开发人员使用,Java类库中的已经包含了大多数的数据结构,并不需要自己去实现,直接
调用就可以了,让开发人员更多地关注于业务逻辑的实现,而并非关注在数据结构上。

或者可以这么说,Java是一种偏向于应用的编程语言,而C/C++更多地偏向于学术方面。
healer_kx 2008-01-28
  • 打赏
  • 举报
回复
可以看这两个帖子,从Java快速地认识C++,或者从C++快速地认识Java。
http://healerkx.spaces.live.com/blog/cns!9485FFC4816F2CAD!911.entry
http://healerkx.spaces.live.com/blog/cns!9485FFC4816F2CAD!912.entry
mdzlkj 2008-01-28
  • 打赏
  • 举报
回复
java 上手太简单了 比VB还简单
Leen_fang 2008-01-28
  • 打赏
  • 举报
回复
仁者见仁 智者见智
healer_kx 2008-01-28
  • 打赏
  • 举报
回复
天哪,什么世道啊,还有觉得Java上手难的,我觉得Java是我见过语言里最简单的一种了,比它简单的就是Python了。
zhoubaiwen 2008-01-28
  • 打赏
  • 举报
回复
有同感
bloodrate 2008-01-28
  • 打赏
  • 举报
回复
感觉JAVA的上手要难一些,因为JAVA的语法局限性太强了,C写东西很随意,怎么写怎么是,所以上手容易一些。
yuanqingfei 2008-01-28
  • 打赏
  • 举报
回复
习惯问题,over。
ljmat427 2008-01-28
  • 打赏
  • 举报
回复
mark
healer_kx 2008-01-28
  • 打赏
  • 举报
回复
楼主,以后不要在代码中写中文了。你这个代码在Windows写完了,在MAC OS X未必打得开哦,而且放到CVS里面,可能出现一些问题。
YeLang2007 2008-01-28
  • 打赏
  • 举报
回复

上面也说了不少了,我来接分了...

再顶一下!
lixkyx 2008-01-28
  • 打赏
  • 举报
回复
呵呵!基本上是一个习惯的问题,如果你已经熟悉了C/C++的思路,自然会觉得Java不好懂,但是,对于一个既不熟悉C,也不熟悉Java的人,自然Java上手比C/C++容易多了。
liufangbj 2008-01-28
  • 打赏
  • 举报
回复
看看,学了不少咚咚
看到有的星星很激动~~
嗬嗬,新手加入,看看大家都讨论什么~~
PS:喜欢C语言~~
ninesea 2008-01-28
  • 打赏
  • 举报
回复
哈哈 大家不要跑题撒 本来我也不是很关心数据结构的问题 但是那天看到这个帖子
http://topic.csdn.net/u/20080121/13/14691c78-e3b7-4043-bb69-3342b803c2ca.html
我第一次做这个题目的时候40多分钟就做出来了 然后我想既然学了编程 我也试试用程序来解 而且既然用了电脑就不应该再包含人的推理过程了
想法是这样的 就是一个二维数组 然后按已知条件往里面放元素 如果该位置已经有数据了再往后放 如果放到最后都不能满足条件 说明上一个条件位置放错了 再返回上一个条件 先清空再往后放
感觉类似栈的结构 但是我却无从下手(用C++的话可能勉强能写个类出来)所以才发现数据结构的重要性 而且我还有一些更好的想法 但实在是写不好代码

下面是我写的一部分垃圾代码 初学编程 代码逻辑比较简单 见笑了
我的目的就是想把这个问题用一个类或者一个函数来解决 传递给出条件中的两个参数 外加一个辅助参数就可以了

//因为条件中有减一的情况 所以用了[6][6] 省去了判断
public class Einstein {
public static void main(String args[]){
String[][] house=new String[6][6];
/*----------------------------
house[1]:颜色
house[2]:国籍
house[3]:饮料
house[4]:香烟
house[5]:宠物
----------------------------*/
for(int j=1;j<6;j++)
for(int k=1;k<6;k++)
house[j][k]="blank";

//8、住在中间房子的人喝牛奶
house[3][3]="牛奶";
//9、挪威人住第一间房
house[2][1]="挪威";
//14、挪威人住蓝色房子隔壁
house[1][2]="蓝色";

//其他按顺序来
//===============================================================
//1、英国人住红色房子
for(int i=1;i<6;i++){
while(false){
mark_i:
house[2][i]="blank";house[1][i]="blank";
i++;
}
if(house[2][i].equals("blank") && house[1][i].equals("blank")){
house[2][i]="英国";house[1][i]="红色";
break;
}
}
//===============================================================
//2、瑞典人养狗
for(int ii=1;ii<6;ii++){
if(ii>5) continue mark_i;
while(false){
mark_ii:
house[2][ii]="blank";house[5][ii]="blank";
ii++;
}
if(house[2][ii].equals("blank") && house[5][ii].equals("blank")){
house[2][ii]="瑞典";house[5][ii]="狗";
break;
}
}
//===============================================================
//3、丹麦人喝茶
for(int iii=1;iii<6;iii++){
if(iii>5) continue mark_ii;
while(false){
mark_iii:
house[2][iii]="blank";house[3][iii]="blank";
iii++;
}
if(house[2][iii].equals("blank") && house[3][iii].equals("blank")){
house[2][iii]="丹麦";house[3][iii]="茶";
break;
}
}
//===============================================================
//5、绿色房子主人喝咖啡(4先跳过)
for(int v=1;v<6;v++){
if(v>5) continue mark_iii;
while(false){
mark_v:
house[1][v]="blank";house[3][v]="blank";
v++;
}
if(house[1][v].equals("blank") && house[3][v].equals("blank")){
house[1][v]="绿色";house[3][v]="咖啡";
break;
}
}
//===============================================================
//6、抽Pall Mall香烟的人养鸟
for(int vi=1;vi<6;vi++){
if(vi>5) continue mark_v;
while(false){
mark_vi:
house[4][vi]="blank";house[5][vi]="blank";
vi++;
}
if(house[4][vi].equals("blank") && house[5][vi].equals("blank")){
house[4][vi]="Pall Mall";house[5][vi]="鸟";
break;
}
}
……
……
……
加载更多回复(33)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧