Java中数组与C语言中数组的比较_李舒亮 (1)

合集下载

Java语言与C语言的差异总结

Java语言与C语言的差异总结

Java语言与C语言的差异总结Java的设计者曾说过,设计这门语言的灵感主要来自于C++。

世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史。

所以在Java语言学习过程中,将其与C++语言对比是一件有意义的事情。

通过这些对比,我们能够了解到Java语言相对于C++语言有哪些改进,能带给我们哪些进步,这样对于更加深入理解这两种语言是大有裨益的。

下面我总结一下Java语言与C++语言的各种差异。

1、Java用来操纵对象的引用可以先初始化再指向对象,而C++的引用必须在初始化时就指向对象。

2、Java类除static和final外其他函数定义默认是虚函数,而C++用virtual关键字定义定义函数才是虚函数。

3、Java有一套继承自object类型的单根继承结构,而C++没有标准库内置的类继承体系。

4、Java只能通过new在堆上创建对象,基本类型除外,而C++除了new还是可以创建全局对象或者栈对象。

5、Java有自带垃圾回收机制,不用关心对象的内存释放,而C++需要手动释放通过new创建的对象。

6、Java数组成员能初始化默认值null,提供未初始化的访问和越界访问保护,而C++不提供这个机制。

7、Java局部作用域定义的变量不能隐藏更大作用域定义的变量,而C++可以隐藏。

8、Java类的基本类型成员变量可以自动初始化为默认值,类的复杂类型成员变量或者函数的基本类型成员变量如果没有初始化会报编译错误,而C++不提供这个机制。

9、Java属于纯面对对象语言,函数只能定义在类里,而C++可以将函数定义在类外。

10、Java函数调用时入参传递,对象类型参数只能传引用不能传值,基本类型参数可以传值,而C++可以使用对象传值方式。

11、Java用带反转域名的类库命名方式来解决名字污染问题,而C++使用名字空间来解决。

12、Java类所有成员函数实现和变量初始化都要写在类定义里,而C++类成员函数在类定义里申明,在类外实现,成员变量可以在类定义里初始化。

Java和C语言的对比

Java和C语言的对比

C语言和java的对比学习前言这里说写的都是我的学习笔记,然后这里的是很简单的对比学习,全部都是自己所理解的东西,而且都是很基础的,很简明的辅助自己理解学习而已。

C语言不会涉及到指针以及比指针更难更深层次的内容;Java也不会涉及到面向对象以及比面向对象更深层次更难的内容。

2015年12月20日运行机制C语言:源代码>编译>汇编>机器码>可运行程序Java源代码(*.java)>编译>字节码(*.class)>解释>程序运行相当于:把”鱼(源代码)”买回来>用”刀(编译器)”宰鱼>处理好的”鱼(字节码)”>用锅(JVM,解释/运行环境:java虚拟机)把鱼煮熟>可以吃的鱼(可运行程序) PS:Java程序分为两种类型,一种是Application程序,也就是一般的桌面程序.还有一种就是Applet程序,主要是应用(嵌入)到网页编程上的.开发环境搭建(简单入门)C语言VC++ 6.0(直接安装直接用)JavaEclipse EE1.下载安装JDK(Java 开发工具包 = java development kit)2.下载eclipse(Mars, J2SE = java 2 standard edition 标准版,J2EE=企业版,下载是下载EE版本的,EE版本可以做网页程序)3.配置环境变量JAVA_HOME: C:\Program Files\Java\jdk1.8.0_45CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar或者CLASSPATH: %JAVA_HOME%\lib\rt.jar;.;PATH: %JAVA_HOME%\bin第一个程序C语言Java1.新建一个项目2.新建一个类3.运行Helloworld程序(程序主体)C语言#include<stdio.h> //头文件int main() //定义主函数(程序的入口){int a=1; //定义一个值为1的整型变量printf(“HelloWorld”); //输出语句printf(“%d”,a);return 0; //函数返回值}Java语言public class HelloWorld{ //定义HelloWorld 类public static void main(String[] args) { //主方法定义在HelloWorld类int a=1; //定义一个值为1的整型变量System.out.println(“HelloWorld”);//输出语句System.out.println(a);}}数据类型C语言Java输出语句C语言printf(“要输出的内容\n=转义字符格式声明:%d=百分号+格式字符这里字符的都只是例子双引号是格式控制,后面的a是输出表列说明那个%d就是a的值”,a); //为了避免出错那个格式声明读的时候还是读百分号d这样好一点例如:a=1;printf(“a的值是%d”,a);那么输出的就是a的值是1JavaSystem.out.print ln(“这里是字符串,外面是用符号链接的数据(变量)名”+a+”这里可以连接多个字符串,在外面还可以输入表达式,不一定是变量名称”+((float)10/3));System.out.println("a["+i+"] = "+(i+i));在这句话里加号用于拼接字符串以及求和之用。

java编程基础相关知识点与c语言的区别

java编程基础相关知识点与c语言的区别

java编程基础相关知识点与c语言的区别Java和C语言是两种常见的编程语言,它们之间有许多相似之处,也有一些明显的区别。

本文将从以下几个方面介绍Java编程基础相关知识点与C语言的区别。

