java笔试题大全带答案(经典11题)[java面试题]
1.不通过构造函数也能创建对象吗()
A. 是 (推荐学习:java面试题大汇总)
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的时候返回值是()
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代码段会产生几个对象
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.执行如下程序代码()
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中任何传递对象的场合一样,这里传递的实际上也是引用,并且引用的类型必须正确。