1.switch 语句中的变量类型
可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
2.找出非法表达式
- a!= 4||b==1
- ’a’ % 3
- ’a’ = 1/3(错误)
- ’A’ + 32
‘a’可被视为ASCII码为97的常数,常数不能被赋值
3.数组复制
int[] a1 = {1,3,5,7};
int[] a2 = a1.clone();
System.out.println("clone方法");
System.out.println(Arrays.toString(a2));
System.out.println("--------------");
int[] a3 =new int[10];
System.arraycopy(a1, 0, a3, 3, a1.length);
System.out.println("System.arraycopy方法");
System.out.println(Arrays.toString(a3));
System.out.println("--------------");
int[] a4 =Arrays.copyOf(a1, a1.length);
System.out.println("Arrays.copyOf方法");
System.out.println(Arrays.toString(a4));
System.out.println("--------------");
int[] a5 = Arrays.copyOfRange(a1,0, a1.length);
System.out.println("Arrays.copyOfRange方法");
System.out.println(Arrays.toString(a5));
System.out.println("--------------");
int[] a6 =new int[a1.length];
for (int i=0;i<=a1.length-1;i++){
a6[i]=a1[i];
}
System.out.println("for循环");
System.out.println(Arrays.toString(a6));
输出结果
clone方法
[1, 3, 5, 7]
--------------
System.arraycopy方法
[0, 0, 0, 1, 3, 5, 7, 0, 0, 0]
--------------
Arrays.copyOf方法
[1, 3, 5, 7]
--------------
Arrays.copyOfRange方法
[1, 3, 5, 7]
--------------
for循环
[1, 3, 5, 7]
4.try-catch-finally 规则( 异常处理语句的语法规则 )
- 必须在 try 之后添加 catch 或 finally 块。try 块后可同时接 catch 和 finally 块,但至少有一个块。
- 必须遵循块顺序:若代码同时使用 catch 和 finally 块,则必须将 catch 块放在 try 块之后。
- catch 块与相应的异常类的类型相关。
- 一个 try 块可能有多个 catch 块。若如此,则执行第一个匹配块。即Java虚拟机会把实际抛出的异常对象依次和各个catch代码块声明的异常类型匹配,如果异常对象为某个异常类型或 其子类的实例,就执行这个catch代码块,不会再执行其他的 catch代码块
- 可嵌套 try-catch-finally 结构。
- 在 try-catch-finally 结构中,可重新抛出异常。
- 除了下列情况,总将执行 finally 做为结束:JVM 过早终止 (调用 System.exit(int)) ;在 finally 块中抛出一个未处理的异常;计算机断电、失火、或遭遇病毒攻击。
由此可以看出,catch只会匹配一个,因为只要匹配了一个,虚拟机就会使整个语句退出
5.Java语言性特点
- Java致力于检查程序在编译和运行时的错误
- Java能运行虚拟机实现跨平台
- Java自己操纵内存减少了内存出错的可能性
- Java还实现了真数组,避免了覆盖数据的可能