一、语法差异1. 数据类型:Java和C语言都支持基本数据类型,如整型、浮点型、字符型等。

但Java还引入了一些特殊的数据类型,如字符串和布尔型,在C语言中需要使用字符数组和整型变量来代替。

2. 变量声明:在C语言中,变量可以在任意位置声明,而在Java 中,变量必须在方法、类或代码块内部声明。

3. 指针:C语言中可以使用指针来处理内存地址,而Java中不支持指针操作,它通过引用来实现对象的访问和操作。

二、面向对象差异1. 类和对象:Java是一种面向对象的语言,所有的代码都必须写在类中。

而C语言是一种过程式的语言,代码可以直接写在函数中。

2. 继承:Java支持单继承和多态,类可以通过extends关键字继承其他类。

C语言不支持继承。

3. 接口:Java中有接口的概念,一个类可以实现多个接口。

C语言没有接口的概念,但可以通过结构体和函数指针实现类似的功能。

三、内存管理差异1. 垃圾回收:Java使用垃圾回收机制来管理内存,程序员不需要手动释放内存。

而C语言需要程序员手动分配和释放内存,否则容易出现内存泄漏或越界访问的问题。

2. 数组边界检查:Java对数组进行了边界检查,可以避免越界访问。

而C语言没有边界检查,需要程序员自行控制。

四、异常处理差异1. 异常处理机制:Java提供了异常处理机制,程序可以捕获和处理异常,保证程序的稳定性。

而C语言没有内置的异常处理机制,程序员需要使用错误码或其他方式来处理异常情况。

五、跨平台性差异1. 编译方式:C语言是一种编译型语言,源代码需要通过编译器生成可执行文件。

而Java是一种解释型语言,源代码通过Java虚拟机(JVM)解释执行。

2. 跨平台性:由于Java的解释执行方式,Java程序可以在不同的操作系统上运行。

C语言与Java的异同比较

C语言与Java的异同比较

C语言与Java的异同比较C语言和Java都是广泛应用于计算机编程领域的高级编程语言,它们都有各自的特点和优势。

本文将对C语言和Java进行异同比较,以便更好地理解它们的差异和共同之处。

一、语法差异C语言和Java在语法方面存在一些差异。

首先,C语言是一种过程式语言,而Java是一种面向对象的语言。

因此,C语言更加注重过程和函数的设计,而Java更加注重类和对象的概念。

其次,C语言的语法相对较为自由,允许直接操作内存,而Java则通过垃圾回收机制和虚拟机来管理内存。

此外,C语言对指针的使用较为灵活,而Java将指针的使用限制在了较低的层面上。

二、跨平台特性Java是一种跨平台的编程语言,这是它的一个独特优势。

Java编写的代码可以在不同的操作系统上运行,只需在相应平台上安装Java虚拟机(JVM)。

而C语言编写的程序需要根据不同的操作系统进行编译和适配,无法直接在其他平台上运行。

这也是Java在企业级应用中得到广泛应用的原因之一。

三、性能比较由于C语言更加底层,直接操作内存,因此在性能方面往往具有优势。

而Java编程是在虚拟机上运行的,需要额外的解释和执行过程,相对而言性能稍低。

但是,随着硬件的不断升级和Java技术的发展,这种差距逐渐减小,大部分情况下两者的性能差异并不明显。

四、开发效率相对而言,Java在开发效率方面更高。

Java具有丰富的类库和工具支持,提供了自动内存管理和垃圾回收机制,从而减少了程序员的工作量。

Java还有成熟的开发框架和IDE工具,简化了程序的开发和调试过程。

相比之下,C语言需要程序员自己管理内存,代码的编写和调试过程相对较为复杂。

五、应用领域C语言和Java在应用领域上有所差异。

C语言在嵌入式开发、操作系统、游戏开发等方面具有广泛应用,尤其是对于对性能要求较高的场景。

而Java在企业级应用、服务器端开发、大数据处理等方面具有更强的优势。

Java具备良好的可维护性和扩展性,适合构建大型复杂系统。

Java中的数组和C语言中的数组有何异同?

Java中的数组和C语言中的数组有何异同?

Java中的数组和C语言中的数组有何异同?
楼主:好象听说是有些不一样,请高手指教。

2 楼:有一些不一样。

对于原语类型的数组,如int[] a,在C里面只要这样定义之后就可以用a[i]使用了,但是在JAVA里面是不行的,必须用int[] a = new int[LENGTH];来为数组分配空间。

这里的a更应该看成C里面的指针,它和C里面的int* a是一样的,因为这个a(C 里面的)也要先malloc一个空间之后才可以用。

对于对象数组,则要“两次分配”,如:
Object[] obj = new Object[2];
obj[0] = new Object();
obj[1] = new Object();
因为数组首先是一个句柄,而这个句柄指向的2个空间里面又是存储着两个指向Object类型的句柄。

而C里面不完全相同:
struct Object{};
struct Object* obj = (struct Object *)malloc(2 * siz eof(struct Object));
其实他们的原理大至是相同的。

只不过JAVA里数组的内存分配是在堆里面的,必须用new 来分配,而C里面是在栈里面分配的,定义的时候会自动分配。

