Java与C++编程的不同

1.数据类型和变量

C++ 中的变量类型与Java很相似。像Java一样,C++ 有int 和 double 类型。但是这些数字类型的取值范围是依赖于机器的。比如在16位系统上,例如运行DOS 或Windows 3.x的PC机上,int 是双字节(2-byte)的,取值范围比Java的4-byte的int 要小很多。在这些机器上,如果 int 不够用的话,你需要使用长整型long.

C++ 有 short 和 unsigned 类型来更有效的存储数字。(我认为所谓有效是指更高的空间利用率。) 最好是尽量避免使用这些类型除非是空间利用的有效性对你的系统真的非常重要。

在C++中布尔型用 bool 表示,而不像在Java中用boolean.

C++ 中字符串类型用 string 表示。它与Java中的String 类型非常相似,但是,还是要逐一以下几点不同之处:

1.C++ 字符串存储ASCII 码字符,而不是标准码Unicode 字符

2.C++ 字符串是可以被修改的,而Java字符串的内容是不可修改的(immutable)。

3.取子字符串的操作在 C++ 中叫做substr,这个命令s.substr(i, n) 从字符串s中取得从位置 i 始长度为n的子字符串。

4.在C++中,你只能够将字符串与其它字符串对象相串联(concatenate),而不能够与任意的对象相串联。

5.C++中可以直接使用关系操作符 ==、 !=、 <、 <=、 >、 >= 来进行字符串比较,其中后面四个操作符是按字母顺序进行比较的。 这比Java中使用函数equals和compareTo来比较要方便很多。

2.变量和常量

在C++中,本地变量的定义看起来与Java中相同,例如:

int n = 5;

实际上这正是C++和Java的一个重要不同之处。C++编译器不对本地变量进行初始化检验,所以在C++中很容易忘记初始化一个变量,这种情况下,变量的值该变量所占内存区域中刚好当前存在随机值。这显然是很容易产生程序出错的地方。

与Java一样, C++中类可以有数据域和静态变量。不同的是,C++中变量可以在函数甚至是类的外面定义,这些所谓的全局变量可以在程序的任何函数中被访问,因而不易被很好的管理。所C++中应该尽量避免使用全局变量。

在C++中,常量可以在任何地方被定义(记得在Java中,常量必须是类的静态数据static data)。 C++ 使用关键字 const 来定义常量,而Java中是 final。例如:

const int DAYS_PER_YEAR = 365;

时间: 2024-09-30 23:47:05

Java与C++编程的不同的相关文章

编译-一个java新手在编程路上遇到的问题

问题描述 一个java新手在编程路上遇到的问题 路过的大牛瞄一眼,谢谢...大一学生一枚,java学到网络编译了,最近在实现ftp服务器,目前还没写出来,心情十分郁闷,我觉得自己要成为编程员的随机应变能力还不够,编程路上的困惑,曾经也遇过类似状况求个回复. 解决方案 没什么,大一的时候让我自己去实现一个ftp服务器,我也觉得挺困难的.所以你要上大学啊. 解决方案二: 困惑:坚持.不会:学习.前排 解决方案三: 任何知识都有一个主干,首先要了解基本的原理,然后再学习细节.如果你是自学,一定要注意这

Java网络服务器编程(NIO版)

编程|服务器|网络 从Java 1.4开始提供的NIO API常用于开发高性能网络服务器,本文演示了如何用这个API开发一个TCP Echo Server.   Java网络服务器编程 一文演示了如何使用Java的Socket API编写一个简单的TCP Echo Server.其阻塞式IO的处理方式虽然简单,但每个客户端都需要一个单独的Thread来处理,当服务器需要同时处理大量客户端时,这种做法不再可行.使用NIO API可以让一个或有限的几个Thread同时处理连接到服务器上的所有客户端.

让你不苦恼:Java的中文编程配置心得

编程|心得|中文 Java的中文编程与配置心得 Java的中文问题历史悠久,连绵不绝,至今也没有完全解决,但是上有政策下有对策,我们总是有办法搞定它的.跟Java相关的中文问题主要有两类,一类是编程的问题,涉及到I/O,内码转换等.第二类是Java运行环境的配置,涉及字体,属性配置等.我刚刚用了一天的时间解决这些问题,觉得很有必要给自己写个备忘录之类的. 我看还是从问题入手吧,这样不致于让大家打瞌睡.我想写个程序,这个程序有个基本功能就是显示文件内容,我用JTextArea来做显示的事情,程序简

