A.skip() B.close() C.mark() D.reset()java
答案: Bgit
解析: inputstream的close方法用来关闭流 skip()用来跳过一些字节 mark()用来标记流 reset()复位流github
A.x+1=5 B.i++=1 C.a++b=1 D.x+=1面试
答案: Dsql
解析: 选D,+=,-=,*=,/=最多见。 ABC都编译错误。数据库
A.在Java中只容许单一继承 B.在Java中一个类只能实现一个接口 C.在Java中一个类不能同时继承一个类和实现一个接口 D.Java的单一继承使代码不可靠编程
答案: A缓存
解析: 略安全
A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用本类的类方法 D.实例方法可直接调用其余类的实例方法bash
答案: C
解析: a.实例方法能够调用超类公有实例方法 b.实例方法能够直接调用超类的公有类方法 d.实例方法能够经过类名调用其余类的类方法
1.A a0=new A();
2.A a1=new B();
3.A a2=new C();
复制代码
如下哪一个说法是正确的?
A.第1行,第2行和第3行的声明都是正确的 B.第1,2,3行都能经过编译,但第2,3行运行时出错 C.第1,2行能经过编译,但第3行编译出错 D.只有第1行能经过编译
答案: A
解析: 一句话 向上转型是无条件的
A.地址同样,在堆栈区。 B.地址不同,在堆栈区。 C.地址同样,在全局区。 D.地址不同,在全局区。
答案: C
解析: static变量存储在方法区,线程共享,全局区是方法区的一部分,其实用排除法也能够知道 static变量不可能位于堆栈区
public class ZeroTest {
public static void main(String[] args) {
try{
int i = 100 / 0;
System.out.print(i);
}catch(Exception e){
System.out.print(1);
throw new RuntimeException();
}finally{
System.out.print(2);
}
System.out.print(3);
}
}
复制代码
A.3 B.123 C.1 D.12
答案: D
解析: 一、inti = 100/ 0; 会出现异常,会抛出异常,System.out.print(i)不会执行, 二、catch捕捉异常,继续执行System.out.print(1); 三、当执行 thrownewRuntimeException(); 又会抛出异常,这时,除了会执行finally中的代码,其余地方的代码都不会执行
public static void main(String args[]) {
List Listlist1 = new ArrayList();
Listlist1.add(0);
List Listlist2 = Listlist1;
System.out.println(Listlist1.get(0) instanceof Integer);
System.out.println(Listlist2.get(0) instanceof Integer);
}
复制代码
A.编译错误 B.true true C.true false D.false false
答案: B
解析: collection类型的集合(ArrayList,LinkedList)只能装入对象类型的数据,该题中装入了0,是一个基本类型,可是JDK5之后提供了自动装箱与自动拆箱,因此int类型自动装箱变为了Integer类型。编译可以正常经过。 将list1的引用赋值给了list2,那么list1和list2都将指向同一个堆内存空间。instanceof是Java中关键字,用于判断一个对象是否属于某个特定类的实例,而且返回boolean类型的返回值。显然,list1.get(0)和list2.get(0)都属于Integer的实例
A.java.lang B.java.system C.java.io D.java.util
答案: A
解析: ava.lang包是java语言包,是自动导入的。 java.util包是java的工具包,须要手动导入。 java.sql包,JDBC接口类,须要手动导入。 java.io;各类输入输入流,须要手动导入。
System.out.println(“is ”+ 100 + 5);
System.out.println(100 + 5 +“ is”);
System.out.println(“is ”+ (100 + 5));
复制代码
的输出结果分别是? ( )
A.is 1005, 1005 is, is 1005 B.is 105, 105 is, is 105 C.is 1005, 1005 is, is 105 D.is 1005, 105 is, is 105
答案: D
解析: 1."is"说明后面的内容都会被强制转换为string,因此是最后结果是拼接起来的 2.100+5先获得105,而后与is拼接 3.先算括号内的
public class IfTest{
public static void main(string[]args){
int x=3;
int y=1;
if(x=y)
System.out.println(“Not equal”);
else
System.out.println(“Equal”);
}
}
复制代码
What is the result?
A.The output is “Equal” B.The output in “Not Equal” C.An error at line 5 causes compilation to fall. D.The program executes but does not print a message.
答案: C
解析: 这个题考查两个知识点。 一、Java中,赋值是有返回值的 ,赋什么值,就返回什么值。好比这题,x=y,返回y的值,因此括号里的值是1。 二、Java跟C的区别,C中赋值后会与0进行比较,若是大于0,就认为是true;而Java不会与0比较,而是直接把赋值后的结果放入括号。
A.管道 B.消息队列 C.高速缓存数据库 D.套接字
答案: A
解析: 管道( pipe ):管道是一种半双工的通讯方式,数据只能单向流动,并且只能在具备亲缘关系的进程间使用。进程的亲缘关系一般是指父子进程关系。
public void getCustomerInfo() {
try {
// do something that may cause an Exception
} catch (java.io.FileNotFoundException ex) {
System.out.print("FileNotFoundException!");
} catch (java.io.IOException ex) {
System.out.print("IOException!");
} catch (java.lang.Exception ex) {
System.out.print("Exception!");
}
}
复制代码
A.IOException! B.IOException!Exception! C.FileNotFoundException!IOException! D.FileNotFoundException!IOException!Exception!
答案: A
解析: 题目说抛出一个异常,可是没说具体是什么异常,那么就要分状况了: 1.若是抛出一个FileNotFoundException(或其子类),那么最终结果就打印FileNotFoundException 2.若是抛出一个IOException,或者IOException的子类(不包含FileNotFoundException及其子类),那么最终结果就打印IOException 3.若是抛出一个Exception(不包含IOException及其子类),那么最终结果就打印Exception. 以上,因此3个皆有可能.可是,不论是哪种状况,只会输出其中之一。 从答案上来看,B,C,D的输出状况是不存在的。所以选A
public class Test {
public int aMethod(){
static int i = 0;
i++;
return i;
}
public static void main(String args[]){
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}
复制代码
A.0 B.1 C.2 D.编译失败
答案: D
解析: 静态变量只能在类主体中定义,不能在方法中定义
A.servlet处于服务器进程中,它经过多线程方式运行其service方法 B.CGI对每一个请求都产生新的进程,服务完成后就销毁 C.servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等 D.cgi在移植性上高于servlet,几乎全部的主流服务器都直接或经过插件支持cgi
答案: D
解析: 选择D,servlet处于服务器进程中,它经过多线程方式运行其service方法,一个实例能够服务于多个请求,而且其实例通常不会销毁,而CGI对每一个请求都产生新的进程,服务完成后就销毁,因此效率上低于servlet。
A.java语言规定构造方法名与类名必须相同 B.java语言规定构造方法没有返回值,但不一样void声明 C.java语言规定构造方法不能够重载 D.java语言规定构造方法只能经过new自动调用
答案: CD
解析: 关于答案d,经过this也能够调用
A.It is a method which belongs to the class and not to the object(instance) B.A static method can access only static data. It can not access non-static data (instance variables) C.A static method can call only other static methods and can not call a non-static method from it. D.A static method can not be accessed directly by the class name and doesn’t need any object
答案: ABC
解析:
A:静态方法是一个属于类而不属于对象(实例)的方法。(√) B:静态方法只能访问静态数据。没法访问非静态数据(实例变量)。(√) C:静态方法只能调用其余静态方法,不能从中调用非静态方法。(√) D:静态方法不能经过类名直接访问,也不须要任何对象。(×) 静态方法能够直接用类名访问。
A.用派生类的对象去初始化基类对象时 B.将类的一个对象赋值给该类的另外一个对象时 C.函数的形参是类的对象,调用函数进行形参和实参结合时 D.函数的返回值是类的对象,函数执行返回调用时
答案: A C D
解析:
复制构造函数被调用的三种状况
1.定义一个对象时,以本类另外一个对象做为初始值,发生复制构造;
2.若是函数的形参是类的对象,调用函数时,将使用实参对象初始化形参对象,发生复制构造;
3.若是函数的返回值是类的对象,函数执行完成返回主调函数时,将使用return语句中的对象初始化一个临时无名对象,传递给主调函数,此时发生复制构造。
A.初始化块 B.构造器 C.定义变量时指定初始化值 D.其它各项都不对
答案: A B C
解析:
对象的初始化方式: 1.new时初始化 ; 2.静态工厂 newInstance; 3.反射Class.forName(); 4.clone方式; 5.反序列化;
A.读写锁 B.自旋锁 C.X锁 D.乐观锁 E.排他锁
答案: A B D
解析:
一、自旋锁 ,自旋,jvm默认是10次吧,有jvm本身控制。for去争取锁 二、阻塞锁 被阻塞的线程,不会争夺锁。 三、可重入锁 屡次进入改锁的域 四、读写锁 五、互斥锁 锁自己就是互斥的 六、悲观锁 不相信,这里会是安全的,必须所有上锁 七、乐观锁 相信,这里是安全的。 八、公平锁 有优先级的锁 九、非公平锁 无优先级的锁 十、偏向锁 无竞争不锁,有竞争挂起,转为轻量锁 十一、对象锁 锁住对象 十二、线程锁 1三、锁粗化 多锁变成一个,本身处理 1四、轻量级锁 CAS 实现 1五、锁消除 偏向锁就是锁消除的一种 1六、锁膨胀 jvm实现,锁粗化 1七、信号量 使用阻塞锁 实现的一种策略 1八、排它锁:X锁,若事务T对数据对象A加上X锁,则只容许T读取和修改A,其余任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其余事务在T释放A上的锁以前不能再读取和修改A。
注:以上笔试题均来自网络,由笔者整理得出
Java笔试内容集合 欢迎关注,持续更新中....
欢迎关注我的微信公众号:Coder编程 获取最新原创技术文章和免费学习资料,更有大量精品思惟导图、面试资料、PMP备考资料等你来领,方便你随时随地学习技术知识!
文章收录至 Github: github.com/CoderMerlin… Gitee: gitee.com/573059382/c… 欢迎关注并star~
![]()