前言
C++ 作为 C语言的延伸,而Java 被设计成 C++ 简化的继任者,他们都有着很多共同点,如基本类型相同:int、char、float、long、double,当然也有一些不同,如Java char 是 2个字节,一个字节8位,如:0000 1111,那么2个字节就是16位,而C++里的char只有8位,也就是1个字节,这个要注意。它们还都有表示true、false的数据类型,且if ... else,while,for和switch都是相同的,为了更快的能从Java转到C++,我准备了这篇文章,希望对你也有帮助。
打印
Java
System.out.print("Hello World!"); System.out.println("Hello World!");
C++
//第一种实现 std::cout << "Hello World!"; std::cout << "Hello World!" << std::endl; //第二种,如果使用命名空间就不需要再std:: #include <iostream> using namespace std; int main() { cout << "Hello World!"; cout << "Hello World!" << endl; return 0; }
常量
Java
final int x = 2; final int y = 1;
C++
//使用 #define 预处理器。 #define X 2 #define Y 1 //使用 const 关键字。 const int X = 2; const int Y = 1;
变量
Java
int w; int z = 2; z = 3; w = 1;
C++
int w; int z = 2; z = 3; w = 1;
赋值为空
Java
String lastName; lastName = null
C++
string lastName; lastName = NULL; // 编译器报错,无法赋值,想要释放调用 lastName.clear();函数
判空
Java
if(text != null){ int length = text.length(); }
C++
string text; //C++ 字符串无需判空,返回长度0 cout << text.length() << endl;
字符拼接
Java
String name = "John"; String lastName = "Smith"; String text = "My name is: " + name + " " + lastName;
C++
string name = "John"; string lastName = "Smith"; string text = "My name is: " + name + " " + lastName;
换行字符
Java
String text = "First Line\n" + "Second Line\n" + "Third Line";
C++
string text = "First Line\nSecond Line\nThird Line";
三元运算
Java
String text = x > 5 ? "x > 5" : "x <= 5";
C++
string text = x > 5 ? "x > 5" : "x <= 5";
位操作
Java
int andResult = a & b; int orResult = a | b; int xorResult = a ^ b; int rightShift = a >> 2; int leftShift = a << 2;
C++
int andResult = a & b; int orResult = a | b; int xorResult = a ^ b; int rightShift = a >> 2; int leftShift = a << 2;
父子关系
Java
if(x instanceof Integer){ }
C++
(is_base_of<Integer, x>::value ? "true" : "false")
类型转换
Java
double a = 1.9; int b = (int) a; int d = a; //报错 String c = String.valueOf(b);
C++
double a = 1.9; int b = (int)a; int d = a; //隐士转换 string c = to_string(b); //字符串转换
Switch
Java
int a = 1; String b; switch (a) { case 0: case 1: b = "1"; break; case 2: b = "2"; break; default: b = "default"; break; }
C++
int a = 1; String b; switch (a) { case 0: case 1: b = "1"; break; case 2: b = "2"; break; default: b = "default"; break; }
For循环
Java
for (int i = 1; i < 11 ; i++) { } for (int i = 1; i < 11 ; i+=2) { } for (String item : collection) { }
C++
for (int i = 1; i < 11 ; i++) { } for (int i = 1; i < 11 ; i+=2) { } for (string &item : collection) { } //或 auto 类型也是 C++11 新标准中的,用来自动获取变量的类型 for (auto &item : collection) { }
集合
Java
final List<Integer> numbers = Arrays.asList(1, 2, 3);
C++
int numbers[5] = {1, 2, 3};
Map
Java
final Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three");
C++
map < int , string > map; map.insert(pair < int,string > (1,"One")); map.insert(pair < int,string > (1,"Two")); map.insert(pair < int,string > (1,"Three"));
简单总结下
我们回顾一下,这次对C++基本类型、位运算、类型判断、操作符,集合等做了简单的对比,其实不难发现,C++真的和Java很像,总体感觉C++书写稍复杂一些,也有比Java写起来简单的部分等,有更多的新奇等着你去发现,下期接着研究,拜。