zoukankan
html css js c++ java
C语言与java的区别
相同的地方:
1
、语法类似:
由于Java可以算是从C++发展而来的,因此Java与C语言的语法比较类似
2、编程的熟练程度就是对语言程序库的掌握程度:
从某种程度上来说,编程语言都是由语法和相应的程序库所构成,Java有自身的类库,C语言则有标准库。所谓的编程,就是使用与语法来调用和组合程序库中的函数。
不同的地方:
1、内存管理
在Java中,基本不用考虑内存的问题,如果想用一个对象,new一个就可以,这个过程的背后则是JRE为对象分类的一定内存,当JRE发现你不再使用这个对象的时候,他就会自动回收内存,也就是说你只管借东西,不用管归还,因为与有人当你的跟班,在你不使用的时候就把东西归还了,不过这个过程还是有的,只不过是JRE作的而已。
但是C则不同,如果你想用,你可以用malloc之类的方法申请内存,当你使用完了,因为没有跟班的,你需要自己把这块内存归还回去,也就是调用free方法来完成这个任务。由于需要显式的归还内存,因此当一个函数需要将一块内存返回给调用者的时候,问题就比较复杂了,不如面向对象和具有内存回收功能的Java那么直观了。对于这个问题,在C语言中,有几种解决方案:
( 1) 在调用者中先分配好内存,作为参数传入到被调用的函数中
(2) 在被调用的函数中分配,使用完后在调用者中释放
(3) 在被调用函数中使用static变量,可以将该变量返回
2、面向对象
Java的面向对象的特点很明显,而C则是一个地道的结构化语言。 Java中有一个字符串类String, 通过调用 String.length()就可以知道字符串的长度,但是在C语言中,则需要调用函数strlen(str)来得到字符串(字符数组)的长度。由于C不是面向对象的语言,也就没有this的概念,因此当使用一个与某个“东西”相关的函数时,就需要不厌其烦的将代表这个“东西”的变量作为参数传递进去。
3、名称空间
Java通过包(package)来实现名称空间,在C语言中,所有的函数都处于同一名称空间,也就是没有名称空间,因此就会很多程序提供的api接口函数都有一个前缀,例如MYSQL的mysql_init(), mysql_real_connect(), mysql_real_query()等函数名称前面的mysql_。
4、在运行方式上
C:原始的C是
面向过程
的.就是按行执行. JAVA:绝对的面向对象.就像按模块执行. (补充:当然,在C++,及C#上,C也有向面向对象模式转换)
5、在语句结构上
C:在中国应该算是编程语言的颠峰应用.C就像个完全服从的军人.你让他做什么他就做什么.你完全控制他,但你必须全程了解他之后才能控制好他.
C里面特有指针,地址等.以及数组存储方式与JAVA不一样.
JAVA:人性化的
面向对象编程语言
.他把万物都可以看成一个基本的对象,然后再复制,改写他们. JAVA给认为有点像工厂,你在工厂里面先分别做好一个个小零件,然后再用电线把他们连起来.组装成可用的东西.
6、用途上
C:纯C一般用在嵌入式上.编写最底层的程序.因为他的语言与硬件的连接最容易. C++:应用软件,WEB程序都可以. JAVA:
J2EE
,J2SM,
J2ME
.什么都可以
c 嵌入式底层软件
操作系统
各类函数库引擎库软件核心代码
服务器端
底层工具 c++ 图形图像
游戏客户端
游戏服务端桌面软件各类高性能客户端软件近底层软件 java嵌入式移动设备
应用软件开发
web网页
后台逻辑开发部分桌面程序 C,JAVA其实都可用在各种领域的.
语法不同:
单文件的编译时间java比C语言快; C语言可以直接操作内存,java不能直接操作; C语言可以封装动态库,java不行; C语言的代码不容易跨平台,java的代码容易跨平台; C语言有指针,java没有指针; C语言可以直接操作串口,java需要第三方jar包支持; C语言的线程更加灵活,java的线程都已经封装好了; C语言做单独功能,可以增加效率,java适用做web应用开发; unix是C语言编写的,java也是C语言编写的; JAVA做web开发的时候,已经有很多成型的框架技术,C语言很少,且需要处理底层内容,对应不熟悉计算机原理的开发者难度很大; JAVA的开源包太多了,C语言也有但是偏少,而且面向某个业务应用领域的框架没java多;
JAVA和C还有一个最大的区别,那就是跨平台。
通过JAVA虚拟机的解析,可以使在Windows或UNIX上面写的程序在其他系统下也能运行,而C语言是绝对不行的。但是C语言在和硬件打交道的时候,速度是最快的。C比较基础,java比较流行。但是2者没有上下之分,一个是编程语言的鼻祖,一个是目前流行的跨平台语言.擅长的领域不同,在不同的场合用不同的语言。但是,如何运用好这门语言,也就是对程序员的一个考验。鱼和熊掌的问题,取舍最终还是只能看你自己。
C、C++、C#其实也是三种不同的语言
C++是C的增强版,增加了一些新的特性,如
面向对象
C#跟
C/C++
完全不同,是微软开发的语言,用于
.net
,
只是语法有点像
C/C++
要说区别,首先就得说联系, C是爷爷,C++是爸爸, C#是c的外孙。这形象说明了三者的关系。
从时间先后上说,他们之间最早出现的是C,然后是c++,最后是c#。c++是为了解决软件危机而引入
面向对象
,
c#为了实现平台统一和java争夺市场下的产物。
目前软件开发有两种主流的开发方法(对应的语言):
1、结构化开发方法:C、Basic、Pascal;
2、面向对象开发方法:C++、Java、C#、Ruby
一、 Java封装了很多类和接口,而这些是C语言没有的。其实为了提高开发效率,java就应运而生了,这些功能在C语言也可以实现,但是要自己写更多的代码。但也因此,同样的程序用java写的一般跑得比C语言 的慢很多。
二、 C语言是面向过程的语言,而Java是面向对象的语言。Java相对于c语言而言,去掉了指针等容易出错的功能。在Java语言白皮书中,Java被描述为“是一种简单、面向对象、分布式、解释、健壮、安全、结构中立、可移植、高效能、多线程、动态的语言
三、 C语言单机代应用非广泛融合高级语言简单易用汇编语言执行效率Java研究电消费产品发平台互联网应用基础实现许的语言特性c语言沿用发展并且使面向象更加自完善(安全性代码移性)。
四、 Java的程序是由一个一个类组成的,一个Java应用程序至少包含一个类,极端的,一个类可以是一个空类,不包含任何属性定义和方法声明。
五、 至少一个类中应该包含public static void main(String[] args)这样的方法声明,否则程序不可能被运行。
六、 Java跨平台,既不同的操作系统都可以通过JVM(
java虚拟机
)来解释Java程序,而则是与平台相关的,有些指令只在某些操作系统中才能执行。Java是
解释型语言
,所有代码都会
翻译
成统一的、与系统无关的bytecode,然后放到
JVM
上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。
七、 Public表示该类可被其它的类访问,class表示Java的一个类,static表示main()方法是一个可以直接使用的方法,void表明main()方法执行它所包含的语句后不返回给调用者任何信息。这一点是重要的,因为Java编程语言要进行谨慎的类型检查,包括检查的调用方法确实返回了这些方法所声明的返回值类型。String[]是一个string数组的声明,用来接受外界传递给main()方法的参数。
八、 Java程序多用于网络。C语言的安全性不如Java,C语言没有Java的垃圾回收机制,申请的空间要手动释放。Java的通用性好,可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了。在速度上,C语言编写的程序要优于Java,因为Java必须运行在虚拟机的环境中,但是因为虚拟机,Java获得的平台无关性,而C语言的程序有可能需要重新修改编译才能实现平台的移植,另一方面,C语言比Java语言更“底层”,因此可以用C编写例如硬件的驱动,而Java却不行。
九、 Java的命名规则是标识符可从一个字母、下划线(—)或美元符号($)开始,随后可跟除了在Java中作为运算符之外的任何可见字符。标识符是连续的字符串,不能被制表符和空格隔开。标识符不可能是关键字,但是它可包含一个关键字作为它的名字的一部分。Java语言严格区分标识符的大小写,未规定最大长度。
十、 基本Java类型有八种,分别为逻辑型、字符型、字节型、短整型、整型、长整型、单精度、双精度。
十一、 Scanner是一个类,通过调用扫描对象的方法实现输入。Println()方法,ln表示换行。
查看全文
相关阅读:
课堂派题库格式转换程序
操作系统——进程的状态与转换
android 通用 Intent
android上使用蓝牙设备进行语音输入
讯飞语音听写中数字规整问题
【Android】隐藏底部虚拟按键
AudioEffect中文API
为什么要在onNewIntent的时候要显示的去调用setIntent
android蓝牙耳机下的语音(输入/识别)及按键监听
Android如何监听蓝牙耳机的按键事件
原文地址:https://www.cnblogs.com/Archmage/p/7569344.html
最新文章
HDU 1081 To the Max 最大子矩阵(动态规划求最大连续子序列和)
Java题库——Chapter6 一维数组
Java题库——Chapter5 方法
算法设计与分析——矩阵连乘问题(动态规划)
计算机图形学——计算机图形系统及硬件基础
操作系统——信号量机制的其他几个问题
操作系统——生产者消费者问题
操作系统——多生产者多消费者问题
Java题库——Chapter4 循环
Java题库——Chapter3 操作符、选择
热门文章
Java题库——Chapter2 基础程序设计
Java题库——Chapter1 计算机、程序和Java概述
操作系统——读者写者问题
算法设计与分析——最大子段和(分治)
操作系统——吸烟者问题
操作系统——信号量机制及其实现进程互斥、同步、前驱关系
操作系统——互斥的定义及实现
算法设计与分析——线性时间选择
算法设计与分析——快速排序
数据结构——快速排序
Copyright © 2011-2022 走看看