之前一直迷糊,char<== ==>int相互转化的细节
尤其是涉及到某个方法(如StringBuilder类的一个构造方法,下方有展示)的某个参数为 char 类型的时候,如果你不注意传入了一个 int 型的变量,那么就完蛋了
/**
* Constructs a string builder with no characters in it and an
* initial capacity specified by the {@code capacity} argument.
*
* @param capacity the initial capacity.
* @throws NegativeArraySizeException if the {@code capacity}
* argument is less than {@code 0}.
*/
public StringBuilder(int capacity) {
super(capacity);
}
而如果你上来就创建一个包含一个单字符 'c' 的StringBuilder对象的时候,
如果调用 StringBuilder sb = new StringBuilder('c');
那么实际上 sb中保存的什么都没有。
而参数 'c' 的作用在此处则变化为:生成的 sb 对象的初始长度为 'c' 的ASCII值
今天算是茅塞顿开
只需记住一下一点:
int a =10;
char b = (char) a;
则 b 存放的是 ASCII码为10的那个字符
=======================
char a = ‘s’;
int b = a;
则 b 存放的是 字符 ‘s’ 的ASCII 值