1.下列InputStream类中哪个方法可以用于关闭流?

A.skip()

B.close()

C.mark()

D.reset()

答案:

B

解析:

inputstream的close方法用来关闭流

skip()用来跳过一些字节

mark()用来标记流

reset()复位流

2.下面语句正确的是()

A.x+1=5

B.i++=1

C.a++b=1

D.x+=1

答案:

D

解析:

选D,+=,-=,*=,/=最常见。

ABC都编译错误。

3.下面关于继承的描述正确的是?

A.在Java中只允许单一继承

B.在Java中一个类只能实现一个接口

C.在Java中一个类不能同时继承一个类和实现一个接口

D.Java的单一继承使代码不可靠

答案:

A

解析:

4.下列哪种说法是正确的?

A.实例方法可直接调用超类的实例方法

B.实例方法可直接调用超类的类方法

C.实例方法可直接调用本类的类方法

D.实例方法可直接调用其他类的实例方法

答案:

C

解析:

a.实例方法可以调用超类公有实例方法

b.实例方法可以直接调用超类的公有类方法

d.实例方法可以通过类名调用其他类的类方法

5.A派生出子类B,B派生出子类C,并且在java源代码中有如下声明:

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

解析:

一句话 向上转型是无条件的

6.java中,静态变量static在不同线程的不同实例中地址是否一样?他们储存在什么区域?()

A.地址一样,在堆栈区。

B.地址不一样,在堆栈区。

C.地址一样,在全局区。

D.地址不一样,在全局区。

答案:

C

解析:

static变量存储在方法区,线程共享,全局区是方法区的一部分,其实用排除法也可以知道 static变量不可能位于堆栈区

7.下面代码的输出结果是什么?

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

解析:

1、inti = 100/ 0; 会出现异常,会抛出异常,System.out.print(i)不会执行,

2、catch捕捉异常,继续执行System.out.print(1);

3、当执行 thrownewRuntimeException(); 又会抛出异常,这时,除了会执行finally中的代码,其他地方的代码都不会执行

8.以下代码将打印出?

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的实例

9. 在运行时,由java解释器自动引入,而不用import语句引入的包是()。

A.java.lang

B.java.system

C.java.io

D.java.util

答案:

A

解析:

ava.lang包是java语言包,是自动导入的。

java.util包是java的工具包,需要手动导入。

java.sql包,JDBC接口类,需要手动导入。

java.io;各种输入输入流,需要手动导入。

10.下面这三条语句

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.先算括号内的

11.Given:

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

解析:

这个题考查两个知识点。

1、Java中,赋值是有返回值的 ,赋什么值,就返回什么值。比如这题,x=y,返回y的值,所以括号里的值是1。

2、Java跟C的区别,C中赋值后会与0进行比较,如果大于0,就认为是true;而Java不会与0比较,而是直接把赋值后的结果放入括号。

12.在一个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信方式是不可行的()?

A.管道

B.消息队列

C.高速缓存数据库

D.套接字

答案:

A

解析:

管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

13.下列程序的运行结果

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

14.如下代码的输出结果是什么?

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

解析:

静态变量只能在类主体中定义,不能在方法中定义

15.下面有关servlet和cgi的描述,说法错误的是?

A.servlet处于服务器进程中,它通过多线程方式运行其service方法

B.CGI对每个请求都产生新的进程,服务完成后就销毁

C.servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等

D.cgi在移植性上高于servlet,几乎所有的主流服务器都直接或通过插件支持cgi

答案:

D

解析:

选择D,servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

16.下列关于构造方法的叙述中,错误的是()

A.java语言规定构造方法名与类名必须相同

B.java语言规定构造方法没有返回值,但不同void声明

C.java语言规定构造方法不可以重载

D.java语言规定构造方法只能通过new自动调用

答案:

CD

解析:

关于答案d,通过this也可以调用

17.What is Static Method in Java()

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:静态方法不能通过类名直接访问,也不需要任何对象。(×) 静态方法可以直接用类名访问。

18.下列哪种情况会调用拷贝构造函数()

A.用派生类的对象去初始化基类对象时

B.将类的一个对象赋值给该类的另一个对象时

C.函数的形参是类的对象,调用函数进行形参和实参结合时

D.函数的返回值是类的对象,函数执行返回调用时

答案:

A C D

解析:

复制构造函数被调用的三种情况

1.定义一个对象时,以本类另一个对象作为初始值,发生复制构造;

2.如果函数的形参是类的对象,调用函数时,将使用实参对象初始化形参对象,发生复制构造;

3.如果函数的返回值是类的对象,函数执行完成返回主调函数时,将使用return语句中的对象初始化一个临时无名对象,传递给主调函数,此时发生复制构造。

19.Java对象的初始化方式有( )

A.初始化块

B.构造器

C.定义变量时指定初始化值

D.其它各项都不对

答案:

A B C

解析:

对象的初始化方式:

1.new时初始化 ;

2.静态工厂 newInstance;

3.反射Class.forName();

4.clone方式;

5.反序列化;

20.截止JDK1.8版本,java并发框架支持锁包括?

A.读写锁

B.自旋锁

C.X锁

D.乐观锁

E.排他锁

答案:

A B D

解析:

1、自旋锁 ,自旋,jvm默认是10次吧,有jvm自己控制。for去争取锁

2、阻塞锁 被阻塞的线程,不会争夺锁。