在《Thinking in JAVA》中有更详细的介绍。

C语言对比Java介绍

C语言对比Java介绍

C语言对比Java介绍
欢迎大家在这里学习C语言对比Java这里是我们给大家整理出来的精彩内容。

我相信,这些问题也肯定是很多朋友在关心的,所以我就给大家谈谈这个!作为一名C程序员,我们早已掌握了面向对象程序设计的基本概念,而且Java的语法无疑是非常熟悉的。

事实上,Java本来就是从C衍生出来的。

&rdquo;
 然而,C和Java之间仍存在一些显着的差异。

可以这样说,这些差异代表着技术的极大进步。

一旦我们弄清楚了这些差异,就会理解为什幺说Java是一种优秀的程序设计语言。

本附录将引导大家认识用于区分Java和C的一些重要特征。

 最大的障碍在于速度:解释过的Java要比C的执行速度慢上约20倍。

无论什幺都不能阻止Java语言进行编译。

写作本书的时候,刚刚出现了一些准实时编译器,它们能显着加快速度。

当然,我们完全有理由认为会出现适用于流行平台的纯固有编译器,但假若没有那些编译器,由于速度的限制,必须有些问题是Java不能解决的。

 和C一样,Java也提供了两种类型的注释。

 所有东西都必须置入一个类。

不存在全局函数或者全局数据。

如果想获得与全局函数等价的功能,可考虑将static方法和static数据置入一个类里。

注意没有象结构、枚举或者联合这一类的东西,一切只有类&rdquo;(Class)!。

Java中数组与C语言中数组的比较

Java中数组与C语言中数组的比较

3数 组操作 的不 同
b 1n h =3 .e g t
数组元 素 同普通 变 量 一 样 , 以进 行 各种 操 作 , 0 1 2 可 如被赋值 、 被打印 、 参加表达式计算等。在 J V A A中 数 组在 复制 操作 之前 在 内存 中表 现形式 为 : 数组 的复制 操作 和 C语 言有 很大 不 同 例 如 :
1n t 别 。与 C、 C+ +中不 同 ,aa对 数 组 元 素 要 进 行 越 b.e gh=5 Jv
0 0 0 界 检查 以确 保 安 全 性 。 同时 , 于 每 个 数 组 都 有 一 0 1 2 3 对 个 属性 l gh指 明它 的长 度 。 e t n 数组 复制 之后 : 4 0
由上图可以看 出, 数组名有 一个单独 的内存 空 间, 存放数组对象 的引用地址。这与 c语言是不 同 Jv aa中的定 义 格式 为 : p a aN m [ ;或 的。 t e ry ae ] y r
收 稿 日期 :0 6— 4— 8 20 0 0
作者简 介: 李舒亮 (9 8一) 女 , 16 , 江西分宜人 , 副教授 , 主要从事软件及 多媒体方面的研究。
声 明一个 整 型 数 组 , 组 名 表 示 一 个 引 用 地 址 数 变量 , C不 同 ,aa在 数组 的定 义 中并 不 为数 组元 与 Jv
素分配内存 , 因此[ 中不用指出数组中元素个数 , ] 即 数组长度 , 而且对 于如上定 义的一个数组是不能 访 问它的任何元素的。我们必须用 nw运算符为它分 e 配内存空间 , 其格式如下 : a aN m r y a e=nw ye a aS e ; r e t [r yi ] p r z 其 中 aryi raSz 明数组 的长 度 。如 : a = nw e指 e it5 ; nV ] 为一个整型数组分 配 5个 i 型整数所 占据 的 n t 内存空间 , 这两部分可以合在一起 , 格式如下 : t ea aN m = nwt e[ r yi ] 例如 : y r y a e p r e p a aSz , y r e i =nwi [ ] n a e t5 ; t n 它在 内存 中的表现形式为:

C语言C语言Java语言有什么区别

C语言C语言Java语言有什么区别

C语言C语言J a v a语言有什么区别SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#C语言,C++语言,Java语言有什么区别C不只能考级!!UNIX,WINDOWS漏洞,单片机。

很多地方都用到了C!!C语言是高级语言的基础,学习计算机语言可以先学C,但如果以后不用C直接学C++也行,但入门稍微困难点。

C是面向过程编程的,这样往往会导致所谓的单一程序,既所有的功能只能包含在几个(通常是一个)代码模块中。

而C++是编程(OOP)的,他杜绝了C面向过程的缺陷.OOP常常要使用许多代码模块,每个模块都有特定的功能,而且是孤立的。

OOP提供了非常强大的多样性,大大增强了代码的重用机会!C语言有一个突出的优点就是适合于多种,如DOS、UNIX,也适用于多种机型。

当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。

从应用的角度,C语言比其他高级语言较难掌握。

总之,C语言既有高级语言的特点,又具有的特点;既是一个成功的系统设计语言,有时一个使用的;既能用来编写不依赖的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的。

