From Java to C++ 第一篇

简介: From Java to C++ 第一篇

前言


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写起来简单的部分等,有更多的新奇等着你去发现,下期接着研究,拜。


目录
相关文章
|
1月前
|
存储 Java 编译器
java和c++的主要区别、各自的优缺点分析、java跨平台的原理的深度解析
java和c++的主要区别、各自的优缺点分析、java跨平台的原理的深度解析
65 0
|
5天前
|
算法 Java C语言
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
|
22天前
|
算法 IDE Java
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
39 0
|
22天前
|
Java API 开发工具
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(三)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
30 0
|
22天前
|
Java 数据处理 数据库
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(二)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
33 0
|
22天前
|
存储 算法 Java
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(一)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
33 0
|
1月前
|
Java 程序员 C++
【Java】Java与C++:比较与对比
【Java】Java与C++:比较与对比
20 0
|
2月前
|
Java 数据安全/隐私保护 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-193 Password Suspects(C++&Java)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-193 Password Suspects(C++&Java)
18 1
|
9月前
|
安全 Java 编译器
【JAVA】JAVA与C++的区别与联系
【JAVA】JAVA与C++的区别与联系
92 0
|
安全 Java 程序员
Java和C++的区别
Java和C++的区别
95 0