歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++轉向Java之基礎差異盤點

C++轉向Java之基礎差異盤點

日期:2017/3/1 10:12:55   编辑:Linux編程

1.public static void main(String[] args){}
main method 正常退出 return 0
返回其他值 : System.exit

2.java 中,/**/注釋不能嵌套

3.整型字節數固定,不隨平台cpu位數改變而改變
int:4 short:2 long:8 byte:1
java沒有unsigned類型

4.char類型用UTF-16編碼描述一個代碼單元
盡量不要再程序中使用char類型,除非確實需要對UTF-16代碼單元進行操作
最好將需要處理的字符串用抽象數據類型表示

5.java中false和true不能與整型進行轉換

6.C和C++ 聲明:int i = 10;
定義:extern int i;
java 不區分變量的的聲明和定義

7.java聲明一個常量:final doule CM_PER_INCH=2.54;
只能被賦值一次,之後不能改變
public static final double CM_PER_INCH = 2.54;
const 是java保留的關鍵字,但目前並沒有使用,java必須使用final定義常量

8.整數被0除拋出一個異常,浮點數被0除將會得到無窮大或NaN
15/2 = 7 15%2 = 115.0/2 = 7.5

9.java中沒有冪運算,需借助Math類的pow方法
double Math.pow(x,a);

10.強制類型轉換超出目標類型的表示范圍,采取截斷的辦法
不能再Boolean類型與任何數值類型之間進行轉換
可采取 b?1:0

11.同樣有枚舉類型 enum SizeP{SMALL, MEDIUN,LARGE}'

12.java字符串就是Unicode字符序列
String greeting = "hello";
int n = greeting.length(); // 5
char first = greeting.charAt(0);// 'H'
//得到第i個代碼點
int index = greeting.offsetByCodePoint(0, i);
int cp = greeting.codePointAt(index);

//遍歷一個字符串
int cp = sentence.codePointAt(i);
if(Character.isSupplementaryCodePoint(cp))
i += 2;
else
i++;

//提取字串
String greeting = "hell0";
String s = greeting.Substring(0,3); // s = "hel"

//字符串編輯,java中不能直接修改某個字符,而C++可以
greeting = greeting.substring(0, 3) + ("p!");
//采用先截取再拼接的方法完成字符的修改
//拼接效率不高,但不可變字符串有一個優點,編輯器將字符串共享
//StringBuilder效率比String高

13.java可以使用 + 連接連個字符串,當與非字符串的值拼接時嗎,後者被轉換成字符串
int age = 13;
String rating = "PG" + age;// "PG13"

14.檢測字符串是否相等
s.equals(t); //s和t可以是字符串常量也可以是變量
"Hello".equals(greeting);
"Hello".equalsIgnoreCase("hello");//不區分大小寫
不要使用 == 號檢測兩個字符串是否相等,只是判斷兩個字符串是否放在同一位置
虛擬機只將字符串常量共享,+或者substring等操作的結果不共享
C++的string類重載了==運算符,而java沒有采用這種方式

Copyright © Linux教程網 All Rights Reserved