3、可重入锁 多次进入改锁的域

4、读写锁

5、互斥锁 锁本身就是互斥的

6、悲观锁 不相信,这里会是安全的,必须全部上锁

7、乐观锁 相信,这里是安全的。

8、公平锁 有优先级的锁

9、非公平锁 无优先级的锁

10、偏向锁 无竞争不锁,有竞争挂起,转为轻量锁

11、对象锁 锁住对象

12、线程锁

13、锁粗化 多锁变成一个,自己处理

14、轻量级锁 CAS 实现

15、锁消除 偏向锁就是锁消除的一种

16、锁膨胀 jvm实现,锁粗化

17、信号量 使用阻塞锁 实现的一种策略

18、排它锁:X锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。

注:以上笔试题均来自网络,由笔者整理得出

推荐

大厂笔试内容集合(内有详细解析) 持续更新中....

ProcessOn是一个在线作图工具的聚合平台~

文末

欢迎关注个人微信公众号:Coder编程

欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~

新建了一个qq群:315211365,欢迎大家进群交流一起学习。谢谢了!也可以介绍给身边有需要的朋友。

文章收录至

Github: https://github.com/CoderMerlin/coder-programming

Gitee: https://gitee.com/573059382/coder-programming

欢迎关注并star~

Java基础笔试练习(三)的更多相关文章

  1. java基础解析系列(三)---HashMap

    java基础解析系列(三)---HashMap java基础解析系列 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)-- ...

  2. JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397  文章- 0  评论- 78  JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...

  3. Java基础笔试练习(九)

    1.下面所示的java代码,运行时,会产生()类型的异常 ? int Arry_a[] = new int[10]; System.out.println(Arry_a[10]); A.Arithme ...

  4. Java基础知识点(三)

    前言:准备将Java基础知识点总结成一个系列,用于平常复习并加深理解.每篇尽量做到短小精悍,便于阅读. 1.Math类中相关函数 Math.floor(x):返回不大于x的最大整数.eg:Math.f ...

  5. Java基础笔试练习(六)

    1.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数.类型或顺序各不相同,传回的值也可以不相同.这种面向对象程序的特性称为? A.隐藏 B.覆盖 C.重载 D.Java不支持此特性 ...

  6. Java基础学习(三)

    /* java中的八种基本数据类型: 整数: byte . short . int . long 小数: float double 字符: char 布尔: boolean 字符串的类型: Strin ...

  7. java基础学习总结三(jdk7新特性、变量(局部变量和成员变量)、常量以及运算符)

    一:jdk7新特性 可以表示二进制数值,以0b开头,中间可以使用下划线_分隔符.如下: @Test /** * 测试jdk新特性 */ public void testJdk7(){ int a=0b ...

  8. Java基础加强总结(三)——代理(Proxy)

    一.代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的. 动态代理技术就是用来产生一个对象的代理对 ...

  9. Java基础笔试练习(十一)

    1.下面的方法,当输入为2的时候返回值是多少? public static int getValue(int i) { int result = 0; switch (i) { case 1: res ...

随机推荐

  1. Java8 LocalDateTime的补充工具方法

    import java.time.*;import java.time.format.DateTimeFormatter;import java.time.format.DateTimeFormatt ...

  2. Spring mybatis thymeleaf 基础操作,实现数据展示,修改,删除,查询

    目录结构如图 index.html <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thyme ...

  3. SpringMVC通过注解在数据库中自动生成表

    在application-persistence.xml中的<property name="hibernate.hbm2ddl.auto" value="${hib ...

  4. 大数据学习之路之HBASE

    Hadoop之HBASE 一.HBASE简介 HBase是一个开源的.分布式的,多版本的,面向列的,半结构化的NoSql数据库,提供高性能的随机读写结构化数据的能力.它可以直接使用本地文件系统,也可以 ...

  5. Oracle语法 及 SQL题目(三)

    目录 SQL题目六 第一个问题思路(查询酒类商品的总点击量) 第二个问题思路(查询每个类别所属商品的总点击量,并按降序排列) 第三个问题思路(查询所有类别中最热门的品种(点击量最高),并按点击量降顺序 ...

  6. 007 CSS基本选择器

    复习. 一:类选择器 1.多类名选择器 使用场景:某个标签上需要多个类进行描述. 多个类之间使用空格分开. 冲突的时候,和类名在html中的先后顺序没有关系,和css中的样式的先后顺序有关系. 2.案 ...

  7. evo:评测slam参数设置

    zn@buaa:~$ evo_ape euroc m1/state_groundtruth_estimate0/data.csv pl-svo-master2/trajout.txt -angle_d ...

  8. ES6深入浅出-4 迭代器与生成器-3.生成器 & for...of

    迭代器平时用的很少.但是如果你是写框架的,你会经常用到迭代器. 生成器是专门用来做迭代器的东西 发布器是要产生一个叫做next的对象,如果你要产生这种对象.就可以使用ES6新出的语法. ES6的新语法 ...

  9. TestStandUI开发

    安装完TestStand后,在左侧工具箱中 ,选择工具箱项,浏览,选择NationInstruments.TestStand.Interop.UI.AxControls.DLL .工具箱中选中 .NE ...

  10. Python - Django - ORM 一对一表结构

    当一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁,可以把不怎么常用的字段 单独拿出来做成一张表,然后用一对一的表关联起来 这样既保证数据都完整的保存下来,又能保证检索更快 model ...