C++:的语言.是一门独立的语言;他并不依赖C语言.是编程语言中最复杂的一门.而VC是用微软C++编译器编译的语言,与标准c++有一些细微的不同.Java程序中的每个变量要么是基本数据类型(boolean,char,byte,short,int,long,float,double),要么是对对象的引用C++有许多种基本类型,额外还有struct,union,enum,数组和指针,C++指针可以指向对象,也可以不指向对象Java没有枚举、联合类型,因为Java认为没有必要。

将可有可无的语言元素去掉是Java对做出的一大改变,因此,普遍认为Java较C++更轻便,更精简Java采用Unicode字符集,C++通常用ASCII字符集。

c语言与java的一些区别注意点

c语言与java的一些区别注意点

c语⾔与java的⼀些区别注意点// java数据类型和长度int 4个字节 double 8个字节 float 4个字节 long 8个字节// short 2个字节 boolean 1个字节 char 2个字节 byte 1个字节// char, int, float, double, signed, unsigned, long, short and void// c语⾔中数据类型⽐java少⼀些在c语⾔中没有 boolean类型的数据 int 1 代表真 0 代表假// c 语⾔中没有String类型的数据 java中表⽰⼀个字符串 String , c语⾔中表⽰字符串通过char类型的数组来表⽰字符串// c 语⾔没有byte类型所有⽤char的类型表⽰byte类型#include <stdio.h>#include <stdlib.h>// sizeof(); c语⾔的⼀个函数可以把某种数据类型的长度获取出来 intmain(){ // %d 类似sql语句的? 占位符printf("char的长度为%d\n", sizeof(char));//1printf("int的长度为%d\n", sizeof(int));//4printf("float的长度为%d\n", sizeof(float));//4printf("double的长度为%d\n", sizeof(double));//8printf("long的长度为%d\n", sizeof(long));//在不同的情况下可能会有不同的⼤⼩,但是long的长度⼀定⽐int⼤ 4printf("short的长度为%d\n", sizeof(short));// 2//signed, unsigned, 数据类型的修饰符// signed int ; 代表的是有符号的int的数据// unsigned int ; ⽆符号的int数据printf("signed int的长度为%d\n", sizeof( signed int));//4printf("unsigned int的长度为%d\n", sizeof( unsigned int));//4// 符号的修饰符只能修饰整数类型的数据 long int// 不能修饰浮点型的数据 float double// printf("signed float的长度为%d\n", sizeof( signed float));system("pause"); // 调⽤windows下系统的命令让程序暂停执⾏⽅便观察程序的执⾏结果}。

编程语言C与Java的对比分析

编程语言C与Java的对比分析

编程语言C与Java的对比分析引言在计算机科学领域,编程语言是实现软件开发的工具之一。

C语言和Java语言作为两种广泛应用的编程语言,都具有其独特的特点和用途。

本文将对C语言和Java语言进行对比分析,探讨它们在各个方面的异同点。

一、历史背景C语言作为一种较早出现的编程语言,由贝尔实验室的Dennis Ritchie开发,并在1978年发布。

它主要用于系统级编程和嵌入式系统的开发。

而Java语言则诞生于1995年,由Sun Microsystems的James Gosling领导的团队开发。

Java语言最初的目标是用于编写小型家电的程序,但它很快发展成一种适用于各种跨平台应用的高级编程语言。

二、语法特点1. C语言的语法简洁而直接,更加接近底层硬件,这使得它在系统级编程和对性能要求较高的应用中具有优势。

C语言中的语法严格,需要手动管理内存,并具有指针等底层操作能力。

2. Java语言的语法相对复杂,但更具可读性和易用性,更容易学习和使用。

Java提供了自动内存管理(垃圾回收),有效减少了程序员的错误和工作量。

它也禁止了指针等对底层硬件的直接访问,提高了程序的安全性。

三、开发环境和工具1. C语言的开发通常采用编译器进行,常见的C语言编译器有GCC、Clang等。

对于跨平台开发,可以使用支持C语言的多个操作系统和开发环境。

2. Java语言的开发则需要Java Development Kit(JDK),JDK包括了编译器、调试器和其他必要的工具。

Java的优势之一是其跨平台性,只要在目标平台上安装了Java虚拟机(JVM),就可以运行Java程序,这使得Java在企业级应用和云计算等领域广泛应用。

四、应用领域1. C语言广泛应用于系统级编程,嵌入式设备开发,以及对底层硬件要求较高的应用领域。

因为C语言可以直接访问内存和硬件设备,所以在需求高性能和直接控制硬件的场景下通常选择C语言。

2. Java语言由于其易用性和跨平台性,适用于大型软件项目、企业级应用以及大规模分布式系统的开发。

PythonJava和C在数据分析领域的应用对比

PythonJava和C在数据分析领域的应用对比

PythonJava和C在数据分析领域的应用对比Python、Java 和 C 在数据分析领域的应用对比在当今数字化的时代,数据分析已经成为了企业和组织决策的重要依据。

而编程语言在数据分析中扮演着至关重要的角色。

Python、Java 和 C 作为三种常见的编程语言,各自在数据分析领域有着独特的应用特点和优势。

Python 作为一种高级编程语言,在数据分析领域的应用越来越广泛。

它具有丰富的库和工具,使得数据处理和分析变得相对简单。

