符号类型:
1.在C和C++中,int表示的整型与目标机器相关。在16位cpu上整型占2字节,在32位上占4字节;而在intel pentium的cpu上,
C和C++整型依赖于具体的OS,对于DOS和Windows3.1,整型占2字节,当Windows使用32位模式时,整型占4字节。java
没有无符号类型。
2.float类型的数值有一个后缀F。没有的浮点数值默认为double类型(也可以在后面添加后缀D以示区分).
3.char采用UTF-16编码,占2字节,建议不要在程序中使用char类型
代码点:
与一个编码表中的某个字符对应的代码值。在Unicode标准中,代码点采用16进制表示,并加上前缀U+,如U+0041表示字母A的代码点。
Unicode的代码点分成17个代码级别.基本的多语言级别(BMP):U+0000~U+FFFF(包括经典的Unicode代码),每个字符用16位表示,称为
代码单元;剩余的16个附加级别:U+10000~U+10FFFF(包括一些辅助字符),采用一对代码单元编码(第一个代码单元:U+D800~U+DBFF,
第二个代码单元:U+DC00~U+DFFF).例如:对于整数集合的数学符号,它的代码点是U+1D56B,并且是用两个代码单元U+D835和U+DD6B
编码的。
类型转换:
下图为合法的类型转换,3个虚箭头表示可能有精度损失的转换。
1.两个数值进行二元操作时,有一个是double、float、long类型时,另外一个自动提升为对应类型;其他的类型转换都提升为int型;
2.如果想对浮点数进行舍入运算,以便得到最接近的整数,就应使用Math.round方法:
double x=9.99;
int nx=(int)Math.round(x);
字符串:不可变字符串String的含义:不能修改字符串中的某个字符,但可以进行拼接等操作(其实也是调用StringBuild来操作).
优点:编译器可以让字符串共享。
注:java字符串不是C字符型数组,而更像char *指针。
==与equals方法的区别:
==只能确定两个字符串是否放在同一个位置(地址);而equals检测两字符串的值(即内容)是否相等。只有字符串常量是共享的,
可以用==;而+或substring操作的结果不是共享的。
在java中不允许嵌套定义一个变量。
多维数组:数组的数组(不规则)
可变参:
printf方法定义:
public class PrintStream
{
public PrintStream printf(String fmt,Object... args){return format(fmt,args);}
}
实际上,printf方法接收两个参数:一个是格式字符串,另一个是Object[]数组(等同于Object...),其中保存着所有的参数(整型
数组或基本类型自动打包转换成对象)。然后扫描fmt字符串,并将第i个格式说明符与args[i]的值匹配起来。