java跟C语言的本质区别是什么,从C语言学习Java难不难

如题所述

谈到这个问题,我想讲讲计算机语言发展过程,从中你可以看出各种语言的不同。
首先,计算机认识什么?我们可能会答:0和1,其实这样回答是不准确的,计算机不认识0和1,而是认识由0所代表的低电平状态和由1所代表的高电平状态。换句话说,计算机认识由0和1所组成的逻辑电路状态,那么这些由0和1组成的语言我们称之为机器语言。
第二,机器语言不便于人们识别、理解和记忆,为提高工作效率和改善方便性,将特定的机器指令序列用助记符代替,诸如ADD、MOV等,这便是汇编语言。汇编语言的出现使得计算机的操作和编程变得方便许多,但是存在两个问题:
(1)计算机不认识汇编语言。对于这个问题,人们开发了一个“翻译器”——汇编程序,负责将源程序编译成计算机可识别和处理的机器语言。
(2)汇编语言编写的程序与硬件结构关系紧密。这个问题会造成两个方面的问题,一是程序的可移植性差,A计算机上编写的汇编语言程序不能在B计算机上运行,除非B计算机的体系结构和指令与A计算机完全一致;二是程序员面临的任务繁重,程序员不仅要考虑所要解决问题的解决方法、过程,还要考虑他编程使用计算机的硬件结构和指令集。针对这一问题,人们就想,能不能让程序开发人员只去考虑问题的解决过程?于是就出现了面向过程语言,诸如C、basic、pascal以及fortan等面向过程语言,程序员在使用这些语言时,不必过多地去考虑计算机硬件结构和指令。
第三,随着计算机技术的不断发展,编写的程序的结构越来越复杂、庞大,人们发现在编写程序过程中存在很多重复性的工作,诸如我们编写两个按钮“计算”和“退出”,在这个过程中要花费大量的时间和代码来实现两个按钮,仅有的区别就是按钮的位置和内部的具体功能代码不同而已。人们考虑能不能将某些功能相同的代码重复使用?于是,引入类和对象的设计思想,面向对象编程一个很重要的特征就是代码复用,这样就出现了面向对象语言,诸如C++、JAVA等等。
现在回到你的问题。
C语言是面向过程语言,Java是面向对象语言,Java是在c语言基础上发展起来的,可以认为是C语言的超集。在c语言中有结构体,在java中有对象和类。我的理解:对象是带函数的结构体;结构体是公用的,对象的变量和方法是有权限的;c语言中有指针,Java为了避免指针使用时带来的风险,将指针“封装”起来了。
在学习Java时,最好先学习一下C语言。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-16
C面向过程,JAVA面向对象,编程思想不一样。C是为了解决一个问题,吧过程都写成函数。
JAVA把要解决的问题都写成一个对象,封装起来,用对象解决问题。

C的内存需要自己管理,JAVA不需要自己管理系统替你管。
从C转JAVA很简单。本回答被网友采纳
相似回答