c/c++/java区别

Java中对内存的分配是动态的:面向对象的机制,采用运算符new为每个对象分配内存空间,而且,实际内存还会随程序运行情况而改变.程序运行中,每个, Java系统自动对内存进行扫描,对长期不用的空间作为”垃圾”进行收集,使得系统资源得到更充分地利用.按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了了由于内存管理方面的差错而导致系统出问题.而C语言通过malloc()和free()这两个库函数来分别实现分配内在和释放内存空间的,C++语言中则通过运算符new和delete来分配和释放内存.在C和C++这仲机制中,程序员必须非常仔细地处理内存的使用问题.一方面,如果对己释放的内存再作释放或者对未曾分配的内存作释放,都会造成死机;而另一方面,如果对长期不用的或不再使用的内存不释放,则会浪费系统资源,甚至因此造成资源枯竭.

Java不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变量来完成全局变量的功能.
Java不用goto语句,而是用try-catch-finally异常处理语句来代替goto语句处理出错的功能.

Java不支持头文件,面C和C++语言中都用头文件来定义类的原型,全局变量,库函数等,这种采用头文件的结构使得系统的运行维护相当繁杂.

Java不支持宏定义,而是使用关键字final来定义常量,在C++中则采用宏定义来实现常量定义,这不得于程序的可读性.

Java对每种数据类型都分配固定长度.比如,在Java中,int类型总是32位的,而在C和C++中,对于不同的平台,同一个数据类型分配不同的字节数,同样是int类型,在PC机中为二字节即16位,而在VAX-11中,则为32位.这使得C语言造成不可移植性,而Java则具有跨平台性(平台无关性).

类型转换不同.在C和C++中,可通过指针进行任意的类型转换,常常带来不安全性,而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换.

结构和联合的处理.在C和C++中,结构和联合的所有成员均为公有,这就带来了安全性问题,而在Java中根本就不包含结构和联合,所有的内容都封装在类里面

Java不再使用指针.指针是C和C++中最灵活,也最容易产生错误的数据类型.由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性.而Java对指针进行完全地控制,程序员不能直接进行任何指针操作.

时间: 2024-08-06 09:41:51

c/c++/java区别的相关文章

c语言-有点奇怪,C语言精度问题(跟JAVA区别)。

问题描述 有点奇怪,C语言精度问题(跟JAVA区别). 这段代码转成C语言行不通..在C语言我试了缩小x的范围,整体都缩小了才能运行出正确答案.. C语言跟JAVA还存在这方面的区别?? 解决方案 c语言精度有限的,整数最高精度就是long long,占用8个字节,最大范围是-2^63 ~ 2^63 - 1,java中有现成的类BigInteger和BigDecimal,原则上是只要你的内存足够大,就能表示任意精度的数字 解决方案二: 我在做排序算法的代码模拟的时候也发现了这个问题,c语言对数据

c++ c# java 区别小汇

托管与非托管代码 托管代码 ,managed  code,是由公共语言运行环境(而不是直接由操作系统)执行的代码.公共语言运行库会提供例如垃圾自动回收.运行库类型检查和安全支持等. 非托管代码,直接由操作系统运行. java.c#都是托管代码:c++不是.再如,COM 组件.ActiveX 接口和 Win32 API 函数都是非托管代码.为什么托管代码在企业中用的多? 托管代码由虚拟机执行,它可以帮程序员做许多事情,如数组越界检查.内存回收.人是容易犯错的动物,所以写cpp代码易犯一些隐蔽的错误

JavaScript 与 Java 区别介绍 学java怎么样_java

java和javascript长得是如此地相像,那么它们是一回事儿吗?现在让我来揭晓答案吧! JavaScript 是一种嵌入式脚本文件,直接插入网页,有浏览器一边解释一边执行. java 语言不一样,他必须在JAVA虚拟机上运行.而且事先需要进行编译. JAVA的语法规则比JavaScript要严格的多,功能要强大的多. 首先,这两个家伙没有任何的血缘关系,java是是由Sun 公司于1995年5月推出的,而javascript是于1995年由Netscape公司设计实现而成的,由于Netsc

JavaScript中setinterval和setTimeout的区别

计时器setTimeout()与setInterval()是原生JS很重要且用处很多的两个方法, 但很多人一直误以为是相同的功能: 间隔时间重复执行传入的句柄函数. 但实际上, 并非如此, 既然JS给出了两个不同的命名, 肯定有其迥异之处. 先来看看两者JS手册及英文词典上的解释: JS手册setTimeout() : 用于在指定的毫秒数后调用函数或计算表达式; 英文释义timeout() : 超时:暂时休息:工间休息; JS手册setInterval() : 按照指定的周期(以毫秒计)来调用函

java单线程和多线程的区别

1.单线程和多线程的区别? 你早上上班,正要打卡的时候,手机响了..你如果先接了电话,等接完了,在打卡,就是单线程.如果你一手接电话,一手打卡.就是多线程.这两件事的结果是一样的..你接了电话且打了卡. (1)最常见的一个线程例子: package com.ggx.thread; public class OnlyThread{ public static void main(String[] args){ System.out.println("我就是一个线程"); } } 当程序启

Java中vector理解2——vector和arrayList的区别

这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList.Vector和LinkedList.List用于存放多个元素,能够维护元素的次序,并且允许元素的重复.3个具体实现类的相关区别如下: ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中.当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制

网页设计中JS与Java的区别

js|区别|设计|网页|网页设计 在各种网页制作技术论坛中,常常有人询问javascript与Java有什么区别,甚至有人误认为javascript就是Java.javascript与Java确实有一定的联系,但它们并不像我们想象的那样联系紧密,甚至可以肯定地说它们有很大的区别. 什么是JavaScript ? JavaScript 是对 ECMA 262 语言规范的一种实现.本教程的目的就是引导您学习使用 JavaScript ,所有例子都在 Internet Explorer 5 下通过,本

Java,JavaScript,JScript 区别

javascript|js|jscript|区别 今天在网上看到有些人在问JavaScript和jscript的区别,才发现有些人有误区. 这三个语言分别是三个公司开发的,SUN的Java,Netscape的JavaScript,Microsoft的JScript JavaScript是由Netscape公司开发并随Navigator导航者一起发布的.介于Java与HTML之间.基于对象事件驱动的编程语言,不需要Java编译器,而是直接运行在Web浏览器中,它的前身是Live Script. J

java中System.getenv和System.getProperties有什么区别

System.getenv获取的是系统的环境变量(就是用户在操作系统中设置的环境变量),windows和linux下环境变量的设置就不说了哦. System.getProperties获取的是系统的相关属性.在java api文档中已经列出了如下属性 如果我们要在java程序启动就能获取自定义的系统属性我们可以使用 java –Dname=zhuhui 这样我们就在系统属性中设置了名称为myname值为zhuhui的系统属性,那么就可以通过System.getProperty("name&quo