搞定~下一个任务!java
public class Test{json
static int cnt = 6; static{ cnt += 9; }
public static void main(String[] args){数组
System.out.println(“cnt =” + cnt);
}
static{函数
cnt /=3; };
}
cnt的值是
正确答案: Acode
cnt=5对象
cnt=2继承
cnt=3接口
cnt=6资源
初始化顺序: 1.先父类,后子类 2.先属性,后构造函数 3.先静态,后非静态 4.静态初始化块,静态变量这两个是属于同一级别的,是按代码写得顺序执行 5.同一类型(非数据类型,指以上),按代码前后顺序
看了前面的解答,我想更正一下其中几位同窗的解答。 如楼上有的同窗说的,静态初始化块,静态变量这两个是属于同一级别的,是按代码写得顺序执行的! 而不是先执行静态变量后执行静态初始化块!这是错的。我举个例子: public class Test{ static{ cnt = 6; } static int cnt = 100; public static void main(String[] args){ System.out.println("cnt = " + cnt); //最后输出是50,若是按照错误说法就应该是3 //按顺序执行就是cnt=6--->cnt=100---->cnt = 100/2 = 50. } static{ cnt /= 2; } }
public class IfTest{ public static void main(string[]args){ int x=3; int y=1; if(x=y) System.out.println(“Not equal”); else System.out.println(“Equal”); } }
What is the result?
正确答案: C编译器
The output is “Equal”
The output in “Not Equal”
An error at line 5 causes compilation to fall.
The program executes but does not print a message.
我来解析下: 其实这个是因为java和C语言的不一样处理机制致使的: C语言中 当if语句中的条件为赋值语句时,其实是将赋值后的结果与0进行比较【左值】 if(1) 因为1>0 因此认为是true java语言中,虽然也用了左值,可是再也不与0比较,而是直接将0放入if()中 可是int类型,不能转换为boolean,因此会报错:“ Type mismatch: cannot convert from int to boolean ”
下面哪几个语句正确的声明一个整型的二维数组()
正确答案: C D
int a[][]=new int[][]
int b10=new int[][]
int c[][]=new int10
int []d[]=new int10
二维数组的定义方式: 1. int [][] array = new int[n][m]; 2. int [][] array={{1,2,3,4},{1,2,3,4},{1,2,3,4}}; 方式一: 定义二维数组能够指定不定义m,可是必须定义n.
有关finally语句块说法正确的是( )
正确答案: A B C D
无论 try 语句块正常结束仍是异常结束,finally语句块都是要被执行的
在try语句块或catch语句块中执行到System.exit(0)直接退出程序
finally块中的return语句会覆盖try块中的return返回
finally 语句块在 catch语句块中的return语句以前执行
结论: 一、无论有木有出现异常,finally块中代码都会执行; 二、当try和catch中有return时,finally仍然会执行; 三、finally是在return后面的表达式运算后执行的(此时并无返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是以前保存的值),因此函数返回值是在finally执行前肯定的; 四、finally中最好不要包含return,不然程序会提早退出,返回值不是try或catch中保存的返回值。 举例: 状况1:try{} catch(){}finally{} return; 显然程序按顺序执行。 状况2:try{ return; }catch(){} finally{} return; 程序执行try块中return以前(包括return语句中的表达式运算)代码; 再执行finally块,最后执行try中return; finally块以后的语句return,由于程序在try中已经return因此再也不执行。 状况3:try{ } catch(){return;} finally{} return; 程序先执行try,若是遇到异常执行catch块, 有异常:则执行catch中return以前(包括return语句中的表达式运算)代码,再执行finally语句中所有代码, 最后执行catch块中return. finally以后也就是4处的代码再也不执行。 无异常:执行完try再finally再return. 状况4:try{ return; }catch(){} finally{return;} 程序执行try块中return以前(包括return语句中的表达式运算)代码; 再执行finally块,由于finally块中有return因此提早退出。 状况5:try{} catch(){return;}finally{return;} 程序执行catch块中return以前(包括return语句中的表达式运算)代码; 再执行finally块,由于finally块中有return因此提早退出。 状况6:try{ return;}catch(){return;} finally{return;} 程序执行try块中return以前(包括return语句中的表达式运算)代码; 有异常:执行catch块中return以前(包括return语句中的表达式运算)代码; 则再执行finally块,由于finally块中有return因此提早退出。 无异常:则再执行finally块,由于finally块中有return因此提早退出。 最终结论:任何执行try 或者catch中的return语句以前,都会先执行finally语句,若是finally存在的话。 若是finally中有return语句,那么程序就return了,因此finally中的return是必定会被return的, 编译器把finally中的return实现为一个warning。
如下 json 格式数据,错误的是
正确答案: A C
{company:4399}
{"company":{"name":[4399,4399,4399]}}
{[4399,4399,4399]}
{"company":[4399,4399,4399]}
{"company":{"name":4399}}
下列说法错误的有( )
正确答案: A B C D
Java面向对象语言允许单独的过程与函数存在
Java面向对象语言允许单独的方法存在
Java语言中的非静态方法属于类中的成员(member)
Java语言中的方法一定隶属于某一类(对象),调用方法与过程或函数相同
java不容许单独的方法,过程或函数存在,须要隶属于某一类中。——AB错 java语言中的方法属于对象的成员,而不是类的成员。不过,其中静态方法属于类的成员。——C错 D也错,方法属于接口
下列有关JAVA异常处理的叙述中正确的是()
正确答案: A B D
finally是为确保一段代码不论是否捕获异常都会被执行的一段代码
throws是用来声明一个成员方法可能抛出的各类非运行异常状况
final用于能够声明属性和方法,分别表示属性的不可变及方法的不可继承
throw是用来明确地抛出一个异常状况
throws用于在方法上声明该方法不须要处理的异常类型,用在方法上后面跟异常类名 能够是多个异常类 throw用于抛出具体异常类的对象,用在方法内 后面跟异常对象只能是一个异常类型实体. try块必须和catch块或和finally同在,不能单独存在,两者必须出现一个. finally块总会执行,不管是否有错误出现.可是若try语句块或会执行的catch语句块使用了JVM系统退出语句,finally块就不会被执行了. 通常咱们把关闭资源的代码放在finally里面 保证资源老是能关闭 而后再看这一题 A确定对了,C根本就跟异常处理没有关系,因此不选。就算有关系也错了 final用于声明属性、方法、类。分别表示属性不可更改、方法不能被覆盖、类不能被继承。 因此C选项说方法不能被继承错误,是不能覆盖 B、D咬文嚼字说是由于 B. throws是用来声明一个成员方法可能抛出的各类异常状况. “状况”错了应该改为对象 我表示不能接受,D也同样。若是没有更好的理由 我以为题目答案错了,就是ABD