我现在学习的是C++,并有一定的基础!
但我有一个朋友叫我学习Java,但是我让他说个所以然来!
得到的答案
竟然是Java时髦!说什么Java引导web一场大革命!但我从网络上找到知名网站(yahoo,google,baidu,Ibm等等)做网站的用Java的相当少呀!
PHP都被Java使用的多!
还有使用Perl,......Java仅仅站到不足10%!还没有Perl多!另外从直觉上来看Java代码里面每成员函数前都要加上什么public
很烦琐不如C++哎没办法!就来到这里来询问大家?
但我有一个朋友叫我学习Java,但是我让他说个所以然来!
得到的答案
竟然是Java时髦!说什么Java引导web一场大革命!但我从网络上找到知名网站(yahoo,google,baidu,Ibm等等)做网站的用Java的相当少呀!
PHP都被Java使用的多!
还有使用Perl,......Java仅仅站到不足10%!还没有Perl多!另外从直觉上来看Java代码里面每成员函数前都要加上什么public
很烦琐不如C++哎没办法!就来到这里来询问大家?
两个东西真要比较个所以然我觉得没什么意思!
我大学学的是C++;进了公司因为工作的需要只好重新学JAVA了!
指针使用 非指针使用
声明 ObjectClass Instance ObjectClass* Instance ObjectClass Instance
创建 Instance=new ObjectClass() Instance=new ObjectClass() 声明时自动创建
数据访问 Instance.Data Instance->Data Instance.Data
方法调用 Instance.Method() Instance->Method() Instance.Method()
复制 指针复制 Instance1=Instance2 Instance1=Instance2
不提供
内容复制 由类自身定义 不提供 缺省,或由类自身定义
比较 指针比较 Instance1==Instance2 Instance1==Instance2 不提供
内容比较 由类自身定义 不提供 缺省,或由类自身定义
销毁 不再引用时由垃圾收集器自动销毁 delete Instance 超出作用域时自动销毁 注: ① C++的"指针使用"一列中并未列出形如*Instance的使用,因为这样做的实质不是指针使用; ②"指针复制"是指使得两个对象今后使用相同的一块内存区域,任何对此区域的修改同时会反映到这两个对象上; ③"内容复制"则指拷贝两个对象各自的存储区域,拷贝后内容相同,但各自保留自己的存储区,以后对任一者的修改不会影响另一者。 从上表可以看出,除了对象销毁机制以外,JAVA的对象其实是从C++中的对象和指针共同继承而来的。
但是,很多极力提倡JAVA语言的人似乎没有意识到这种关系。他们批评C++指针的概念太难被初学者接受。的确,对初学者来说,接受计算机存储器和指针的概念并不是轻而易举的事。事实上,很多程序员都经历过这样一个迷惘的阶段。但这并不意味着存在一种对存储器的解释可以完全避免"指针"这一概念--在 JAVA语言中也是如此。现在有很多讲解JAVA语言的教材,但真正能够从头到尾不出现"指针"或者类似概念(不包括抨击C++语言时的使用)的,又有几本呢? 特别地,JAVA初学者由于理解的障碍,经常提出像这样的问题:"为什么像int、float这样的变量使用前不需要先用 new命令来创建而对象却要呢?为什么两个对象互相复制以后,修改其中一个会影响另一个,而像int、float这样的基本数据类型却不会呢?两个值相等的对象,用==比较的结果为什么是false,它们有什么是不等呢……"面对这样的问题,即使许多对JAVA比较熟悉的人有时也说不出个所以然来。究其原因,就是JAVA中的对象从来就没有离开C++指针的影子,特别是在创建、复制(事实上,JAVA默认时只提供指针复制)和比较等最常用的操作上。因而使用它们就必须遵循指针的规则,否则将无法为计算机或编程者所理解。在C++中,指针和对象其实是与int、float共通的数据类型,但又各有其特性;继承到JAVA中以后,二者的特性互相糅合而融为一体,因此对其含义的问题就产生模棱两可的解释:JAVA对象有时是对象,有时是指针,但大多数时候是指针。 对C++指针的另一种批评指出,C++允许指针指向任意内存区域,因此容易引起系统的干扰,即使很有经验的程序员在使用时也难免产生疏忽。这种批评不无道理,因为大部分C++程序出错的原因都与指针有关。但由此而批评指针存在的价值是不对的。没有C++程序员愿意从不使用指针。指针是程序设计的一样利器,凡涉及内存的操作,没有指针不能做到的,并且它的效率比其他任何替代方法都高。这就是众多C++程序员宁愿冒着高度的出错风险也坚持使用指针的最大原因,而并不是他们无法避免使用指针。如果真正要像JAVA语言那样刻意避免指针的话,笔者在后面可以证明,只要他们愿意,在C++程序员同样可以做到,而且性能比JAVA更好。他们可以设计一类彻头彻尾的C++对象,而他们的使用方法却与 JAVA对象一摸一样!这恐怕是许多JAVA崇拜者所始料不及的。
本文后面所附的程序,为用户营造了这样一个编程环境:只涉及对象使用;避免指针祸害,但却保持像指针一样快速高效地访问内存的优点;像JAVA所倡导的那样,不须操心对象释放问题,在不再引用时由系统自动清理。必须强调的是,尽管该程序段理想地模拟出了JAVA的存储使用环境,编程者却确确实实在使用C++语言,并不会因此失去C++语言所具备的其他一切高效特性,甚至可以继续使用其他的指针。
嗯,我是搞java的.看你的兴趣了,java比较好学哦...
J2EE WEB 端也是免费可下载的.
当然更核心的J2EE高级技术,是需要收费的.如果有个别不法分子在网上出售尚学堂视频.是要负法律责任的.
总结:你真无德..
但现在java已经发布了第6版
在hot spot技术应用于JVM后,JAVA的速度不仅不比C++慢,甚至可以超越C++,这不是口说无凭,许多测试都证明了这点
JAVA的跨平台特性是C++不能比拟的,在32位系统和16位系统里面C++的int型分配的字节都不同,而JAVA是运行在虚拟机上的,而且其语言特性比C++简单明了,便于维护,同时有着大量的框架和公司在支持他
说实话C++和JAVA根本不是一等级的,C++也只能做做游戏了......
还有楼主,你所说的perl python 以及PHP等等都是些动态脚本语言,这些语言充其量只能在WEB前端表示层发挥他的作用,确实JAVA在这层上比不过他们的灵活,但是整个WEB工程中后面的分析层和持久层还是得靠J2EE,还是得靠各种框架 C++连影子都看不到了......
现在能对JAVA造成威胁的,只有.net和RoR(Ruby on Rails)
尤其是后者,建议大家好好关注这项技术~我感觉它很可能成为第二个JAVA
那是因为JAVA弄不好会搞死服务器,没有那么多虚拟主机让你乱搞得!
你开放一个支持C++作的CGI的免费空间看看,天天让你哭!
那是因为JAVA弄不好会搞死服务器,没有那么多虚拟主机让你乱搞得!
你开放一个支持C++作的CGI的免费空间看看,天天让你哭!
你开放一个支持C++作的CGI的免费空间看看,天天让你哭!我没用C++作过网站,倒不知道怎么哭,我只说我浏览网页时的事实,事实就是:国内用J2EE做的网站相对于用ASP、PHP等来说数量上是相当少的!!这一点,java2000_net,你服不服?
---------------------------------------------------
首先我要说明的是(这是我的感觉,可能不准确):C++的int型分配的字节是由编译器决定的,C++本身并没有这个限制。如果说Java的虚拟机怎么样怎么样的话,在我看来只不过是把各种平台上的编译器统一起来了而已,如果C++也统一了编译器标准你还敢说Java的虚拟机有什么优势吗?
说实话C++和JAVA根本不是一等级的,C++也只能做做游戏了
----------------------------------------------------
是吗?你用Java写个驱动程序我看看?你用Java做个桌面的应用程序我看看?
很烦琐不如C++
Java就是因为语法简单明了,开发效率高,所以势头压过c++。
我并不是说学Java比c++好。看用在哪方面了
---------------------------------------------------------------
国人典型的毛病:出一点点成绩就沾沾自喜!我只是在批判那个说C++只能做做游戏的人,举了个例子说明C++应用领域远比他想像的要广泛的多,倒是Java我觉得只能拿来做做网站,做两个手机程序而已,桌面领域你也只能说这里有个用Java做的啥啥,那里有个用Java写的啥啥而已,用C++写的程序你是能掰着手指头数得过来的吗?
-----------------------------------------------------------------------------
你抓我的牛角尖不也是自以为是吗?请你先看清楚我的再说。别以为能找到几个Java的桌面程序就开始抓别人的牛角尖了!