例如,NumPy 库提供了高效的多维数组操作,Pandas 库则为数据处理和分析提供了强大的功能,包括数据读取、清理、转换和聚合等。

而Matplotlib、Seaborn 等库则用于数据可视化,能够将复杂的数据以直观的图表形式展现出来,帮助分析人员更好地理解数据。

Python 的语法简洁易懂,对于初学者来说比较友好。

它强调代码的可读性,采用缩进的方式来表示代码块,使得代码结构清晰明了。

而且,Python 拥有活跃的社区和丰富的学习资源,当遇到问题时,很容易在网上找到解决方案。

在数据分析项目中,Python 可以快速地进行数据探索和预处理。

通过读取各种格式的数据文件,如 CSV、Excel、JSON 等,对数据进行清洗、缺失值处理和异常值检测。

然后,运用统计分析方法和机器学习算法对数据进行分析和建模。

Java 在数据分析领域也有一定的地位。

它的优势在于其强大的面向对象编程特性和良好的性能。

在处理大规模数据时,Java 的性能表现相对出色。

Java 拥有完善的类库和框架,如 Apache Hadoop 生态系统中的 Hive、HBase 等,这些工具可以用于分布式数据存储和处理,适用于处理海量的数据。

与 Python 不同,Java 的语法相对较为严谨和复杂,但这也使得它在编写大型项目时更具规范性和可维护性。

在企业级的数据分析应用中,Java 常常用于构建稳定可靠的后端服务,处理数据的存储、传输和计算。

c程序设计语言c和java的区别是什么

c程序设计语言c和java的区别是什么

c程序设计语言c和java的区别是什么对于那些经常使用快速开发工具,如Delphi或者ViualBaic的开发人员来说,属性是一个非常熟悉的概念。

一般来说,通过get某某某可以读取属性的值,而通过et某某某可以设置属性的值。

c#中比较常见的属性操作语句:foo.ize++;label.font.bold=true;很明显,上述的属性设置方式较JAVA来说更为简洁,可主读性也更强。

这充分体现了C#简单的特点。

JAVA对于属性的定义:publicintgetSize(){returnize;}publicvoidetSize(intvalue){ize=val ue;}c#对于属性的定义进行了简化:publicintSize{get{returnize;}et{ize=value;}}C#提供inde某来给对象加上索引的功能,从而用与处理数组类似的方式来处理对象,JAVA语言则不支持inde某可以认为是一种类型安全、面向对象的函数指针。

C#使有delegate可以通过一个名字访问不同的函数,它实现和JAVA 中的interface类似的功能,但是它比interface更为好用。

C#提供对event的直接支持,它通过delegate和event关键字实现对事件的处理。

event关键字隐藏所有delegate方法,运算符“+=”和“-+”允许程序员自由加入或者删除时间处理程序。

枚举用于指定一系列的对象。

C#通过如下语句来定义和使用枚举:定义:publicenumDirection{North,Eat,Wet,South};JAVA不直接支持枚举,如果要实现和C#相类似的功能,必须先定义一个类C#提供了标准的for循环,同时还提供了foreach语句(从VB中引入)来循环处理集合中的元素。

C#遍历集合中的所有元素:foreach(objectoincollection){…}大多数的高级程序设计语言都有基本数据类型,如整型、浮点类型等。

C语言学习——C和Java语言不同点

C语言学习——C和Java语言不同点
记得之前学校做项目就是这样定义一个变量没有赋予初值为0的习惯导致后面计算在
C语言学习 ——C和 Java语言不同点
Java中有boolean数据类型,”真“为true,”假“为false。而且在if()括号里只能放boolean类型的值。 C的基本数据类型和Java的基本一致,但C多了指针类型。指针是C语言的重点。 需要注意的是,Java定义全局变量时会自动帮你完成初始化,数字变量会自动赋0,char类型变量会自动赋'0',对象变量对自动赋null。而定 义局部变量的时候Java不会自动初始化它而是报错。 C定义全局变量时自动赋0;定义局部变量时会自动赋随机数。(C是弱语言,有些地方它不会报错,这让我们很难发现错误。) 参考资料:

Java中数组与C语言中数组的比较

Java中数组与C语言中数组的比较

Java中数组与C语言中数组的比较
李舒亮
【期刊名称】《新余学院学报》
【年(卷),期】2006(011)003
【摘要】从多方面比较数组在java与C语言中的区别,根据它们在内存中的表现形式,找出其差别的根本原因.
【总页数】3页(P85-87)
【作者】李舒亮
【作者单位】新余高等专科学校,计算机系,江西,新余,338000
【正文语种】中文
【中图分类】TP312
【相关文献】
1.C语言中数组指针在汇编语言寻址方式中的应用 [J], 马耀锋;李红丽
2.C语言中数组指针在汇编语言寻址方式中的应用 [J], 马耀锋;李红丽
3.论《C语言程序设计》中的数组 [J], 武丽娟
4.C语言程序设计中数组的有效运用 [J], 周亚辉
5.论C语言程序设计中数组的定义与使用 [J], 李红霞
因版权原因,仅展示原文概要,查看原文内容请购买。

Java中数组与C语言中数组的比较_李舒亮 (1)

