JAVA和C语言有什么区别?

具体点。
2024-11-06 18:26:49
推荐回答(5个)
回答1:

C语言是经典的面向过程的编程语言,编程入门一般都学C语言以了解编程以及锻炼逻辑思维能力,在一些跟硬件比较紧密的编程中也经常用到。\x0d\x0a\x0d\x0aC++是在C语言的基础上加入了面向对象的概念,成为混合型面向对象语言,功能强大,但难度也大。\x0d\x0a\x0d\x0aJava是在C++的基础上进行改进的,摒弃了一些C++的不足之处,语法跟C++很像,它是运行在Java虚拟机上,所以可以跨平台,一处编译,到处执行。\x0d\x0a\x0d\x0a编程都是易学难精,哪个都好学,哪个又都不好学。都有很好的发展前景,就看是什么方向了。底层的C、桌面应用程序、游戏等等C++、嵌入式,网页,Java。

回答2:

java是面向对象的编程语言。c是面向过程的编程语言,而且JAVA是可以跨平台的。而C语言不能,但能够直接操作硬件,并且生成机器码的效率高。C语言有指针,想要学好C语言,指针就必须学好。JAVA是没有指针的。在C语言中,是可以不初始化使用的,而在JAVA中,是必须初始化值的。总的来说,C语言是基础语言,JAVA是面向对象的一门语言。

回答3:

区别如下:

1、设计思路不同:C语言是面向过程的语言,执行效率高;Java是面向对象的语言,执行效率比C语言低;

2、通用性不同:C语言不能跨平台;java可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了;

3、语法不同:

(1)、基本数据类型不同:

c语言是int short long char float double 还有一些特殊类型 结构体,指针,联合体等,数组,字符串 ;

java 是byte int short long float double char boolean ,而且c语言的基本类型的位数和操作系统和机器相关,而java 是固定的;

(2)、文件组织方式不一样:c语言会把全局变量和方法的声明,放在一个文件里面,叫做头文件,而java 是以类来组织文件的;

4、应用领域不同:C语言主要用于驱动开发、操作系统、内核开发,嵌入式(单片机)、交换机、路由器等网络设备的开发;java主要是企业应用开发,包括服务器端开发、嵌入式领域、大数据技术、网站领域等。

回答4:

论 文

JAVA和C语言的区别

姓名:李蓉

学号:201018030106

班级:信息计算101801班

C语言与JAVA比较

一、理论区别
1.全局变量
Java程序中 ,不能在所有类之外定义全局变量 ,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。例如 :
Class GlobalVar
{
public static global_var;
}
在类 GlobalVar中定义变量 global_var为 public stat-ic,使其它类可以访问和修改该变量。Java对全局变量进行了更好的封装。而在 C中 ,依赖于不加封装的全局变量常常造成系统的崩溃。
2.Goto
Java不支持 C中的 goto语句 ,而是通过例外处理语句 try, Catch,final等来代替 C中用 goto来处理遇到错误时跳转的情况 ,使程序更可读且更结构化。
3.指针
指针是 C、 C++中最灵活 ,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误 ,同时通过指针对某个内存地址进行显式类型转换后 ,可以访问一个 C++中的私有成员 ,从而破坏安全性 ,造成系统的崩溃。而 Java对指针进行完全的控制 ,程序员不能直接进行任何指针操作 ,例如:把整数转化为指针 ,或者通过指针释放某一内存地址等。同时 ,数组作为类在Java中实现 ,良好地解决了数组访问越界这一C、 C++中不作检查的错误。
4.内存管理
在 C中 ,程序员通过库函数 malloc()和 free()来分配和释放内存 , C++中则通过运算符 new和 delete来分配和释放内存。再次释放已释放的内存块或未被分配的内存块 ,会造成系统的崩溃 ;同样 ,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在 Java中 ,所有的数据结构都是对象 ,通过运算符new为它们分配内存堆。通过new得到对象的处理权 ,而实际分配给对象的内存可能随程序运行而改变 ,Java对此自动地进行管理并且进行垃圾收集 ,有效防止了由于程序员的误操作而导致的错误 ,并且更好地利用了系统资源。

