关于char类型,Java采用16位的Unicode字符集,char是16位,而16位二进制最大值等于4位16进制最大值,于是,第一个代码级别(基本的多语言级别)的代码点是从U+0000到U+FFFF(在Unicode标准中,代码点采用十六进制书写,并加上前缀U+,例如U+0041就是字母A的代码点,其十进制值是我们熟悉的65)。——以上内容参考自《JAVA2核心技术(卷I:基础知识)》
书上有一段代码:
public
class
ListCharacters
{
public static void main(String[] args) {
for(char c = 0; c < 128; c++)
if(Character.isLowerCase(c))
System.out.println("value: " + (int)c + " character: " + c);
}
}
public static void main(String[] args) {
for(char c = 0; c < 128; c++)
if(Character.isLowerCase(c))
System.out.println("value: " + (int)c + " character: " + c);
}
}
当然书上的目的仅仅用来示例for循环的,我开始的时候却诧异于char类型居然可以像数字一样做加减法,是的,的确可以,char类型实际上也是数字(准确的说是代码点),书上第56页明确的有这样一段话:“如果对基本数据类型执行算术运算或按位运算,大家会发现,只要类型比int小(即char,byte或short),那么在运算之前,这些值会自动转换成int。”
并且,我在试验类似代码的时候发现:println(int x)方法打印出来的数字总是十进制值,即使变量x开始被设置成十六进制值。
return/break/continue:
return:退出并返回值;
break:强行退出循环;
continue:停止当前迭代,退回循环起始处,进行下一次迭代。
对于break和continue两个关键字可添加标签,如以下代码:
label1:
outer - iteration {
inner-iteration{
//…
break; // (1)
//…
continue; // (2)
//…
continue label1; // (3)
//…
break label1; // (4)
}
}
outer - iteration {
inner-iteration{
//…
break; // (1)
//…
continue; // (2)
//…
continue label1; // (3)
//…
break label1; // (4)
}
}
switch语句:
switch
(integral
-
selector)
{
case integral-value1: statement; break;
case integral-value2: statement; break;
case integral-value3: statement; break;
default: statement;
}
case integral-value1: statement; break;
case integral-value2: statement; break;
case integral-value3: statement; break;
default: statement;
}