请问java图形界面编程中怎样改变消息提示框中确定按钮的文本内容啊?

问题描述 请问java图形界面编程中怎样改变消息提示框中确定按钮的文本内容啊? 问题补充:恩恩,swing的!请问怎么改啊?xiaolv 写道 解决方案 JOptionPane.setDefaultLocale(Locale.CHINA);JOptionPane.showMessageDialog(null, "11", "22",JOptionPane.INFORMATION_MESSAGE);这个按钮自动集成多语言.只能通来Locale来改.想要OK就用Loca

《Java 7并发编程实战手册》第六章并发集合

由人民邮电出版社出版的<Java 7并发编程实战手册>终于出版了,译者是俞黎敏和申绍勇,该书将于近期上架.之前并发编程网组织翻译过此书,由于邮电出版社在并发网联系他们之前就找到了译者,所以没有采用并发网的译稿,但邮电出版社将于并发网展开合作,发布该书的样章(样章由并发网挑选,你也可以回帖告诉我们你想看哪一章的样章),并组织赠书活动回馈给活跃读者.活动详情请时刻关注并发网的微博和微信(微信号:ifeves),最后祝各位用餐愉快!:) 本章将介绍下列内容: 使用非阻塞式线程安全列表 使用阻塞式线程

java中网络编程关于使用ObjetInputStream传输报错的问题,求大神指点

问题描述 java中网络编程关于使用ObjetInputStream传输报错的问题,求大神指点 以下贴出来的代码为通过ObjectInputStream(OutputStream)在客户端与服务器端之间交互时传输的对象,提供的图片中一个是客户端的代码片段,一个是服务器端的代码片段. 现在问题出在当客户端输完账号密码点击确定时,客户端卡死(应该是线程阻塞).服务器端抛出异常 :java.lang.ClassNotFoundException: com.wish.data.TransferObjec

数据接收-java的socket编程问题:为什么客户端接收服务器的数据时会有空白数据项?

问题描述 java的socket编程问题:为什么客户端接收服务器的数据时会有空白数据项? 例如:03-17 07:02:00.330 1984-2007/? I/info﹕ client buff --> 0/20160316//早餐/123.0 03-17 07:02:00.340 1984-2007/? I/info﹕ insert expend_table 03-17 07:02:00.340 1984-2007/? I/info﹕ client buff --> 03-17 07:02

Java FP: Java中函数式编程的谓词函数(Predicates)第二部分

在上一篇文章中我们介绍了谓词函数.通过一个简单的只带一个返回值是true或者false的函数的接口,把函数式编程语言的优势带入到了类似Java的面向对象编程语言中.这一小节,我们将会介绍一些高级特性,方便你高效利用谓词函数. 测试 在测试代码中使用谓词的优势尤为明显.当你需要测试一个混合了数据结构与某些条件逻辑的方法时,通过使用谓词,你可以先单独测试数据结构,再测试条件逻辑. 第一步,先利用永真谓词或者永假谓词屏蔽用于判断的逻辑,将注意力集中在测试数据结构上: 1 // check with t

有关java 中gui 编程问题

问题描述 有关java 中gui 编程问题 为什么要分好几层,直接在jframe上直接添加组健不就行了么? 解决方案 java的GUI(图形用户界面)编程java---GUI编程黑马程序员_java GUI编程 解决方案二: 这是java awt的层次结构.JFrame,JDialog,JWindow与JApplet这四个组件我们统称为最上层(Top-Level)组件,因为其余的Swing组件都必须依附在此四组件之一上才能显示出来. 详解参考:http://wenku.baidu.com/lin

编译错误-java网络socket编程过程中遇到的问题

问题描述 java网络socket编程过程中遇到的问题 运行代码 import java.io.*; import java.net.*; public class InetAddressDemo { public static void main(String[] args) { Socket socket = null; InputStream is = null; OutputStream os = null; String serverIP = "127.0.0.1"; int