c++与java的一些不同点

   Java、C、C++在近两年一直稳居世界编程语言排行榜前三名。Java与c++都是面向对象的语言,但Java晚于C++发布,部分语法和思想也参考了C++,只是Java 没有头文件、指针、运算符重载、虚基类等等,算是c++语言的“纯净版”。学过c++的同学入门Java相对来说就不算很难了,应当注意的是Java与c++有很多不同点。

1.头文件与命名空间

  c++里可以用头文件,而Java里没有头文件的用法。

  Java里有package关键字的用法。当一个大型程序交由数个不同的程序人员开发时,很有可能用到相同的类名,所以在java程序开发中为了避免这个问题,提供了一个包的概念,只需要在写的程序第一行使用package关键字来声明一个包。在我的理解里,包就类似于文件夹,它将源代码文件(.java)、编译后的文件(.class)和其他的一些用到的文件有组织的放在一起,这样一个大型程序就算是有相同类名,这些相同名字的类在不同包内就不用担心会出问题。

  在c++里有一个经典的命名:using namespace std;这行代码使得我们在使用cin、cout、endl……时不用加std::的前缀。而在Java里有import关键字的用法,它同样能让我们在编写程序时省下写前缀的力气。import与#include有点相似但却不一样,编译器会在import导入的包里选择与类名对应的包,而#include则是编译器将其他文件的内容载入进来。Java里有一个java.lang包,里面的类经常用到,几乎没有类不用它的, 所以不管有没有写 import java.lang,编译器都会自动补上。

2.输入输出

c++的输入输出靠输入流cin,输出流cout、cerr、clog实现,需要写#include<iostream>。Java语言里没有像c++那样简便的一个函数完成输入,它的输入比较复杂。

1 import java.util.Scanner;
2 Scanner sc = new Scanner(System.in);
3 String a = sc.nextLine();
4 int b = sc.nextInt();
5 float c = sc.nextFloat();
6 double d = sc.nextDouble();

Scanner类中没有nextChar方法,不能直接通过Scanner类从控制台读取char类型的变量,不能这样写

1 import java.util.Scanner;
2 Scanner sc = new Scanner(System.in);
3 char a = sc.nextChar();             //这种方法是错的,Scanner类中没有nextChar方法

Java的输出语句用法很简单:System.out.println();例如:

1 int age = 18;
2 String name = "张三";
3 System.out.println(age + "岁的" + name);//输出结果为:18岁的张三

3.数组

c++中定义数组格式是:数据类型  数组名[数组长度];

数组静态初始化格式:数据类型  数组名[] = {元素1,2,...};

Java中定义数组格式是:数据类型[]  数组名 = new 数据类型[数组长度];

数组静态初始化格式:数据类型[] 数组名 = new 数据类型[]{元素1,2,...};

1 int[] a = new int[5];   //Java定义数组
2 double[] b = new double[]{0.1 2.3 4.5 6.7 8.9};//可简写为double[] b = {0.1 2.3 4.5 6.7 8.9};

目前学到这,未完待续(?′?`?)...

原文地址:https://www.cnblogs.com/dream0-0/p/9304478.html

时间: 2024-11-10 03:30:29

c++与java的一些不同点的相关文章

整理的部分Java和C#不同点

C#有统一的类型系统,所有的类型包括原始类型(int,bool,short,long等类型)都继承于Object类. Java略不同,它的原始类型不是继承于Object,每个原始类型都有对应的包裹类(继承于Object),比如int的包裹类Integer C#有无符号整数,uint.ulong.ushort Java没有 C#没有高精度的decimal. Java中有BigDecimal C#支持复数.Complex 结构 Java中没有 C#中有值类型.通过使用strutct关键字,可以定义结

累积下学习 C#时和 Java时的不同点

==和equals()方法的区别: 首先有一个观点: 这两个都是用来比较值是否相等的 ( 这里的值有时候指的是地址值, 有时候是存储的值; 下面将地址值称为地址, 存储的值称为值 ) 在Java中: 对于值类型: ==比较的是值, equals()方法比较的也是值 ( 不过值类型需要手动装箱后才能调用方法 ) 对于非 Object的引用类型: ==比较的是地址, equals()方法比较的是值 ( 在 Object 类中比较的是地址, 如果类中重写了 equals()方法, 就像根据重写的内容进

JAVA编程常识汇总

以下为JAVA编程的常识,注意学习积累. 1.Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥有全球最大的开发者专业社群. 2.JAVA编程命名规则惯例: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组成,那么每个单词的首字母应该大写,例如

沉淀,再出发:Java基础知识汇总

沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的语法,对象的定义,类.接口.继承.静态.动态.重载.覆盖这些基本的概念和使用方法,到稍微高级一点的多线程,文件读写,网络编程,GUI使用,再到之后的反射机制.序列化.与数据库的结合等高级一点的用法,最后将设计模式应用其中,产生了一个个新的概念,比如Spring.Spring MVC.Hibernat

ABAP vs Java, 蛙泳 vs 自由泳

去年7月定下的一年之内学会自由泳的目标终于实现了,特来还愿. ABAP和Java,?蛙泳和自由泳.前面的组合是Jerry用来挣钱养家的技术,后者是Jerry花了大量业余时间和金钱苦练的技能.或许有的朋友觉得这两组概念风马牛不相及,然而在Jerry眼中,ABAP之于Java, 相当于蛙泳之于自由泳. 文章目录 ABAP和Java的相同点 1. 语言特性 2. 开发框架,工具和生态圈 蛙泳和自由泳的相同点 ABAP(蛙泳)和Java(自由泳)的不同点 1.? "Java(自由泳)的环境搭建(游进)比

Java虚拟机(JVM)概述

JVM(Java虚拟机)是一个抽象的计算模型.就如同一台真实的机器,它有自己的指令集和执行引擎,可以在运行时操控内存区域.目的是为构建在其上运行的应用程序提供一个运行环境.JVM可以解读指令代码并与底层进行交互:包括操作系统平台和执行指令并管理资源的硬件体系结构.本文主要对JVM进行概述,并介绍Java程序是如何在上面执行的. 虚拟机 从本质上讲,虚拟机是个被构建来提供特定或通用目的服务环境的非实体计算机.这听起来像是一个仿真器,用来仿真机器未配置或不能按要求执行任务的硬件组件.因此,我们要做的

揭开J2EE的面纱

对于最初开始学习java的初学者来说首先应该知道java的版本,java开始推出了三个版本:J2SE,J2EE,J2ME.J2SE包含原始的核心类库.J2EE功能非常全面,用于数据处理和服务器端应用,J2ME主要用于嵌入式设备如手机.下面具体说下J2EE. J2EE核心是一组技术规范与指南,其中所包含的各类组件.服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境. J2EE

J2EE-13个常用规范

J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性.安全与再用价值. J2EE组件和"标准的"Java类的不同点在于:它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由 J2EE服务器对其进行管理.简单点,J2EE就是一套标准. 对于13个规范相比.net中的知识进行对比了解: 1:JDBC(Java Database Connectivity): 第一感就是ODBC(微软公司-开放数据库互联),其实大体

SSH框架学习整理(一)

★J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性.安全与再用价值. 其核心是一组技术规范与指南,其中所包含的各类组件.服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性, 解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境.J2EE组件和"标准的" Java类的不同点在于:它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由J2EE