首先祝大家圣诞节快乐。
信工的元旦晚会还是有点意思的~~~哈哈
今天下午投了一份简历,是一家小公司,hr方面让先做一套笔试题,是一套非常基础的试题,算是试试水吧。
题目不是很难,但是有很多文字性的陷阱。
1、 下列关于修饰符混用的说法,错误的是(D)
A abstract不能与final并列修饰同一个类
B abstract类中可以有private的成员
C abstract方法必须在abstract类中
D static方法中能处理非static的属性
解析:A、abstract修饰抽象类,而抽象类本来就是要被继承后重写里面的方法的,如果加了final,final修饰的方法不能被重写。二者的作用冲突。B、private是访问权限修饰符,abstract中可以有private修饰的成员或方法,但是不能被访问,这么写意义不大。C、概念。D、static方法在类加载时先于非静态属性,比构造方法加载的都早,static方法只能处理传进来的参数。
2、Java异常处理时,哪个关键字不是异常处理所需要的(C)
A throw
B try-catch
C final
D throws
解析:final修饰的变量不可改变,final修饰的方法不能被重写,final修饰的类不能被继承。final关键字和异常处理无关。
3、下列关于构造的说法正确的是 (C)
A class中的constructor不可省略
B constructor必须与class同名,但方法不能与class同名
C constructor在一个对象被new时执行
D 一个class只能定义一个constructor
解析:构造方法可以有多个。...此题....代码写的多的话就是送分
4、接口是Java面向对象的实现机制之一,以下说法正确的是(B)
A Java支持多重继承,一个类可以实现多个接口
B Java只支持单重继承,一个类可以实现多个接口
C Java只支持单重继承,一个类只可以实现一个接口
D Java支持多重继承,但一个类只可以实现一个接口
解析:java支持单继承,多实现,接口之间可以多继承。
5、编译运行以下程序后,关于输出结果的说明正确的是 (C)
public class Demo{ public static void main(String args[ ]){ int x=4; System.out.println(“value is “+ ((x>4) ? 99.9 :9)); } }
A 输出结果为:value is 99.99
B 输出结果为:value is 9
C 输出结果为:value is 9.0
D 编译错误
解析:本题考查三目运算符:三目运算时会将数据类型自动转换为范围大的统一运算。
6、以下 Java语句中,String str = "123456789";str =str.subString(1,3); 执行后 str 中的值为 (A)
A "23"
B "123"
C "12"
D "234"
解析:对javaAPI的考查:subString方法:左闭又开[1,3)
7、在 java 中,已定义两个接口 B 和 C,要定义一个实现这两个接口的类,以下语句正确的是 (C)
A interface A extends B,C
B interface A implements B,C
C class A implements B,C
D class A implements B,implements C
解析:java基础语法:implements用于实现接口,extends用于继承
8、在 Java中,下列(C)是不合法的赋值语句
A float f=1/3;
B int i=1/3;
C float f=1*3.0;
D double f=1.0/3;
解析:1*3.0的结果是double类型,java中double类型占8个字节,float类型占4个字节,从大范围转小返回会缺失精度,需要强转。float f = (float)1*3.0
9、在 Java中,关于 HashMap 类的描述,以下说法错误的是(B)
A HashMap 使用键 /值的形式保存数据
B HashMap 能够保证其中元素的顺序
C HashMap 允许将 null 用作键
D HashMap 允许将 null 用作值
解析:HashMap底层使用键值对(key,value)来存储的,底层jdk1.7是数组+链表的数据结构,jdk1.8是数组+链表+红黑树的数据结构。HashMap的key和value都是可以为null的。HashMap底层使用hashcode()来计算元素存放的索引下标的位置,所以不能保证元素的顺序。
10、在 Java中,下列代码运行后的输出结果是(A) int x=5*3; int y=x+5/x+3; System.out.println(y) ;
11、 Java面向对象的特征有哪些 ?(多选)
封装、继承、多态
12、 下面关于变量及其范围的说法哪些是不正确的(BC)
A 实例变量是类的成员变量
B 实例变量用关键字static声明
C 在方法中定义的局部变量在该方法被执行时创建
D 局部变量在使用前必须被初始化
解析:类变量用static修饰。
对于C选项我也有困惑:局部变量在局部变量表中,局部变量表在栈帧中,而栈帧是在方法执行的时候创建的。大家可以去百度.......
13、下面中哪些方法可以在Demo的子类中使用(AC) class Demo { protected int method1 (int a, int b) { return 0; } }
A public int method1 (int a, int b) { return 0; }
B private int method1 (int a, int b) { return 0; }
C private int method1 (int a, long b) { return 0; }
D public short method1 (int a, int b) { return 0; }
解析:子类继承父类,然后重写父类的方法:
A是方法的重写;
B又重写了一次,和A重复,所以不行;
C是方法重载;
D的原因和B一样,同一方法不能重写两次。
14、在 Java中,下列代码运行后的输出结果是(B) Integer i1 = 100; Integer i2 = 100; Integer i3 = 300; Integer i4 = 300; System.out.println(i1==i2); System.out.println(i3==i4);
A false false
B true false
C true true
D false true
解析:java中有一个缓冲池的概念,里面缓存了-128~127之间的值,100在缓冲池内,所以是true,300不在缓冲池内,所以是false
判断题:
.15、 获取数组长度使用length()方法
解析:错误:length()方法计算的是字符串的长度;length获取的是数组的长度。一个有括号,一个没括号
16、Java程序里,创建的类对象用关键字new,回收无用的类对象使用关键字free
解析:错误:创建对象使用new,但是free没听说过
17、栈是一种线性结构,具有先进先出的特点
解析:错误:栈是后进先出的数据结构
18、Java中switch case 语句,其中case后紧跟的一定是常量表达式
解析:正确
19、Java中switch case 语句,其中case后紧跟的一定是常量表达式
解析:正确
开放题:
20、Object的equal()和==的区别?
21、String、StringBuffer、StringBuilder的区别
22、String、StringBuffer、StringBuilder的区别
23、JVM、JRE和JDK的关系
24、Java语言有哪些特点
25、static存在的主要意义
总结:全是一些最基础的题,如果这些都掌握不了,进大厂应该是很困难的。