在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
学Java需要先学C语言吗?不学C语言学不好Java吗?对于初学者来说可能常常听到关于Java和C语言这样疑问。虽然很多人都说C语言是基础,但是照样有很多人是从Java学起的,那么下面小编来系统分析一下,Java和C语言到底是什么关系,初学者又该怎样选择性的学习。

一直有人说,学Java需要先学C语言。这也不是没有道理的,先学C语言的理由大概如下:
1、学习C语言就是在学习 Java,因为C语言中至少 80% 的语法知识都被 Java 继承了。Java 刚开始的前半部分,如数据类型、变量、流程控制、数组、函数,这些知识同C语言几乎是一模一样的。
2、C语言是面向过程语言的代表,学好C语言有助于学习 Java 中面向对象的思想。前面说过,要想知道什么是面向过程、什么是面向对象就必须要有比较。你将C语言学完之后,再学习 Java 中函数的时候就会发现,它们的语法规则是一模一样的,但用法完全不一样。如果大家直接学习 Java,就会觉得本应该那么使用,这样就无法深刻体会什么是面向对象了。
3、C语言中最重要的是指针。C语言中有两个知识点可以说是其所独有的,一个是函数,另一个是指针。C语言中的指针是理解 Java 中“引用”的基础!Java 中引用的本质就是指针。如果不懂指针就可能对 Java 中的“引用”没有太深刻的理解。
虽然前面讲了那么多关于学Java需要先学C语言的好处。但是不学C语言学不好Java吗?
其实不然,C语言和Java完全是不同的两种语言,一种是面向过程编程的,一种是面对对象编程的,虽然说如果大家前期学过C语言,对于Java的入门可能比较容易些,毕竟接触过编程,一些变量,函数(Java中叫方法)等都有所理解,但是,即使大家没学过,也是比较容易的,学没学过可能就是前期理解的快慢的区别,针对后期来说,都是没差别的。
而且这样还不会受到C语法的一些影响,因为C语言和Java并非完全相同的,至少一点Java中没有直接的指针(改了个名叫引用),而且学C语言还要学一些数据结构和算法方面的知识,学Java就没那么麻烦了,大家稍学些就行了,Java中的API都帮你做好了,在C语言中你要通过一个函数实现的功能可能Java中就只需要你调用一个API方法就行了。如果大家是想学Java的话可以直接学,与其发学两门语言的时间还不如把更多的时间发在同一门语言上,这样对大家学Java可能要好很多。
在小编看来,Java和C语言虽然有着一些比较密切的关系,Java的底层是C语言编写的,但是从另一个方面来看,两者关系不是很大,语法不同,在语言设计上也有着一些不同,所擅长的领域也不同,综合上来讲,学Java之前不一定需要学C语言,不学C语言也可以学好Java。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
哪些人适合学Java?学习Java的必备能力
随着现在互联网行业的快速发展,不少人开始对Java行业产生了兴趣,想通过学习Java而从事这个行业。但是这其中有很大一部分的人仅仅是零基础或是只有一点基础,这个时候大家往往会困惑自己适不适合学习Java,那么到底哪些人适合学Java?
7888
2019-07-15 15:47:19
Git是什么?新手小白入门教程
本文是专门针对新手小白的入门教程,将用通俗易懂的方式讲解“Git是什么”,主要从版本控制、版本控制系统和仓库几方面来具体阐述。
8664
2019-08-09 15:24:33
自学Java可以找到工作吗?要学到什么程度?
Java作为备受程序员喜爱的编程语言,在各行各业都被广泛使用,导致当下越来越来多的自学者想通过自己的努力,自学Java从而找到一份高薪可以改变自己职业前途的工作。那么自学Java可以找到工作吗?要学到什么程度?其实对大多数学习者来说,自学Java都不是一个最好的选择,一方面是因为Java语言自身学习的难度比较高,另一方面是自学效率低,对自学者能力要求高。
7697
2019-10-26 11:33:24
如何选择合适的Java培训机构?
作为一种最流行的网络编程语言之一,Java语言在当今信息化社会中发挥了重要的作用。大多数人选择Java可能只是因为听说Java前景好、Java比较好找工作等原因,因此越来越多的小白也加入到行业中来。那么入门第一步就是选择一家合适的Java培训机构。
6548
2020-05-04 16:08:52
零基础入门Java编程语言学习路线及目标
零基础入门Java编程语言学习内容及目标,Java语言零基础入门阶段主要学习Java基础语法、面向对象基础、API基础、集合基础等知识,Java编程入门阶段学习目标掌握Java开发环境基本配置;运算符、表达式、流程控制语句、数组等的使用;熟练使用IDEA开发工具;Java基本面向对象知识;常用类String、ArrayList等的使用;学生管理系统编写。
7281
2020-04-16 16:02:11
