C语言比java难学难在哪里?

Python012

C语言比java难学难在哪里?,第1张

C语言和Java语言是目前被广泛使用的编程语言,C语言在物联网领域有广泛的应用,而Java语言则在Web开发、移动互联网开发、大数据开发、人工智能开发等领域有大量的应用。对比之后,很多人都陷入其中,在这两个语言中摇摆不定,不知道应该选哪个。很多人第一想法就是哪个好学就选择哪一个,想必大家也在网上看到过很多关于这两个语言那一程度的文章,答案也是特定的,C语言要比java语言难一些,那么?C语言比Java难学难在哪里呢?学习C语言难,主要是因为C语言理解起来很抽象,使用时变化莫测。特别是在指针的学习上,是一个难以翻越的大山。除了指针,C语言里面还有一些回调、递归、函数指针、指针函数等等,这些都是学习的重难点。因此C语言的学习周期长,就更加考验学习者的意志力了。但是,如果学好了C语言,才能更好地了解内存的工作原理。而且有了C语言的基础,再学习其他语言将会事半功倍。C语言需要自己申请内存,自己归还内存,总之什么事儿都得自己操心。你得记得自己在哪里借了内存,还得搞清楚自己现在这个指针是指向Stack里的内存还是Heap里的,Stack里的还得记得啥时候作用域。C语言是不具有二进制级别的跨平台性的。你在Linux上使用C语言和在Windows上使用C语言,所用到的编译器不同,涉及到与系统相关的调用,涉及到的函数、数据结构都会不同。这让C语言在跨平台开发的时候工作量成倍增加。不仅仅是跨操作系统,即便是同一种操作系统,总线位数不同,也会影响C语言的表现。早期电脑都是16bit的操作系统(当然更早期还有8bit等更古董的),后来普及了32bit,现在基本都过渡到了64bit。每次升级,都可能让很多当年设计的不是很好的C语言代码完蛋。综上所述,C语言比java语言难就难在了以上几点。但是学习没有捷径,都是一分耕耘一分收获。至于许多人担心找工作的问题,其实无论学那个编程语言,就业前景都不会差。只不过对于初学者来讲,学习Java的学习难度和找工作难度,都要相对小些。如果正在看这篇文章的你,还在为了学习哪个语言在踌躇,别人已经在路上了。当你还在担心能否就业时,昆明北大青鸟学员提前被企业录取当你转辗于各大招聘会时,昆明北大青鸟学员收到了高薪offer当你在各大招聘网站投递简历时,昆明北大青鸟学员中有人一毕业进入五百强名企。所以选择很重要,建议大家还是根据自己的学习兴趣和个人情况,选择自己将要学习的编程语言。

从语言所完成的工作上来说,C更底层更基础,java因为是面向对象语言,很多功能有人直接写好作为包,你可以直接加载之,C的话因为做底层开发,所以一般都是需要自己搞定的,其实如果只是说语言的难度的话,其实C和java没有谁更难或者更简单,关键是它们做的项目不同,导致其使用难度不同

从学习角度上说,很多人认为C语言单纯简单,其实比Java要容易。Java中由于隐藏了内存分配的处理,反而不如C语言在内存管理上来的直观。主要体现在以下几点。

1、内存管理。

C语言需要自己申请内存,自己归还内存,总之什么事儿都得自己操心。你得记得自己在哪里借了内存,还得搞清楚自己现在这个指针是指向Stack里的内存还是Heap里的,Stack里的还得记得啥时候作用域没了……总之,步步惊心,一不小心就要年底被黄世仁讨债了。

而Java的内存管理,有了垃圾回收这个大妈帮着管了,你就只管借不用管还了。用完了往门口一扔,到时候自己就有人来拿回去了。

2、应用库。

C语言相关的应用库也不能说不多,但比较杂,而且由于C语言的应用领域跟Java本身就不一样,所具有的应用库也不同。从提问者的说明来看,主要是指Web开发。那么要用C语言写一款应用服务器的话,通常可能要自己来学习HTTP协议、XML/JSON解析、还要自己研究内部的路径路由……总之一大堆破事儿等着处理。

Java在这方面优势要明显很多。你提到的JavaEE,Struts2,Hibernate,Spring等等都是现成的框架,你只需要按照框架规定填写业务逻辑就好了。解析HTTP协议之类的底层处理,框架都给你做了。所以,这里你的问题里提的不对等,C语言不学这些,只是老师没打算让你用C语言做Web应用罢了。如果做,你要学的知识会成倍增长的。