java常见面试选择题解析

1. java中,由java编译器自动导入,而无需在程序中用import导入的包是(B

A. java.applet

B. java.lang

C. java.util

D. java.awt

2. 下列方法中可以用来创建一个新线程的是(AD)

A.实现java.lang.Runnable接口并重写run()方法

B.实现java.lang.Runnable接口并重写start()方法

C.实现java.lang.Thread类并实现start()方法

D.继承java.lang.Thread类并重写run()方法

解析:Java中创建线程主要有三种方式:

一、继承Thread类创建线程类

1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。

2)创建Thread子类的实例,即创建了线程对象。

3)调用线程对象的start()方法来启动该线程。

二、通过Runnable接口创建线程类

1)定义runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。

2)创建 Runnable实现类的实例,并依此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。

3)调用线程对象的start()方法来启动该线程。

三、通过Callable和Future创建线程

1)创建Callable接口的实现类,并实现call()方法,该call()方法将作为线程执行体,并且有返回值。

2)创建Callable实现类的实例,使用FutureTask类来包装Callable对象,该FutureTask对象封装了该Callable对象的call()方法的返回值。

3)使用FutureTask对象作为Thread对象的target创建并启动新线程。

4)调用FutureTask对象的get()方法来获得子线程执行结束后的返回值

 

