java 和 c <<_JAVA和C++学习哪一个比较好?

C++比较陡, 很久才能真的干活.

Java比较缓,很快可以上手.

1、建议新手学java,Java比c简单,c有很多的细节需要你掌握,比如指针,内存分配,内存释放等这些细节概念。这个对初学者确实有些难,很多人需要学习很长时间,才能开始用c写程序,因为你不得不先学习指针这一类的概念。

2、Java相对概念没那么多细节,掌握语法基本就可以开始写简单的程序了。而且c的开发工具没Java那么强大,例如初学者难免会有语法上的错误,Java有语法错误,开发工具会很清楚地提醒你。而好多c开发工具做不到这个(当年我学的时候至少是这样)。

Java从语法上来讲比C++简单得多。但是学Java也并不简单。因为Java的适用范围太大了。作为当下最红的编程语言,它几乎无处不在。而它的各种框架和工具也层出不穷。

各种语言有自己的适用区域

1 c++就是一个不断缝缝补补又三年的最大集合语言。中,作者就说得很清楚,c++注重实用和性能。跨平台估且不说吧,先是用鬼画符般的重命明机制来支持重载,然后用虚表数组各种扭来实现该死的多继承,用智能指针来搅没有gc的混水,最后发现了模板新大陆,没有标准的自省机制的问题又可以拖一拖了。

2 java就吸取了很多c++的教训,jvm规范先帮你省了不少跨平台的事,不管是语言语法,还是设计,java堪称oo数组型语言的完美代表。多线程和锁的设计,gc的支持,异常机制的完善,让韭菜茁壮成长。

说说我学 C++ 时遇到的一些 Java 里不存在的问题吧。

函数传值。C++ 要在函数间传递对象有传值、传引用、传指针的区别;传值的话要考虑复制构造和移动构造的问题,传引用的话会涉及到只读引用、可读写的引用和右值引用,传指针的话就更复杂了,用裸指针还是智能指针?智能指针要用 shared_ptr,unique_ptr,weak_ptr还是其他什么玩意?你看人家 Java,基本类型就是复制传值,其他的就是传引用,简单得不是一点半点!

创建对象。C++ 创建对象也是一门学问,光写法就有直接初始化、复制初始化、列表初始化三种,还能选择在栈里还是在堆里创建。隔壁 Java 呢?所有引用类型都在堆里创建,一个 new 就能初始化对象,真的简单!

生命周期。打个比方吧,Java 里的对象,你只用管生管养,用完扔了就是,不用管到死,有专业的 GC 帮你擦屁股;C++ 的对象你不仅要管生管养,用完了还要管死管埋,于是就会遇到死的对象没有埋(内存泄漏)、召唤僵尸干活(引用已释放的对象)、埋错对象(错误释放对象)、埋完又埋(重复释放对象)等等问题,这也是 C/C++ 等没有 GC 的语言必须面对的问题。

类型声明。我非常不喜欢 C/C++ 复杂的类型声明,const int *const、int *(&arr)[10]什么的要死人啦!用 using 定义类型别名还好,typedef绝对是「晦涩难懂还容易出错」的代名词。一个常见的 C++ 类型往往包含有 const 声明、指针(*)和引用(&)声明、命名空间、类型别名、泛型参数一堆成分,这也在一定程度上加大了 C++ 的复杂度。Java 的类型虽然也比较长,但一般不会写完整的包名,只包含类型本身的名字(不存在别名)和泛型参数,而且统一采用驼峰式命名法,整体观感上比 C++ 类型整齐简单很多。

引用其他源文件。#include 比 import复杂了不止一点半点,还不好用。

综合以上,建议新手学java,如果你是大一新生,我推荐从C++学起,后期在选择JAVAJava的前景如何,好不好自学?​www.zhihu.com278653501e46eea939891140cc8e7ad8.png

最后

相信很多正在学习或者即将学习Java的小伙伴都是有共同的疑问,Java要学到什么程度才能找工作,或者说Java最新的学习路线,看完了后可以看我的另外一篇文章推荐阅读:自学Java最起码要学到什么程度?阅读量5万+​www.zhihu.com20052098050f0ceae240bf078ef8b2ba.png

参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值