Java中数组与C语言中数组的比较_李舒亮 (1)

数组是高级程序设计语 言中常见的数据 类型 , 它是一组有序数据的集合 , 数组中的 每个元素都具 有相同的数据类型 。 用数组名和下标来标识数组中 的每个元素 。 使用数组可以为处 理成批的 、有内在 联系的数据提供便利 , 使用数组也使 得算法的实现 更加精炼 。
在 java和 C 语言中 都提供 了数组 这种数 据类 型 , 但它们有很大的区别 , 在 C 语言中数组是一种构 造类型 , 而在 java中数组是一种引用类型 。 两者在 内存中的表现形式是完全不同的 。 由此而引出的对 数组的操作也有很大的区别 。 下面就这个问题进行 讨论 。 1 数组的定义上的不同
leng th);
fo r(j =0;j <b. length;j ++)
{
System. ou.t print ( b [ j ] + "
");
/ /打印复制之后的数组的长度和内容
}
}
}
运行结果为 : a. length =3 012 数组复制之前 : b. leng th =5 0 10 20 30 40 数组复制之后 : b. leng th =3 012 数组在复制操作之前在内存中表现形式为 :
个属性 leng th指明它的长度 。
3 数组操作的不同
数组元素同普通变量一样 , 可以进行各种操作 ,
如被赋值 、被打印 、参加表达式计算等 。 在 JAVA 中
数组的复制操作和 C 语言有很大不同 。 例如 :
public classA rrayC
{
public static void m ain(S tring[ ] args)
声明一个整型数组 , 数组名表 示一个引用地 址 变量 , 与 C 不同 , Java在数组的定义中并不为数组元 素分配内存 , 因此 [ ] 中不用指出数组中元素个数 , 即 数组长度 , 而且对于如 上定义的一个数组是不能 访 问它的任何元素的 。我们必须用 new 运算符为它分 配内存空间 , 其格式如下 :

与C 相比,Java中的数组有什么不同

与C  相比,Java中的数组有什么不同

与C++相比,Java中的数组有什么不同
(1)一维数组:声明:数据类型数组名[ ] 或数据类型[ ] 数组名注意:不能指定数组元素多少;创建:new 数据类型[数组的长度],通常赋值给数组名,也可以将声明与创建合二为一,例如:int a[]; a=new int[3]; 与int a[]=new int[3];效果等同。

静态初始化:是数组声明的另一种形式,格式:数据类型数组名[ ]={值1,值2,…, };例如:int a[ ] = { 3, 9, 8}; 相当于int a[ ]= new int[3]; 和a[0]=3, a[1]=9, a[2]=8;(2)多维数组:将它看做是一维数组,只是其中的每一个元素是低一维的数组。

声明、创建方法与一维数组类似,例如:int a[][]=new int[3][4]; 与int a[][]=new int[3][]; a[0]=new int[4]; a[1]=new int[4]; a[2]=new int[4]; 等同此外,在多维数组中还可以声明长短不一的不规则数组。

(3)length是表示数组长度的属性;而数组元素的引用则与C++的格式类似。

1。

Java和C语言的区别

Java和C语言的区别

Java和C语言的区别C语言是面向过程的语言,而Java是面向对象的语言。

下面小编给大家介绍Java和C语言的区别,欢迎阅读!1Java与C语言各自的优势C语言是面向过程的语言,执行效率高;Java是面向对象的语言,执行效率比C语言低。

C语言最关键的是比Java多了指针,这也说明了Java的健壮*,还有Java的多线程机制使程序可以并行运行,Java程序多用于网络。

C语言的安全*不如Java,C语言没有Java的垃圾回收机制,申请的空间要手动释放。

Java的通用*好,可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了。

2Java和C语言谁的通用*会比较好在速度上,C语言编写的程序要优于Java,因为Java必须运行在虚拟机的环境中,但是因为虚拟机,Java获得的平台无关*,而C语言的程序有可能需要重新修改编译才能实现平台的移植,另一方面,C语言比Java语言更“底层”,因此可以用C编写例如硬件的驱动,而Java却不行。

Java和C语言还有个明显的不同就是C语言注重的是算法,但是Java却不一样,想用的时候导包就可以了。

C语言的算法很重要,但是Java中的算法没有C语言那么复杂。

打印的方法:C语言是printf("…….");而Java是System.out.print("……."),也可以用println,ln表示换行。

Java程序中的基本数据类型(boolean,char,byte,short,int,long,float,double),是对对象的引用;C语言也有许多种基本类型,还有struct,union,enum,数组和指针。

在Java没有枚举、联合类型。

Java采用Unicode字符集,C语言通常采用的是ASCII字符集,A—65,a—97。

C语言的变量可以不进行初始化,但Java的变量要进行初始化。

在C语言中,char类型占一个字节,在Java中char类型占2个字节。

java,c,c语言之间基本数据类型的比较-wu928320442的专栏-CSDN博客

java,c,c语言之间基本数据类型的比较-wu928320442的专栏-CSDN博客

java,c,c语言之间基本数据类型的比较-wu928320442的专栏-CSDN博客java,c,c++ 语言之间基本数据类型的比较收藏当要进行底层移植的时候肯定会遇到这些问题。

特整理了下。

java语言基本数据类型在JAVA中一共有八种基本数据类型,他们分别是byte、short、int、long、float、double、char、boolean整型其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)可以看到byte和short的取值范围比较小,而long的取值范围太大,占用的空间多,基本上int可以满足我们的日常的计算了,而且int也是使用的最多的整型类型了。