5.数据类型的支持
在 C ,对于不同的平台 ,编译器对于简单数据类型如 in t,float等分别分配不同长度的字节数 ,例如:int在 IBM PC中为 16位 ,在 VAX-11中为32位 ,这导致了代码的不可移植性 ,但在 Java中 ,对于这些数据类型总是分配固定长度的位数 ,如对 int型,它总占 32位 ,这就保证了 Java的平台无关性。
6.类型转换
在 C中 ,可以通过指针进行任意的类型转换 ,常常带来不安全性 ,而 Java中 ,运行时系统对对象的处理要进行类型相容性检查 ,以防止不安全的转换。
7.头文件
C中用头文件来声明类的原型以及全局变量、库函数等 ,在大的系统中 ,维护这些头文件是很困难的。而 Java不支持头文件 ,类成员的类型和访问权限都封装在一个类中 ,运行时系统对访问进行控制 ,防止对私有成员的操作。同时 ,Java中用 import语句来与其它类进行通讯 ,以便使用它们的方法。
8.结构和联合
C中的结构和联合中所有成员均为公有 ,这就带来了安全性问题。Java中不包含结构和联合 ,所有的内容都封装在类中。
9.预处理
C中用宏定义来实现的代码给程序的可读性带来了困难。在 Java中 ,不支持宏 ,它通过关键字 final来声明一个常量 ,以实现宏定义中广泛使用的常量定义。
JAVA和C还有一个最大的区别,那就是跨平台。 通过JAVA虚拟机的解析,可以使在Windows或UNIX上面写的程序在其他系统下也能运行,而C语言是绝对不行的。但是C语言在和硬件打交道的时候,速度是最快的。
C比较基础,java比较流行。但是2者没有上下之分,一个是编程语言的鼻祖,一个是目前流行的跨平台语言。擅长的领域不同,在不同的场合用不同的语言。但是,如何运用好这2门语言,也就是对程序员的一个考验。鱼和熊掌的问题,取舍最终还是只能看你自己。
二、实例分析
题目:求丑数丑数是指那些因子只含2,3,5的数,为方便起见,1也视为丑数,故1,2,3,4,5,6,8,9,10,12,15是最前面的丑数,请编写一个程序,打印出第N个(N<=3000)个丑数。(N为输入值)
C语言编程
#i nclude
main()
{
int i,j=7,k,n=0,N,m;
int a[100],b[3000];
for(i=1;i<7;i++)
b[i]=i;
do
{
printf("input number:");
scanf("%d",&N);
}while(N>3000 || N<0);
for(i=7;;i++)
{
m=i;n=0;
for(k=2;k if(m%k==0)
{
a[n++]=k;m=m/k;k=1;
}
a[n]=m;
for(k=0;k<=n;k++)
if(a[k]!=2 && a[k]!=3 && a[k]!=5)
break;
if(k==n+1 && a[0]<6) b[j++]=i;
if(j==N+1)
{
printf("the %d choushu is%d",N,b[N]);break;
}
}
getch();
}

java编程
public static void main(String[] args) throws Exception
{
int n=1;
int s=2,t;
int i;
boolean is = true;
System.out.print(1+",");
while(n<=3000){
is = true;
i=2;
t=s;
while(t>1){
if(t%i==0){
t/=i;
if(i!=2&&i!=3&&i!=5){
is=false;
break;
}
} else
i++;
}
if(is){
System.out.print(s+",");
n++;
if(n%5==0)
System.out.println();
}
s++;
}
}

回答5:

JAVA语言是面向对象的语言,所有的执行都是一个类,需要JAVA DJK来完成,而C语言编写的程序需要特别的编译语言,JAVA语言及时编程语言也是编译语言。
C语言是面向过程的语言。你去百度一下面向对象与面向过程的区别把。
还有就是程序的存储方式也不一样