java笔试题大全带答案(经典11题)[java面试题]

内容摘要
1.不通过构造函数也能创建对象吗()A. 是 (推荐学习:java面试题大汇总)B. 否分析:答案:AJava创建对象的几种方式(重要):(1) 用new语句创建对象,这是最常见的创建对象
文章正文

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中任何传递对象的场合一样,这里传递的实际上也是引用,并且引用的类型必须正确。

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!