C++转向Java之基础差异盘点


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没有采用这种方式

  • 1
  • 2
  • 下一页

相关内容