2112Java班笔试题01

2112Java班笔试题01,第1张

2112Java班笔试题01 一 简答题(5分/每题,共50分)

1 列举全部的java基本数据类型

byte short int long

float double

char boolean

2 请简述重载与重写的区别

重载:

  1. 发生在同一个类中
  2. 方法名相同
  3. 参数列表不同(个数,数据类型,顺序),注意:参数列表不同跟变量名称没关系
  4. 返回值的类型是否改变,跟方法是否重载没关系,不能作为重载的依据

重写:

  1. 重写发生在子父类当中
  2. 方法名、参数列表、返回值类型均相同
  3. 重写的方法,方法体不同或者访问控制修饰符不同
  4. 子类方法的访问权限不能缩小
  5. 静态方法(static)不能进行重写

3 面向对象三要素分别是什么

封装 继承 多态

4 简述String、StringBuffer和StringBuilder的区别

  1. 修改String对象的值,内存地址会发生改变;
  2. StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的对象,即内存地址不变;
  3. StringBuffer是线程安全的,StringBuilder是线程不安全的;
  4. StringBuilder的执行速度比StringBuffer快

5 简述集合Set与List的区别

Set接口的实现类存储的数据是无序的,元素不重复的

List接口的实现类存储的数据是有序的,元素可重复的;

6 简述ArrayList和linkedList的区别

  1. ArrayList是实现了基于动态数组的数据结构,在未声明长度的情况下,默认长度是10,数据填满会自动扩充原长度的50%。
  2. linkedList基于链表的数据结构。 
  3. 对于随机访问get和set(即查找元素),ArrayList速度优于linkedList,因为linkedList要移动指针。 
  4. 对于新增和删除 *** 作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

7 Map中存储的元素是什么

k-v键值对

8 简述final关键字的用法

  1. final修饰的类不能够被继承;
  2. 修饰的方法不能被重写;
  3. 修饰的变量为常量,常量名称必须都为大写,常量的值不可修改,且声明常量的同时要给常量赋值。

9 简述static关键字的用法

  1. static声明的资源只能被初始化一次且在整个程序编译通过之后,开始运行之前完成初始化
  2. 修饰变量,称为静态变量,局部变量(如方法中的变量)不能被static 修饰,因为static就有全局的意思;
  3. 修饰方法,称为静态方法,静态方法只能调用其他静态资源,不能调用非静态变量,不能应用this和super,因为静态资源的加载先于实例化;
  4. 被static修饰的变量和方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被该类的所有实例共享静态资源可以直接通过类名调用
  5. 修饰内部类(静态类),外部类不需要实例化,可以直接通过外部类名调用

10 请写出Java的相等性规则

==比较

  1. ==比较基本数据类型,判断的是值是否相等(基本数据类型只能用“==”比较)
  2. ==比较引用类型,判断的是内存地址是否相等

equals()方法

  1. 默认的equals方法与==一样,比较的是内存地址
  2. String类的equals方法比较的是值是否相等
二 选择题(2分/每题,共20分)

1 下面代码执行的正确结果是

public static void main(String[] args) {

StringBuffer a = new StringBuffer("A");

StringBuffer b = new StringBuffer("B");

up(a, b);

System.out.println(a+","+b);

}

static void up(StringBuffer s1, StringBuffer s2) {

s1.append("C");

s2 = s1;

}

A C,C    B AC,AC

C AC,B   D A,B

2 下面代码执行的正确结果是

public static void main(String[] args) {

int i = 0;

for (foo('A');foo('B')&&i<2;foo('C')) {

i++;

foo('D');

System.out.print(" ");

}

}

static boolean foo(char c) {

System.out.print(c);

return true;

}

A ABD CBD CB    B ABCD D

C ABD CD C      D D CD C

3 下面代码执行的正确结果是

public class Run {

static int a = 1;

static { a+=1; }

public static void main(String[] args) {

System.out.println(a);

}

static { a/=3; }

}

A 0  B 1

C 2  D 3

4  this和super正确的是()

A、都可以用在main()方法中        

B、都是指一个内存地址

C、super和this不能同时使用          

D、意义相同

5 下面不属于类的构造方法具备的特点是( )

A.没有返回值

B.用户可以通过new自动调用。

C.构造方法名必须和类名相同

D.可以直接通过类名调用

6 下面命名不合法的是

A _int B $male C 2much D 以上均正确

7 下列选项中错误的是

A short a=1; a=a+1; B short a=1; a+=1;

C int i=1; i=i+1; D int i=1; i+=1;

8 下列选项中字节数最大的基本数据类型是

A char B boolean C float D Long //long的封装类

9 ()表达式不可以作为循环条件

A  i++;  B  i>5;

C  bEqual = str.equals("q");  D  count = = i;

10 在Java中下面代码是()条语句

   int i;i=123;

  int j=0,k=0;

  System.out.println(i+";"+";"+j+""+k);

A、 3  B、 4

C、 5  D、 6

三 填空题(3分/每题,共30分)

1 下面代码执行的正确结果是

int i = 1;

System.out.print("2"+i+2);212

System.out.print(i+2+"b");3b

2 下面代码执行的正确结果是

int a = 1;

int b = 2;

String c = "a";

System.out.println(a+b+c);3a

System.out.println(c+b+a);a21

3 下面代码执行的正确结果是A2B2A1A3B1B3

class A {

{ System.out.print("A1");}//代码块

static{System.out.print("A2");}

public A(){System.out.print("A3");}

}

class B extends A{

{ System.out.print("B1");}

static{System.out.print("B2");}

public B(){System.out.print("B3");}

public static void main(String[] args) {

B b=new B();

}

}

4 下面代码的运行结果是132

public class Run {

static int v=1;

static {

v=5;

System.out.print(1);

}

public Run() {

System.out.print(2);

}

public static void main(String[] args) {

System.out.print(3);

new Run();

}

}

5 下列代码运行的正确结果是 01235

for (int i = 0; i < 10; i++) {

if (i == 4) continue;

if (i == 6) break;

System.out.print(i);

}

6 下面代码的运行结果是什么

int a = 12;

int b = a++;

System.out.println(b); 12

System.out.println(++a); 14

7 下列代码正确的是 B

A int[] arr = {1,2,1,1,22,};

B String[] arr = new String[5];

C int arr[] = [1,2,3];

D int [] arr = new int [3]{1,2,3};

8 下列代码执行的结果分别是

String a = "abc";

String b = new String("abc");

String c = "ab" + "c";

boolean t1 = (a == b); false

boolean t2 = (a == c); true

boolean t3 = (b == c); false

boolean t4 = (b.equals(c)); true

9 下列代码执行的结果是

2

1

public static int run(){

try {

return 1;

} catch (NullPointerException e) { 

e.printStackTrace();

System.out.println("3");

} finally { 

System.out.println("2");

}

}

public static void main(String[] args){

System.out.println(run());

}

10 下面代码的执行结果是y=3

int x=1, y=2, z=3;

y += z--/++x;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5692422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存