在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。

浮点型float和double是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节double 1.797693e+308~ 4.9000000e-324 占用8个字节double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。

java-cs比较

java-cs比较
Java没有属性的概念。Java通过约定为字段XX添加getXX,setXX方法达到同样的目的。
预编译指令
[无]
C#有预编译指令可方便调试,且有ConditionalAttribute来描述方法。Java没有。
操作符重载
[无]
C#可重载操作符。Java没有。
Java自己重载了String的+和+=,但没有重载==,这是我这段时间犯的最多的错误。C#中String的==是比较值相等,Java中==是Object的默认行为:比较引用相等,要比较值相等得用equals方法。(这么多年编程以来,我似乎从来没有遇到过要比较两个字符串变量的引用相等。对于比较值相等来讲,==符号比equals方法调用看上去优雅得多,况且方法调用还得注意空指针的情况)
[无]
throws
Java在可能抛出异常时,除了RuntimeException(包括派生类),都要么捕获,要么在方法声明中用throws关键字声明出来表示继续抛出。
C#没有采用这种强制处理机制。
功能相同但语法有差异的
namespace == package (Java的package对文件结构也有要求;C#没有)
非托管
[无]
C#可以有非托管代码,可以有指针等。Java没有。
索引器
[无]
C#有索引器,可方便容器类实现类似数组的效果。Java没有,Java的容器基本上用put,get,set等方法达到同样效果。
属性
[无]
C#的属性通过在内部定义get/set方法,使外部使用时像是在使用变量字段,但其实是在调用get/set方法,以达到透明的封装数据的目的。
当然,.NET和Java两大体系的比较,语言只是一个方面,还有平台、IDE、开源等其他很多方面,这里就不说了。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以一维数组的定义为例来说明 : C语言中的定义格式为 :type arrayN am e[ 常量表 达式] ; 其中类型 type可以为 C 中任意的数据类型 , 数 组名 a rrayN am e 为一个合法的标识符 , 常量表达式指 明数组的大小 , 在 C 语言中数组的大小不允许作动 态的定义 。 例如 :int a[ 5] ; 声 明一个整 型数组 a, 长 度为 5, 包含 a [ 0] 、 a [ 1] 、a[ 2] 、a[ 3] 、a[ 4]这 5个整型元素 , 在内存中为 这个数组分配一片连续的内存空间存放这 5个元素 , 数组名可以表示数组的首地址 , 但并 没开创一个内 存空间来存放数组名 。它在内存中的表现形式为 :
社 , 2004.
(责任编校 :任 华 )
C ompar ison of array in Java and array in C language
L I Shu - liang
(X inyu C ollege, X inyu 338000, china) Ab stract:The au thor distingu ishes the array in Java and tha t in C languag e and acco rding to the ir fo rm in core sto re, finds ou t the fundam en ta l cause s fo r differences. K ey w ords:a rray;object; refe rence variable;diffe rence; Java;C language
个属性 leng th指明它的长度 。
3 数组操作的不同
数组元素同普通变量一样 , 可以进行各种操作 ,
如被赋值 、被打印 、参加表达式计算等 。 在 JAVA 中
数组的复制操作和 C 语言有很大不同 。 例如 :
public classA rrayC
{
public static void m ain(S tring[ ] args)
{
in t a[ ] , b[ ] , i, j;
a =new in t[ 3] ;
b =new int [ 5] ;
System. ou.t p rintln ( "a. length =" + a.
leng th);
fo r(i =0;i <a. leng th;i ++)
{
a[ i] =i;
System. ou.t print(a[ i] +"");} / 打/
leng th);
fo r(j =0;j <b. length;j ++)
{
System. ou.t print ( b [ j ] + "
");
/ /打印复制之后的数组的长度和内容
}
}
}
运行结果为 : a. length =3 012 数组复制之前 : b. leng th =5 0 10 20 30 40 数组复制之后 : b. leng th =3 012 数组在复制操作之前在内存中表现形式为 :
System. ou.t print ( b [ j ] + "
");
/ /打印 b数组
}
System. ou.t p rintln();
b =a;
/ 数/ 组复制
System. ou.t p rintln("数组复制之后 :");
System. ou.t println ( "b. leng th =" +b.
fo r(in t i =0;i <array. leng th;i ++) Sy stem. ou.t print("\t"+array[ i] ); System. ou.t p rintln(); } static vo id e lem Sqrt(double array[ ] ) { for(int i =0;i <array. length;i ++) a rray[ i] =M a th. sqrt(array[ i] ); } } 运行结果为 : 9. 0 56. 0 78. 0 35. 0 36. 0 3. 0 7. 4833 8. 8317 5. 9160 6. 0 实参数组的引用变量传递给形参数组的引用变 量内存的表示为 :
由上图可以看出 , 数组名有一 个单独的内存 空 间 , 存放数组对象的引用地址 。 这与 C 语言是不 同 的。
收稿日期 :2006 - 04 - 08 作者简介 :李舒亮 (1968 - ), 女 , 江西分宜人 , 副教授 , 主要从事软件及多媒体方面的研 究 。
— 85 —
第 3期
新 余 高 专 学 报
数组作参数分为数组 元素和数组名 两种 , 基 本 数据类型的数组元素作形参和实 参 , 实现的是值 传 递 , 这一点 java和 C 语言是一样的 。 用数组名作为 函数的形参和实参 , 在 C 语言中实现的是地址传递 , 把实参数组的地址传递给形参数 组 , 使得实参数 组 和形参数组共用同一段存储空间 , 形参数组的改 变 会影响实参数组 , 这种影响是双向的 ;而在 java中用 数组名作方法的形参和实参 , 实现的是值传递 , 把实 参数组名的引用地址传递给形参 数组的引用 , 使 得 形参数组的引 用和实 参数组 的引用 指向同 一段 内
声明一个整型数组 , 数组名表 示一个引用地 址 变量 , 与 C 不同 , Java在数组的定义中并不为数组元 素分配内存 , 因此 [ ] 中不用指出数组中元素个数 , 即 数组长度 , 而且对于如 上定义的一个数组是不能 访 问它的任何元素的 。我们必须用 new 运算符为它分 配内存空间 , 其格式如下 :
例: public c lass array sqrt { public static void m ain(S tring[ ] args) { double data[ ] ={9. 0, 56. 0, 78. 0, 35. 0, 36. 0}; p rin tA (d ata); elem Sqrt(da ta); p rin tA (d ata); } sta tic vo id p rintA (double array[ ] ) {
2006(第 11卷 )
2 数组的初始化
可以结合 FOR语句给数组元素赋初值 , 也可以
在定义数组的同时进行初始化 。 数组元素的引用形
式为 :数组名 [下标 ] , 这方面 java和 C 没 有什么区
别 。与 C、 C ++中不同 , Java对数组元素要进行越
界检查以确保安全性 。 同时 , 对于每个数 组都有一
是对象 。
参考文献 : [ 1] 耿袢义 , 张 跃平. Java2 实用教 程 (第二 版 )[ M ] . 北 京 :清
华大学出版社 , 2004. [ 2] 朱喜福 , 林建民 , 唐 永新. Jav a程 序设计 [ M ] . 北 京 :人民
邮电出版社 , 2001. [ 3] 李尊朝 , 苏 军. Java 程 序设 计 [ M ] . 北 京 :中 国铁 道出 版
除了以上的区别外 , 在 java类库还为 数组提供 了一系列的方法 , 加强了数组的功能 , 这里就不再说 明。 五 结论
数组在 java与 C 语言中的各种区别 , 本质原因 是 :数组在 java中是对象 , 而在 C 语言中是一种构造 类型 。 这也符合面向对象程度设 计的理念 :一切都
— 87 —
第 11卷第 3期 2006年 6月
新 余 高 专 学 报 JOURNA L O F X INYU CO LLEGE
V o .l 11, NO. 3 Jun. 2006
Java中数组与 C 语言 中数组的比较
● 李舒亮
(新余高等专科学校 计算机 系 , 江西 新余 338000)
摘 要 :从多方面比较数组在 java与 C 语言中的区别 , 根据它们在内存中的表现形式 , 找出其差别的 根本原因 。 关键 词 :数组 ;对象 ;引用变量 ;区别 ;jav a ;C 语言 中图 分类号 :TP 312 文献标识码 :A 文章编号 :1008 - 6765(2006)03 - 0085 - 03
印 a数组
System. ou.t p rintln();
/ /换行
System. ou.t p rintln("数组复制之前 :");
System. ou.t println ( "b. leng th =" +b.
leng th);
fo r(j =0;j <b. length;j ++)
{
b[ j] =j*10;
ห้องสมุดไป่ตู้
数组是高级程序设计语 言中常见的数据 类型 , 它是一组有序数据的集合 , 数组中的 每个元素都具 有相同的数据类型 。 用数组名和下标来标识数组中 的每个元素 。 使用数组可以为处 理成批的 、有内在 联系的数据提供便利 , 使用数组也使 得算法的实现 更加精炼 。
在 java和 C 语言中 都提供 了数组 这种数 据类 型 , 但它们有很大的区别 , 在 C 语言中数组是一种构 造类型 , 而在 java中数组是一种引用类型 。 两者在 内存中的表现形式是完全不同的 。 由此而引出的对 数组的操作也有很大的区别 。 下面就这个问题进行 讨论 。 1 数组的定义上的不同
数组复制操作完成之后内存的表现形式 :
从图中可以看出 , 执行 b =a语句后 , a把自己的 引用地址赋值给了 b, 使得 b 和 a指向同一段内存 , 而 b 原来指向的内存空间就变成了一个空的引用 , 最后会被 java的垃圾回收机制自动收回 。 而在 C 语 言中 , 数组名是不能进行直接进行赋值的 。 4 数组作参数的不同
相关文档
最新文档