java后端工程师笔试易错题

亲测笔试题

1.producLine列已经添加索引,下面哪些会使用到索引

A:select* from products where producLine LIKE  \"%abc\"

B:select* from products where producLine LIKE  \"%abc%\"

C:select* from products where producLine LIKE  \"abc%\"

D:select* from products where substr(producLine,2)=\"abc\"

答案:c

2.(a,b,c)创建联合索引,下面哪些能使用到索引

A:select * from game_order where plat_game_id=5 and plat_id=134

B:select * from game_order where plat_id=134 and plat_game_id=5 and plat_order_id=’100’

C:select * from game_order where plat_order_id=’100’

D:select * from game_order where plat_game_id=5 and plat_order_id=’100’ and plat_id=134

E:select * from game_order where plat_game_id=5 and plat_order_id=’100’

答案:B C D E

3.下列描述错误的是

A:private类成员,不能被其他类访问,包括父类和子类
B:public类成员,能被其他所有类访问
C:protect类成员,能够被父类和子类访问
D:如果不加上述三个描述词,即为默认类成员,只能被同一个包内的类访问
E:内部类的private成员不能被外部类访问

答案:C,E

4.下面哪些函数能让线程离开运行状态

A: yield()
B: wait()
C: notify()
D: notifyAll()
E: sleep(1000)
F: aLiveTread.join()
G: Thread.killThread()

答案:B,E,F

5.下面类型威final类型的为

A: HashMap
B: StringBuffer
C: String
D: Hashtable

答案:B,C

三个都属于引用(地址)不可变,但StringBuffer和Stringbuilder对象可以改变

6.有程序片段如下,下面表达式结果为false的有哪些

Float s=new Float(0.1f);
Float t=new Float(0.1f);
Double u=new Double(0.1);

A: s==t
B: s.equals(t)
C: u.equals(s)
D: t.equals(u)

答案:A,C,D

Float和Double都重写了equals方法,在比较之前都先判断类型是否和前者一致,不一致直接返回false

7.下面有关java object类默认的基本方法,说法错误的是?

A: equal(Object obj)指示某个其他对象是否与此对象“相等”
B: toString() 返回该对象的字符串表示
C: wait()导致当前线程等待,直到其他线程调用此对象的notify()方法或者notifyAll()方法
D: copy()创建并返回此对象的一个副本

答案:D

object类中没有copy方法

8.下面说法错误的是

A: 虚拟机中没有泛型,只有普通类和普通方法
B: 所有泛型类的类型参考在编译时都会被擦除
C: 创建泛型对象时,请指明类型,让编译器今早的做参数检查
D: 泛型的类型擦除机制意味着不能在运行时动态获取List中的T实际类型

答案 D

Java泛型是使用擦除来实现的,这意味着当你在使用泛型时,任何具体的类型信息都被擦除了,你唯一知道的就是你在使用一个对象。因此List和List在运行时实际上是相同的类型。这两种类型都被擦除成它们的“原生”类型,**即List。

9.关于匿名内部类叙述正确的是?

A: 匿名内部类不可以定义构造器
B: 匿名内部类不能用于形参
C: 匿名内部类可以继承一个基类,不可以实现一个接口
D: 以上说法都不正确

10.序列化Circle的对象到文件里,哪些字段会保存到文件中

class Shape{
  public String name;
}
class Circle extends Shape implements Serializable{
  private float radius;
  transient int color;
  public static String type="Circle";
}

答案:name,radius;

11.下面不是java关键字是

A: double
B: default
C: integer
D: float

答案 C

12.java字符类型采用Unicode编码,所占字节个数由具体软件硬件环境决定

A: 错误
B: 正确

答案: A

13.对Map的用法,正确的有

A: new Map().put("key","value")
B: new TreeMap().put(0,null)
C: new SortedMap().put("key","value")
D: new HashMap.put(null,null)

答案:B,D

A,C不能直接new、

14.Rest架构的主要原则,描述错误的是

A:所有的操作都有状态的
B:每个资源都有一个唯一的资源标识符
C:网络上所有事务都被抽象为资源
D:同一个资源具有多种表现形式(xml,json等)

答案: A :都是无状态连接

15.以下说法错误的是

A: 虚拟机中没有泛型,只有普通类和普通方法
B: 所有泛型类的类型参考在编译时都会被擦除
C: 创建泛型对象时,请指明类型,让编译器尽早做参数检查
D: 泛型的类型擦除机制意味着不能在运行时动态获取List中的T的实际类型

答案:D

解析: 可以通过反射获取泛型信息

16.程序运行结果为

class Foo{
  final int i;
  int j;
  public void doSomething(){
    System.out.println(++j + i);
  }
}

A:0
B:1
C:2
D:不能执行,因为编译有错

答案:D

final修饰成员变量必须直接初始化或在构造函数中初始化

final修饰局部变量必须在使用之前赋值

例如:

public class Test {
    final int a;
    public Test(int a) {
        this.a = a;
    }
    public static void main(String[] args) {
        final int g;
        g=0;
        System.out.println(g);
    }
}

17.下面说法正确的是

a = Integer.parseInt("12");
b = Integer.valueOf("12").intValue();

A:a变量,b对象
B:b变量,a对象
C:都是对象
D:都是变量

答案: D

18.串是一种特殊的线性表,其特殊性他现在

A:数据元素是一个字符
B:可以顺序存储
C:数据元素可以是多个字符
D:可以链接存储

答案:A

19.编译一个定义了5个类和18个方法的Java源代码文件,会产生几个字节码文件

A:1
B:23
C:5
D:18

答案:C

20.Java的字符类型采用的是unicode编码方案,每个unicode码占用几个比特位

A:32
B:8
C:64
D:16

21.在windows环境下,能正确启动java程序的语句是

A: java common-lang.jar;test.jar com.test.TestJar
B: java common-lang.jar:test.jar com.test.TestJar
C: java -cp common-lang.jar;test.jar com.test.TestJar
D: java -cp common-lang.jar:test.jar com.test.TestJar

答案:C java -cp 是另一种启动方式

22.java把变量声明成暂时性变量,应使用

A: transient
B: protectd
C: volatile
D: provate

答案: A

23.以下数组定义中不正确的是

A: int c[100][100]={0};
B: int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
C: int a[2][3];
D: int b[][3]={0,1,2,3};

答案: A,B,C,D

24.以下对jdbc事务描述错误的是

A: JDBC事务属于java事务的一种
B: JDBC事务属于容器事务类型
C: JDBC事务可以保证操作的完整性和一致性
D: JDBC事务是由connection发起的,并由connection控制

答案: B

Java事务三种类型:JDBC事务、JTA事务、容器事务

你可能感兴趣的:(java)