3.下列代码中,讲引起一个编译错误的行是(D

1 public class Test{

2 int m,n;

3 public Test(){}

4 public Test(int a){m=a;}

5 public static void main(String args[]){

6 Test t1,t2;

7 int j,k;

8 j=0;k=0;

9 t1=new Test();

10 t2=new Test(j,k);

11 }

12}

A.第三行

B.第五行

C.第六行

D.第十行

4.switch(){}结构中,括号中可使用的数据类型不能是(AD)。

A.long

B.int

C.short

D.float

5.Socket通信使用的底层协议是B

A.UDP协议

B.TCP/IP协议

C.FTP协议

D.TELNET协议

 

6.下列叙述中,正确的是(D

A.java语言的标识符是区分小写的

B.源文件名与public类名可以不相同

C.源文件名其扩展为.jar

D.源文件中public类的数目不限

解析:只能有一个main方法

7.下列属于合法的java标识符的是(A

A._cat

B.5books

C.+static

D.-3.14159

8.下面代码运行的结果是B

Public class Demo{

Public int add(int a,int b){

Try{

Return a+b;

}catch(Exception e){

System.out.println(“Catch 语句块”);

}finally{

System.out.println(“finally 语句块”);}

}

Return 0;

}

Public static void main(String[] args){

Demo demo = new Demo();

System.out.println(“和是+demo.add(9,34));

}

A. 编译异常

B. Finally语句块和是43

C. 和是43finally语句块

D. Catch语句块和是43

9.根据下面的代码

String s = null;

会抛出NullPPointerException 异常的有C)。

A. If((s!=null)&(s.length()>0))

B. if((s!=null)&&(s.length()>0))

C. if((s==null|(s.length()==0))

D. if((s==null)||(s.length()==0))

10.java中开发jdbc应用程序时,使用DriverManager类的getConnection()方法建立与数据源的链接语句为:

Connection con = DriverManager.getConnectionjdbcodbcnews”);

URL链接中的news”表示的是(C

A. 数据库中表的名称

B. 数据库服务器的机器名

C. 数据源的名称

D. 用户名

11.执行如下代码

a=0;c=0;

do{

--c;a=a-1;

}while(a>0);,c的值是C

A.0

B.1

C.-1

D.死循环

解析:a - -为先参加程序运算在-1;- - a为先减1后参加运算

12.分析下面的代码,哪些叙述是正确的?C

Public class Person{

Int arr[] = new int[10];

Public static void main(String a[]){

System.out.println(arr[1]);

}

}

A. 编译时出错

B. 编译时正确而运行时出错

C. 输出0

D. 输出null

13.下面哪个选项对数组的声明、创建和初始化是合法的? D

A.int[] myList = {“1”,”2”,”3”};

B.int[] myList = {5,8,2};

C.int myList[][] = {4,9,7,0};

D.int myList[] = {4,3,7};

E.int[] myList={1,3,5};

F.int myList[]={4;5;6};

14.动态构造字符串数据更适合B),数值不可改变的字符串更适合(A

A.String

B.StringBuffer

C.char

15.以下继承于Collection接口的有哪些B.C

 

A.Map

B.List

C.Set

 

16.Iterator是接口吗? A

A.

B.不是

解析:Iterator接口也是Java集合框架的成员,但它与Collection系列、Map系列的集合不一样:Collection系列集合、Map系列集合主要用于盛装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器。

17.以下哪些java容器是线程安全的(AD),哪些是天然支持并发的(AD

A.Vector

B.ArrayList

C.HashSet

D.ConcurrentHashMap

E.EnumSet

线程安全的容器:

同步容器类:使用了synchronized 1.Vector 2.HashTable

并发容器:3.ConcurrentHashMap:分段 4.CopyOnWriteArrayList:写时复制 5.CopyOnWriteArraySet:写时复制

 

18.Itertor有哪些方法?(A,C,D

A.next

B.equals

C.remove

D.hasNext

19.以下代码是那种设计模式C

Public class A{

Private static A instance = null;

Public static A getInstance(){

If(instance==null)

Instance = new A();

Return instance;}

}

A. 工厂模式

B. 适配器模式

C. 单例模式

20.运行B类,程序会输出顺序是?(ADBC

Public class A{

Static{

System.out.print(“1”);

}

Public A(){

System.out.println(“2”);

}

}

Public class B extends A{

Static{

System.out.print(“4”);

}

Public B(){

System.out.print(“3”);

}

Public static void main(String[] args){

New B();

}

}

A.1 B.2 C.3 D.4

21.File类型中定义了什么方法来判断一个文件是否存在?(D

A.creatNewFile B.renameTo C.delete D.exists

 

22.关于转发和重定向以下哪些说法是正确的AD

A.转发url不会改变

B.重定向url不会改变

C.重定向保持request中存放参数

D.转发能保持request中存放参数

 

23.POSTGET哪一个在form提交时会自动把参数和值加入到url中(B

A.POST B.GET C.两者都会

解析:https://zhidao.baidu.com/question/5256414.html

24.要实现层的隐藏,display______D

A.false B.hidden C.”” D.none

25.”abcdefg”.sbustring(2,3)的结果是C

A.cde B.b C.c D.bcd

26.在正则 表达式中\d代表什么(A

A.数字字符

B.非数字字符

C.任意一个字母

D.任意的空白符

27.以下sql语句下划线中填入什么值能得到正确的结果?A

Select num,countscorefrom play group by____

A.num B.score C.count(score)

28.关于构造器是否可以被override是否可以被overload(C

A. B不能 C不能 D不能

解析:事实上,构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload

29.如果对象的引用被置为null,垃圾收集器什么时候释放对象占用的内存? C

A.立即释放 B.方法调用结束后释放 C.下一个垃圾回收周期 D.不确定

解析:垃圾回收器会在不定时的把垃圾回收,而不会立马就回收。

30.关于接口和抽象类不正确是:(C)

A. 接口中所有的方法隐含的都是抽象的而抽象类则可以同时包含抽象和非抽象的方法

B. 类可以实现很多个接口但是只能继承一个抽象类

C. Java接口与抽象类都可以包含非final的变量

D. 接口是绝对抽象的不可以被实例化抽象类也不可以被实例化

31.存在使当i+1<i时,i为多少?(C

A.0 B.1 C.2147483647 D.不存在

解析:javaint32,范围是-2147483648--2147483647,所以是存在i+1<i的。

32.下面哪个流类属于面向字符的输入流?(D

A.BufferedWriter B.FileInputStream C.ObjectInputStream D.InputStreamReader

解析:InputStream(输入)/OutputStream(输出)为后缀的是字节流;

Reader(输入)/Writer(输出)为后缀的是字符流。

33.java接口的修饰符是? D

A.private B.protected C.static D.abstract

可以修饰接口的修饰符有:finalabstract

关于接口:

接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法都必须是公开(public)类型的,确保外部使用者能访问它们;

接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;

接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有静态(static)变量

接口的中的变量是所有实现类共有的,既然共有,肯定是不变的东西,因为变化的东西也不能够算共有。所以变量是不可变(final)类型,也就是常量了。接口的方法默认是public abstract

接口中不可以定义变量即定义的变量前都要加上final修饰,使之成为常量(没有final修饰的是变量,加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。

 

 

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

A.JDBC事务属于java事务的一种

B.JDBC事务属于容器事务类型

C.JDBC事务可以保证操作的完整性和一致性

D.JDBC事务是由Connection发起的并由Connection控制

35.以下描述中,对抽象类和接口的区别描述正确的是(A

A.抽象类可以有构造方法接口不能有构造方法

B.抽象类可以包含静态方法接口中不包含静态方法

C.一个类可以继承多个抽象类但只能实现一个接口

D.抽象类中不可以包含静态方法接口中可以包含静态方法

36.这条语句String s=”a”+”b”+”c”+”d”一共创建了多少个对象A

A.1

B.4

C6

D.7

37.以下哪些会使索引失效(ABCD

A.使用like关键字

B.条件包含or

C.查询条件使用函数在索引列上

D.条件中包含<>

http://blog.csdn.net/monkey_d_feilong/article/details/52291556

 

38.为保证安全不允许录入的字符有C

A=

B.?

C*

D-

39.B等于Y时,A等于z;当A不等于z时,E要么等于Y,要么等于z,以下选项正确的是(D

A.B等于Y,E不等于Y也不等于z

B.A等于z,Y或者z等于E

C.B不等于Y,E不等于Y也不等于z

D.以上都不正确

40.java application中的主类许包含main方法,main方法的返回类型是什么?(D

A.int B.float C.double D.void

41.有以下方法的定义请选择该方法的返回类型D

ReturnType method(byte x,double y ){return (short)x/y*2;}

A.byte B.short C.int D.double

****42.下列哪些语句关于java内存回收的说明是正确的(D

A.程序员必须创建一个线程来释放内存

B.内存回收程序负责释放无用内存

C.内存回收程序允许程序员直接释放内存

D.内存回收程序可以在制定的时间内释放内存对象

43.以下关于构造函数的描述错误的是(A

A.构造函数的返回类型只能是void 构造方法没有返回值

B.构造函数的类的一种特殊函数它的方法名必须与类名相同

C.构造函数的主要作用是完成对类的对象的初始化工作

D.一般在创建新对象时系统会自动调用构造函数

44.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口

A.private B.protected C.private protected D.public

45.有程序片段如下以下哪个表达式结果为true(B

Float s = new Float(0.1f);

Float t= new Float(0.1f);

Double u = new Double(0.1);

A.s==t Bs.equals(t) C.u.equals(s) D.t.equals(u)

解析: == 是一个运算符.Equals则是string对象的方法,可以.(点)出来。

基本数据类型比较

==Equals都比较两个值是否相等。相等为true 否则为false

引用对象比较

==Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false

 

 

 

46.jdk目录中,java程序运行环境的根目录是D

A.bin B.demo C.lib D.jre

解析:JDK包含如下目录: (1)bin目录,包含有编译器、解释器和许多工具 (2)demo目录,包含各种演示例子 (3)include目录,包含Win子目录,都是本地方法文件 (4)jre目录,是Java程序运行环境的根目录 (5)lib目录,包含Java库文件. 

47.下列语句哪一句正确B

A.java程序经编译后会产生machine code B.java程序经编译后会产生byte code

C.java程序经编译后会产生DLL D.以上都不正确

解析:java程序编译后会生成字节码文件,就是.class文件

 

48.下列哪种说法是正确的(D

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

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

 

49.下列的哪个赋值语句是不正确的(A

A.float f =11.1 B.double d = 5.3E12

C.float d = 3.14f D.double f = 11.1E10f

50.下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?(B

A.private B.无修饰符 C.public D.protected

51.以下负责建立与数据库链接的是(D

A.Statement

B.PrepareStatement

C.ResultSet

D.DriverManager

52.使用JDBC链接数据库的顺序是B,A,D,C,E

A.加载驱动

B.导入驱动包

C.发送并处理SQL语句

D.建立于数据库的链接

E.关闭链接

53.接口和抽象类描述正确的有(BC

A.抽象类没有构造函数

B.接口没有构造函数

C.抽象类不允许多继承

D.接口的方法可以有方法体

54.以下描述错误的是(C

A.abstract可以修饰类接口方法

B.abstract修饰的类主要用于被继承

C.abstract可以修饰变量

Dabstract修饰的类其子类也可以是abstract修饰的

55.以下描述正确的有(B

A.方法的重写应用在一个类的内部

B.方法的重载与返回值类型无关

C.构造方法不能重载 X

D.构造方法可以重写 

56.下列哪个是java应用程序主类中正确的main方法(D

A.public void main(String args[])

B.static void main(String args[])

C.public static void main(String args)

D.public static void main(String args[])

57.下列哪个是jdk提供的编译器  B

A.java.exe B.javac.exe C.javap.exe D.javaw.exe

58.对于方法public void a(int a,String b)以下哪一个是它正确的重载方法 C

A.public int a(int a,Stirng b){}

B.protected vid a(int a, String b){}

C.public int a(int a,String[] b){}

D.public static void a(int a,String b){}

59.以下代码编译运行结果为C

Public class Q15{

Public static void main(String[] args){

Int i=10;

Int j=10;

Boolean b = false;

If(b=i==j){

System.out.println(“true”);

}else{

System.out.println(“false”);}

}

}

A. 在第6行编译出错

B. 在第6行运行出错

C. 打印true

D. 打印false

60.下面关于java程序结构特点描述中,错误的是(D)

A.一个java程序由一个或多个文件组成每个文件中可以定义一个类或多个类每个类若干个方法啊和变量组成

B.java程序中声明有public类时java程序文件名必须与public

类的类名相同并区分大小写扩展名为.java

C组成java程序的多个类中有且仅有一个主类

D.一个.java文件中定义多个类时允许其中声明多个public

 

61.编译java程序后生成的面向JVM的字节码文件的扩展名是B

A.java B.class C..obj D..exe

62.x=5,y=8.则表达式x|yB

A.3 B.13 C.0 D.5

63.若定义有变量float f1,f2=8.0F,则下列说法正确的是  B

A.变量f1,f2均被初始化为8.0

B.变量f1,没有被初始化,f2被初始化为8.0

C.变量f1,f2均未被初始化

D.变量f2没有被初始化,f1被初始化为8.0

64.

class Person 0

class Student extends Person {

Long id;

/ /

int (core: / /

String name; 7

int getScore() (return score;)

问:  Person  Student  (B) 

A  

B

C. 关 朕 关 系

D.

65.以 下 关 于 接 口 和抽象 类 说 法 锴 误 ? D

A、 二 者 都 具 有 抽 象 方 法

B、二 者 都 不 能 实 例 化

C

D

66. 是(C

A Java

B Java  void

C. Java

D Java 构造  new

67 B

A、final

B 、 static 调用

C 重写

 D 、 static修饰 类.

68 A

A、 public class X implements Runable {public void  

run (){……}}

B、 public Class implements Thread { Thread [ public void

run (){……}} 

C、public class X implements Thread { public int

run (){……}}

D、public class X implements Runable { protected void

Run(){……}}

16  count  D

int count = l.

for (int i ;i<=5;i++){

count +=I;

}

System.out.println(count);

A.5 B.1 C.15 D.16

*** 69.  ? B

A. 同 一 个 类 的 对 象 共 用 同 一 段 内 存 `

B.同  使

C

D

19  JAVA 错误(D

A.float f=1.3; 

B .char c=”a”;

C.byte b = 257; 

D .int i=10 

20 D

A. 私有属

B.

C

D

21.   是错 A B  D C

A 用 New 运算符  JVM 退 回收

B 还有

C 、 java  始类

使  new 创建   

D. java

解析:a,Java有自动垃圾回收机制,程序到一定的程度就会执行该机制来回收垃圾。b,一个对象没有引用后,垃圾回收没有执行对象是不能释放掉的。cJava的基本类型的传递时值传递。d,该选项中包含“返回值不同也属于重载”,重载和返回值类型没有任何关系。

23 A,B,C,D

A.final )、

B.abstract

C.抽 象 方 法 只 有 方 法 头 , 没 有 方 法 体 。

D.关键字final 和 abstract 使

24  Java

使 A,B,D

A ) Java

 “

一、使用标准输入串System.in

二、使用Scanner取得一个字符串或一组数字

三、使用BufferedReader取得含空格的输入

B) Java

::或者数字

C) Java

D) Java  java. io

25  J av a 造函 B,C

A.类 不 一 定 要显式 定 义构 造 函 数

B.构 函 数 的 返 回 类 型 是 void

C.  任何参数 构造 类名

D 义多

 

26.JSP 编译之 B

A.applet

B.Servlet

C.  application

D. exe

 

 

 

 

 

 

27  J2EE  jsp  A,B

A 、 PageContest

B、 context

C、application

D 、 out

28 Servlet   HttpServletResponse的 那 个 方 法 用 来 把一 个 C

Http 求定  URL.

A 、 sendURL()

B 、 redirectURL() 

 C、sendRedirect() 

D 、 redirectResponse ()

29    Servlet的 代 码 片 段 如 下 :

Public void doGet (HttpServletRequest request,

HttpServletResponse response)

ServletException, IOException {

out. println ( “hi kitty” ):

out . Close () ;

 Servlet A

hi kitty!

 Servlet 线

A. PrintWriter Out = response. getWriter();

B 、 PrintWriter out = request. getWriter();

C 、 OutputStream out = response. getOutputStream(); 

D, OutputStream out  = request. getWriter()

30  J2EE web.xml  C

<session-config>

〈 session - timeout〉30 〈 /session - timeout)

</session - config)

30.

A.毫秒 B.秒 C.分钟 D.小时

31. 设 HttpServletResponse 法是   A

A setC0ntentType

B setAttribute

C doPost

D None of the above

32  FORM表单提  HTTP 的 GET (多选)A,D,B

A

无限

C•

D 参数附在URL后面

解析:

1、Get是用来从服务器上获得数据, Post是用来向服务器上传递数据。

2、传递数据的 形式不同。 
Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接; 
Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。

3、get 传递的参数是可见的,post 是不可见的,post 更安全 
Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。 
Post的所有操作对用户来说都是不可见的。

4、Get传输的数据量小,Post可以传输大量的数据 
Get传输的数据量小,这主要是因为受URL长度限制; 
Post可以传输大量的数据,所以在上传文件只能使用Post。

5、支持的字符集不同 
Get限制Form表单的数据集的值必须为ASCII字符; 
Post支持整个ISO10646字符集。默认是用ISO-8859-1编码

6、Get是Form的默认方法。

 

33 在 web. xml中 下 面 哪 一 个 标 签 表 示 servlet 的 URL D

A mapping

B servlet-url

C url_mapping

D url_pattern

E servlet_mapping

***34  jsp CE

A执 行 of_jspService ()

B    jspInit()  

C    jsp  servlet

D.  servlet

E.  servlet

解析:jspInit(){}jsp Page被初始化的时候调用该方法,并且该方法仅在初始化时执行一次,所以可以在这里进行一些初始化的参数配置等一次性工作.

 

35  session D

A Session  getAttribute () 

B HttpSession  getValue

C. Session 的 getValue () 

D Session  get ()方

0 HttpSession  getAttribute () 

36 在 jsp  java. util 哪个 C

A <%@ import = “java.util.*”%>

B <%@ import = “java.util.*”@%> 

C. <%@ page import = “java.util.*”%>

D, <%@  page java = “java.util.*”%>

E. <%@ page import = “java.util.*”@%> 

37  web  jar  C

A. <%@ import=”java.util.*”%>

B. <%@ import=”java.util.*”@%>

C. <%@ page import=”java.util.*”%>

D. <%@ page java=”java.util.*”%>

37.java程序的种类有(BCD)

A 类(Class) B 。 Applet C. Application D.Servlet 

38.下列标识符不合法的有(ACD)

A new B  $USdOIlars C 1234 D  car-taxi

39下列说法错误的有() AD

A 数组属于一种原生类

解析:,属于引用数据类型,因为声明数组需要分配堆栈空间

B 数组是一种对象 

 

C . int number= [] = { 31 , 23 , 33 ,,43,35,63}

D

40  interface  A, C,D

A · private B · public C · protected D static

6 · C

A. 在 类 方 法 中 可 用 this

B .  法去

C.

D

解析:类方法可以调用外部其他类的方法。。只要实力化对象,也是可以调用实例方法的

7 ·   A

A 丿 ava

B . Java

丿 a va  member

8.Select语句的执行顺序是(C

1)select(2)from(3)where(4)group by5)having(6)order by

A.123456 B.234561 C.234516 D.124563