学c语言好还是java语言好?
有必要先学c,再学java吗?
完完全全没有必要。
C是编译型的语言,自然比Java难。Java和C#只是混合型语言,介于解释型语言和编译型语言之间。
语言学习的难度从小到大大致分为:
脚本语言(HTML,Javascript,JScript)<解释型语言(Perl,Python,REBOL,Ruby)<混合型语言(Java,C#)<编译型语言(C,C++Delphi)<汇编语言
C语言和Java是完全两个层面的东西。C事实上没有良好的语言级对象模型,它更关注的是CPU是怎么工作的;而Java封装了硬件层面的东西,有良好且简洁的语言级对象,在上层有Pattern和Model。是最好用的语言之一。
有三点供以比较:
第一,Java语言提供更好的抽象,如垃圾回收,让程序员不用为内存的分配和释放操心,同时减少了C/C++中的复杂性。因此容易学习是其特点。
第二,Java是一门面向对象的语言,C不是,在C中你学不到面向对象的知识,而学习Java,你会接触到面向对象程序设计,设计模式等。
第三,要深入学习程序设计,而不是Java,你需要了解计算机系统的工作原理,而Java的抽象导致了编程人员通常不需要了解计算机的工作原理,比如函数传参使用寄存器还是堆栈。因此作为一名软件从业人员,学习C是必要的。
学习Java不需要其他计算机语言作为基础,不过如果有其它语言(比如C/C++)的基础再学Java会容易一点,因为通过其它语言你已经对编程有了更深的认识,并且语言之间的共同点很多。如果有了两三门语言的基础,再学新的语言一般都很轻松了。如果是要打算快点找工作,那就JAVA(虽然JAVA的学习路线比较长,但是相对C来说算短的了),但是大学选专业,个人觉得可以凭兴趣,可以先简单了解两个语言,然后再选择。从小编的角度来看的话我觉得最好还是两个都学,毕竟风格大不一样,多了解一门语言还是好的,是否需要学C,取决于你对“学好”的定义。
如果你是只需要要做一些常见的应用类软件,则不需要学c。IT培训认为这真的完全是两个层面的东西,虽然算法是通用的,但思路基本就是两条线。而且java的框架多了去了,随便哪个拿出来都有成套的思想在里面供你研究上一阵子,而那些和C都没多大关系。
最后的问题在于,当你精进到一定程度的时候,还是不得不和系统打交道,你将必须静下心来研究内存分配等底层的东西。只不过达到这种层次的人,或者说需要达到这种层次的人,着实很少,少到连大部分的java程序员也不知道自己需要知道。