java笔试题大全带答案(经典11题) 小灰灰 2020-06-04 13:13 1815阅读 5赞 # java笔试题大全带答案(经典11题) **1.不通过构造函数也能创建对象吗()** A. 是 B. 否 **分析:答案:A** Java创建对象的几种方式(重要): (1) 用new语句创建对象,这是最常见的创建对象的方法。 (2) 运用反射手段,调用java.lang.Class或者 java.lang.reflect.Constructor类的newInstance()实例方法。 (3) 调用对象的clone()方法 (4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。 (1)和(2)都会明确的显式的调用构造函数 ;(3)是在内存上对已有对象的影印,所以不会调用构造函数 ;(4)是从文件中还原类的对象,也不会调用构造函数。 (1)和(2)都会明确的显式的调用构造函数 ;(3)是在内存上对已有对象的影印,所以不会调用构造函数 ;(4)是从文件中还原类的对象,也不会调用构造函数。 **2.下面哪些是对称加密算法()** A. DES B. MD5 C. DSA D. RSA **分析:答案:A** 分析:常用的对称加密算法有:DES、3DES、RC2、RC4、AES 常用的非对称加密算法有:RSA、DSA、ECC 使用单向散列函数的加密算法:MD5、SHA **3.下面的代码段,当输入为2的时候返回值是()** ```java public static int get Value(int i){ int result=0; switch(i){ case 1: result=result +i case 2: result=result+i*2 case 3: result=result+i*3 } return result; } ``` A. 0 B. 2 C. 4 D. 10 **答案:C** 分析:result = 0 + 2 * 2; **4.以下Java代码段会产生几个对象** ```java public void test(){ String a="a"; String b="b"; String c="c"; c=a+""+b+""+c; System.out.print(c); } ``` 分析:答案: 一个对象,因为编译期进行了优化,3个字符串常量直接折叠为一个 **5.Math.round(-11.2)的运行结果是。** 答案: -11 分析:小数点后第一位=5 正数:Math.round(11.5)=12 负数:Math.round(-11.5)=-11 小数点后第一位<5 正数:Math.round(11.46)=11 负数:Math.round(-11.46)=-11 小数点后第一位>5 正数:Math.round(11.68)=12 负数:Math.round(-11.68)=-12 根据上面例子的运行结果,我们还可以按照如下方式总结,或许更加容易记忆: 参数的小数点后第一位<5,运算结果为参数整数部分。 参数的小数点后第一位>5,运算结果为参数整数部分绝对值+1,符号(即正负)不变。 参数的小数点后第一位=5,正数运算结果为整数部分+1,负数运算结果为整数部分。 终结:大于五全部加,等于五正数加,小于五全不加。 **6.Java中int.long占用的字节数分别是** **分析:** 1:“字节”是byte,“位”是bit ; 2: 1 byte = 8 bit ; char 在Java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。 short 2个字节 int 4个字节 long 8个字节 System.out.println(‘a’+1);的结果是 分析:'a'是char型,1 是int行,int与char相加,char会被强转为int行,char的ASCII码对应的值是97,所以加一起打印98 **7.下列语句那一个正确()** A. java程序经编译后会产生machine code B. java程序经编译后会产生 byte code C. java程序经编译后会产生DLL D. 以上都不正确 **答案:B** 分析:java程序编译后会生成字节码文件,就是.class文件 **8.下列说法正确的有()** A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D. 一个class只能定义一个constructor **答案:C** **9.执行如下程序代码()** ```java a=0;c=0; do{ ——c; a=a-1; }while(a>0); ``` 后,c的值是() A. 0 B. 1 C. -1 D. 死循环 **答案:C** do{...}while(...);语句至少执行一次 **10.下列哪一种叙述是正确的()** A. abstract修饰符可修饰字段、方法和类 B. 抽象方法的body部分必须用一对大括号{}包住 C. 声明抽象方法,大括号可有可无 D. 声明抽象方法不可写出大括号 **答案:D** 分析: abstract不能修饰字段。既然是抽象方法,当然是没有实现的方法,根本就没有body部分。 **11.下列语句正确的是()** A. 形式参数可被视为local variable B. 形式参数可被字段修饰符修饰 C. 形式参数为方法被调用时,真正被传递的参数 D. 形式参数不可以是对象 **答案A:** 分析: A:形式参数可被视为local variable。形参和局部变量一样都不能离开方法。都只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。 B:对于形式参数只能用final修饰符,其它任何修饰符都会引起编译器错误。但是用这个修饰符也有一定的限制,就是在方法中不能对参数做任何修改。 不过一般情况下,一个方法的形参不用final修饰。只有在特殊情况下,那就是:方法内部类。 一个方法内的内部类如果使用了这个方法的参数或者局部变量的话,这个参数或局部变量应该是final。 C:形参的值在调用时根据调用者更改,实参则用自身的值更改形参的值(指针、引用皆在此列),也就是说真正被传递的是实参。 D:方法的参数列表指定要传递给方法什么样的信息,采用的都是对象的形式。因此,在参数列表中必须指定每个所传递对象的类型及名字。想JAVA中任何传递对象的场合一样,这里传递的实际上也是引用,并且引用的类型必须正确。
还没有评论,来说两句吧...