当前位置:文档之家› 精选30道Java笔试题解答

精选30道Java笔试题解答

精选30道Java笔试题解答
精选30道Java笔试题解答

下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~

1. 下面哪些是Thread类的方法()

A start()

B run()

C exit()

D getPriority()

答案:ABD

解析:看Java API docs吧:https://www.doczj.com/doc/0b6869349.html,/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。

2. 下面关于https://www.doczj.com/doc/0b6869349.html,ng.Exception类的说法正确的是()

A 继承自Throwable

B Serialable CD 不记得,反正不正确

答案:A

解析:Java异常的基类为https://www.doczj.com/doc/0b6869349.html,ng.Throwable,https://www.doczj.com/doc/0b6869349.html,ng.Error和

https://www.doczj.com/doc/0b6869349.html,ng.Exception继承Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException继承RuntimeException。

扩展:错误和异常的区别(Error vs Exception)

1) https://www.doczj.com/doc/0b6869349.html,ng.Error: Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。

https://www.doczj.com/doc/0b6869349.html,ng.Exception: Throwable的子类,用于指示一种合理的程序想去catch 的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。

2) Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).

checked exceptions:通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException 等。

unchecked exceptions:通常是如果一切正常的话本不该发生的异常,但是的确发生了。比如ArrayIndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去catch这类异常,虽然能够从诸如RuntimeException这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。因此,面对Errors和unchecked exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。

RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。

处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。其他(IOException等等)checked异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。

3. 下面程序的运行结果是()

1.String str1 = "hello";

2.String str2 = "he" + new String("llo");

3.System.err.println(str1 == str2);

复制代码

答案:false解析:因为str2中的llo是新申请的内存块,而==判断的是对象的地址而非值,所以不一样。如果是String str2 = str1,那么就是true了。

4. 下列说法正确的有()

A.class中的constructor不可省略

B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行

D.一个class只能定义一个constructor 答案:C 解析:这里可能会有误区,其实普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有返回值。

5. 具体选项不记得,但用到的知识如下:String []a = new String[10];则:

a[0]~a[9] = nulla.length = 10如果是int []a = new int[10];则:a[0]~a[9] = 0a.length = 10 6. 下面程序的运行结果:()

1.public static void main(String args[]) {

2.

3. Thread t = new Thread() {

4.

5. public void run() {

6.pong();

7. }

8. };

9.

10. t.run();

11. System.out.print("ping");

12.

13.}

14.

15.static void pong() {

16.

17. System.out.print("pong");

18.

19.}

复制代码

A pingpong

B pongping

C pingpong和pongping都有可

能 D 都不输出

答案:B解析:去了static用类对象引用仍为B,对Thread的运行机制不是很了解,不知道为啥,欢迎大家补充。

7. 下列属于关系型数据库的是()

A. Oracle B MySql C IMS D MongoDB

答案:AB解答:IMS(Information Management System )数据库是IBM 公司开发的两种数据库类型之一; 一种是关系数据库,典型代表产品:DB2;另一种则是层次数据库,代表产品:IMS层次数据库。非关系型数据库有MongoDB 和Nosql。

8. GC线程是否为守护线程?()答案:是解析:线程分为守护线程和非守护线程(即用户线程)。只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM 一同结束工作。

守护线程最典型的应用就是GC (垃圾回收器)

9. volatile关键字是否能保证线程安全?()

答案:不能解析:volatile关键字用在多线程同步中,可保证读取的可见性,JVM 只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对volatile的写操作,无法保证线程安全。例如假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1堆count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时用volatile 关键字修改之后,还是会存在并发的情况。

10. 下列说法正确的是()A LinkedList继承自ListB AbstractSet继承自SetC HashSet继承自AbstractSetD WeakMap继承自HashMap答案:AC解析:

下面是一张下载的Java中的集合类型的继承关系图,一目了然。

11. 存在使i + 1 < i的数吗()

答案:存在解析:如果i为int型,那么当i为int能表示的最大整数时,i+1就溢出变成负数了,此时不就 j || i <= j不成立的数吗()

答案:不存在解析:这个我不太清楚,因为找不出来什么反例,欢迎大家提出意见。

12. 0.6332的数据类型是()

A float

B double

C Float

D Double

答案:B解析:默认为double型,如果为float型需要加上f显示说明,即0.6332f 13. 下面哪个流类属于面向字符的输入流

( )A BufferedWriter B FileInputStream C ObjectInputStr eam D InputStreamReader

答案:D 解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。

面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。

面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer 的子类。总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流;

以Reader(输入)/Writer(输出)为后缀的是字符流。扩展:Java流类图结构,一目了然,解决大部分选择题:

14. Java接口的修饰符可以为()A private B protected C final D abstract

答案:CD解析:接口很重要,为了说明情况,这里稍微啰嗦点:

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

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

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

(4)接口的中的变量是所有实现类共有的,既然共有,肯定是不变的东西,因为变化的东西也不能够算共有。所以变量是不可变(final)类型,也就是常量了。(5)接口中不可以定义变量?如果接口可以定义变量,但是接口中的方法又都是抽象的,在接口中无法通过行为来修改属性。有的人会说了,没有关系,可以通过实现接口的对象的行为来修改接口中的属性。这当然没有问题,但是考虑这样的情况。如果接口A 中有一个public 访问权限的静态变量a。按照Java 的语义,我们可以不通过实现接口的对象来访问变量a,通过A.a = xxx; 就可以改变接口中的变量a 的值了。正如抽象类中是可以这样做的,那么实现接口A 的所有对象也都会自动拥有这一改变后的a 的值了,也就是说一个地方改变了a,所有这些对象中a 的值也都跟着变了。这和抽象类有什么区别呢,怎么体现接口更高的抽象级别呢,怎么体现接口提供的统一的协议呢,那还要接口这种抽象来做什么呢?所以接口中不能出现变量,如果有变量,就和接口提供的统一的抽象这种思想是抵触的。所以接口中的属性必然是常量,只能读不能改,这样才能为实现接口的对象提供一个统一的属性。通俗的讲,你认为是要变化的东西,就放在你自己的实现中,不能放在接口中去,接口只是对一类事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的实现implements)

开放,接口是对开闭原则的一种体现。所以:接口的方法默认是public abstract;接口中不可以定义变量即只能定义常量(加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。注意:final和abstract 不能同时出现。

15. 不通过构造函数也能创建对象吗()

A 是

B 否

答案:A解析:Java创建对象的几种方式(重要):(1) 用new语句创建对象,这是最常见的创建对象的方法。

(2) 运用反射手段,调用https://www.doczj.com/doc/0b6869349.html,ng.Class或者https://www.doczj.com/doc/0b6869349.html,ng.reflect.Constructor类的newInstance()实例方法。

(3) 调用对象的clone()方法。

(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。(1)和(2)都会明确的显式的调用构造函数;(3)是在内存上对已有对象的影印,所以不会调用构造函数;(4)是从文件中还原类的对象,也不会调用构造函数。

16. ArrayList list = new ArrayList(20);中的list扩充几次()

A 0

B 1

C 2

D 3

答案:A解析:这里有点迷惑人,大家都知道默认ArrayList的长度是10个,所以如果你要往list里添加20个元素肯定要扩充一次(扩充为原来的1.5倍),但是这里显示指明了需要多少空间,所以就一次性为你分配这么多空间,也就是不需要扩充了。17. 下面哪些是对称加密算法()A DES B AES C DSA D

RSA答案:AB解析:常用的对称加密算法有:DES、3DES、RC2、RC4、AES 常用的非对称加密算法有:RSA、DSA、ECC使用单向散列函数的加密算法:MD5、SHA 18.新建一个流对象,下面哪个选项的代码是错误的?()A)new BufferedWriter(new FileWriter("a.txt"));B)new BufferedReader(new FileInputStream("a.dat"));C)new GZIPOutputStream(new FileOutputStream("a.zip"));D)new ObjectInputStream(new FileInputStream("a.dat"));答案:B

解析:请记得13题的那个图吗?Reader只能用FileReader进行实例化。19. 下面程序能正常运行吗()

1.public class NULL {

2.

3.public static void haha(){

4. System.out.println("haha");

5.}

6.public static void main(String[] args) {

7. ((NULL)null).haha();

8.}

9.

10.}

复制代码

答案:能正常运行解析:输出为haha,因为null值可以强制转换为任何java 类类型,(String)null也是合法的。但将上面程序中haha方法的static去掉后,程序不能正常运行,报空指针错误,这是为什么?麻烦大神解答~~~

20. 下面程序的运行结果是什么()

1.class HelloA {

2.

3.public HelloA() {

4. System.out.println("HelloA");

5.}

6.

7.{ System.out.println("I'm A class"); }

8.

9.static { System.out.println("static A"); }

10.

11.}

12.

13.public class HelloB extends HelloA {

14.public HelloB() {

15. System.out.println("HelloB");

16.}

17.

18.{ System.out.println("I'm B class"); }

19.

20.static { System.out.println("static B"); }

21.

22.public static void main(String[] args) {

23.new HelloB();

24.}

25.

26.}

复制代码

答案:

1.static A

2.static B

3.I'm A class

4.HelloA

5.I'm B class

6.HelloB

复制代码

解析:说实话我觉得这题很好,考查静态语句块、构造语句块(就是只有大括号的那块)以及构造函数的执行顺序。对象的初始化顺序:(1)类加载之后,按从上到下(从父类到子类)执行被static修饰的语句;(2)当static语句执行完之后,再执行main方法;(3)如果有语句new了自身的对象,将从上

到下执行构造代码块、构造器(两者可以说绑定在一起)。下面稍微修改下上面的代码,以便更清晰的说明情况:

1.class HelloA {

2.

3.public HelloA() {

4. System.out.println("HelloA");

5.}

6.

7.{ System.out.println("I'm A class"); }

8.

9.static { System.out.println("static A"); }

10.

11.}

12.

13.public class HelloB extends HelloA {

14.public HelloB() {

15. System.out.println("HelloB");

16.}

17.

18.{ System.out.println("I'm B class"); }

19.

20.static { System.out.println("static B"); }

21.

22.public static void main(String[] args) {

23.

24. System.out.println("-------main start-------");

25. new HelloB();

26. new HelloB();

27. System.out.println("-------main end-------");

28.}

29.}

复制代码

此时输出结果为:

1.static A

2.static B

3.-------main start-------

4.I'm A class

5.HelloA

6.I'm B class

7.HelloB

8.I'm A class

9.HelloA

10.I'm B class

11.HelloB

12.-------main end-------

复制代码

21. getCustomerInfo()方法如下,try中可以捕获三种类型的异常,如果在该方法运行中产生了一个IOException,将会输出什么结果()

1.public void getCustomerInfo() {

2.

3. try {

4.

5. // do something that may cause an Exception

6.

7. } catch (java.io.FileNotFoundException ex) {

8.

9. System.out.print("FileNotFoundException!");

10.

11. } catch (java.io.IOException ex) {

12.

13. System.out.print("IOException!");

14.

15. } catch (https://www.doczj.com/doc/0b6869349.html,ng.Exception ex) {

16.

17. System.out.print("Exception!");

18.

19. }

20.

21.}

复制代码

A

IOException!BIOException!Exception!CFileNotFoundException!IOExcepti on!DFileNotFoundException!IOException!Exception! 答案:A解析:考察多个catch语句块的执行顺序。当用多个catch语句时,catch语句块在次序上有先后之分。从最前面的catch语句块依次先后进行异常类型匹配,这样如果父异常在子异常类之前,那么首先匹配的将是父异常类,子异常类将不会获得匹配的机会,也即子异常类型所在的catch语句块将是不可到达的语句。所以,一般将父类异常类即Exception老大放在catch语句块的最后一个。22. 下面代码的运行结果为:()

1.import java.io.*;

2.import java.util.*;

3.

4.public class foo{

5.

6.public static void main (String[] args){

7.

8. String s;

9.

10. System.out.println("s=" + s);

11.

12.}

14.}

复制代码

A 代码得到编译,并输出“s=”

B 代码得到编译,并输出“s=null”

C 由于String s没有初始化,代码不能编译通过

D 代码得到编译,但捕获到NullPointException异常

答案:C解析:开始以为会输出null什么的,运行后才发现Java中所有定义的基本类型或对象都必须初始化才能输出值。

23. System.out.println("5" + 2);的输出结果应该是()。

A 52 B7 C2 D5

答案:A解析:没啥好说的,Java会自动将2转换为字符串。

24. 指出下列程序运行的结果()

1.public class Example {

2.

3.String str = new String("good");

4.

5.char[] ch = { 'a', 'b', 'c' };

6.

7.public static void main(String args[]) {

8.

9. Example ex = new Example();

10.

11. ex.change(ex.str, ex.ch);

13. System.out.print(ex.str + " and ");

14.

15. System.out.print(ex.ch);

16.

17.}

18.

19.public void change(String str, char ch[]) {

20.

21. str = "test ok";

22.

23. ch[0] = 'g';

24.

25.}

26.}

复制代码

A、good and abc

B、good and gbc

C、test ok and abc

D、test ok and gbc

答案:B解析:大家可能以为Java中String和数组都是对象所以肯定是对象引用,然后就会选D,其实这是个很大的误区:因为在java里没有引用传递,只有值传递这个值指的是实参的地址的拷贝,得到这个拷贝地址后,你可以通过它修改这个地址的内容(引用不变),因为此时这个内容的地址和原地址是同一地址,但是你不能改变这个地址本身使其重新引用其它的对象,也就是值传递,可能说的不是很清楚,下面给出一个完整的能说明情况的例子吧:

1.package test;

2.

3./**

4.* @description Java中没有引用传递只有值传递

5.*

6.* @author Alexia

7.* @date 2013-10-16

8.*

9.*/

10.class Person {

11.

12.private String name;

13.

14.private String sex;

15.

16.public Person(String x, String y) {

17. https://www.doczj.com/doc/0b6869349.html, = x;

18. this.sex = y;

19.}

20.

21.// 重写toString()方法,方便输出

22.public String toString() {

23.

24. return name + " " + sex;

Java Web基础笔试题

Java Web基础笔试题 一、填空题(每空2分,共30分) 1、在tomcat上发布javaweb应用时的默认目录是__webapps___目录。 2、javaweb应用的部署描述符是指web.xml__文件。 3、在tomcat中访问helloapp应用的login.html文件时,在浏览器地址栏应写的url为:__。 4、Servlet容器启动每一个web应用时,都会为它创建一个唯一的 ___ServletContext__对象,该对象和web应用有相同的生命周期。 5、请求转发源组件的响应结果___不会__发送到客户端,包含__会__发送到客户端。(填“会”或“不会”) 6、jsp中实现请求转发的标记为:_________。 7、在JSP中,?request?内置对象代表请求消息,response内置对象代表响应消息,___session_内置对象代表会话。 8、如果使用第四类jdbc驱动器连接数据库,jar文件的存放位置为“web 应用/_WEB-INF/lib_______”。 9、Servlet容器为每一个HttpSession对象分配一个唯一标识符,叫做 ___SessionID___。 10、javaweb在mvc设计模式下,___javabean___是模型,___jsp是视图,__servlet__是控制器。 二、选择题(每题2分,共30分) 1、下面哪一个选项不是http响应的一部分?(?c) ?a)响应头 b)响应正文 c)协议版本号 d)状态行 ?2、http请求及响应的正文部分可以是任意格式的数据,要保证接收方能看得 懂发送方发送的数据,http协议采用(d?)协议来规范正文的数据格式? a)FTP

Java语言练习题库(含答案)

单选题 1. 为了保证方法的线程安全,声明方法的时候必须用哪个修饰符? (A) new (B) transient (C) void (D) synchronized 2. 编译Java源文件使用哪个? (A) javac (B) jdb (C) javadoc (D) junit 3. 哪一种类的对象中包含有Internet地址。 (A) Applet (B) Datagramsocket (C) InetAddress (D) AppletContext 4. 有关GUI容器叙述,不正确的是? (A) 容器是一种特殊的组件,它可用来放置其它组件 (B) 容器是组成GUI所必需的元素 (C) 容器是一种特殊的组件,它可被放置在其它容器中

(D) 容器是一种特殊的组件,它可被放置在任何组件中 5. 使用javadoc生成的文档的文件格式是? (A) XML格式 (B) 自定义格式 (C) 二进制格式 (D) HTML格式 6. 下列有关类、对象和实例的叙述,正确的是哪一项? (A) 类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别 (B) 对象是类的抽象,类是对象的具体化,实例是对象的另一个名称 (C) 类是对象的抽象,对象是类的具体化,实例是类的另一个名称 (D) 类是对象的抽象,对象是类的具体化,实例是对象的另一个名称 7. 在事件委托类的继承体系中,最高层次的类是哪项? (A) java.util.EventListener (B) java.util.EventObject (C) java.awt.AWTEvent (D) java.awt.event.AWTEvent 8. Java语言中异常的分类是哪项? (A) 运行时异常和异常 (B) 受检异常和非受检异常

精选30道Java笔试题解答

都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但是IT公司就喜欢考这些基础的东西,所以为了能进大公司就~~~当复习期末考吧。花了不少时间整理,在整理过程中也学到了很多东西,请大家认真对待每一题~~~ 下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~ 1. 下面哪些是Thread类的方法() A start() B run() C exit() D getPriority() 答案:ABD 解析:看Java API docs吧:https://www.doczj.com/doc/0b6869349.html,/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。 2. 下面关于https://www.doczj.com/doc/0b6869349.html,ng.Exception类的说法正确的是() A 继承自Throwable B Serialable CD 不记得,反正不正确 答案:A 解析:Java异常的基类为https://www.doczj.com/doc/0b6869349.html,ng.Throwable,https://www.doczj.com/doc/0b6869349.html,ng.Error和https://www.doczj.com/doc/0b6869349.html,ng.Exception继承Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException继承RuntimeException。扩展:错误和异常的区别(Error vs Exception) 1) https://www.doczj.com/doc/0b6869349.html,ng.Error: Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。 https://www.doczj.com/doc/0b6869349.html,ng.Exception: Throwable的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。 2) Error和RuntimeException及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception 类都是检查了的异常(checked exceptions). checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。 unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。比如ArrayIndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去catch这类异常,虽然能够从诸如RuntimeException这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。因此, 面对Errors和unchecked exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。 RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。

javaSE选择题50道判断题30道

一、不定项选择题:(50题) 1.下列关于JDK、JRE和JVM的描述,正确的是?D A.JRE中包含了JDK,JVM中包含了JRE B.JRE中包含了JDK,JDK中包含了JVM C.JDK中包含了JRE,JVM中包含了JRE D.JDK中包含了JRE,JRE中包含了JVM 2.以下关于JVM的叙述,正确的是?AC A.JVM运行于操作系统之上,它依赖于操作系统 B.JVM运行于操作系统之上,它与操作系统无关 C.JVM支持Java程序运行,它能够直接运行Java字节码文件 D.JVM支持Java程序运行,它能够直接运行Java源代码文件 3.JVM在执行一个Java类时,大致采用以下过程?A A.装载类一>校验类一>执行类中的代码 B.装载类一>执行类中的代码一>校验类 C.校验类一>装载类一>执行类中的代码 D.执行类中的代码一>装载类一>校验类 4.以下关于Java文件名的叙述,正确的有?AD A.Java源文件的扩展名应为.java B.Java字节码文件的扩展名应为.java C.一个Java源文件中只能包含一个Java类 D.Java源文件的文件名应与文件中被public修饰的类的类名一致 5.下列哪项不是int类型的字面量?C A.20 B.077 C.\u03A6 D.0xABBC 6.下列哪项不属于Java语言的基本数据类型?B A.int B.String C.double D.boolean 7.下列哪项不是有效的标识符?AC A.2test B.userName C.$car.text D._password

8.现有如下五个声明: Line1: int _hi=6; Line2:int $dollars=8; Line3: int %opercent=9; Line4: int big=Integer.getlnteger("7"); Line5: int a_really_really_really_long_variable_name=5 ; 哪行无法通过编译?B A.Line1 B.Line3 C. Line4 D. Line5 9.表达式:double d = 1-2/5*5+2*5;d的值是哪项?D C.9 D.11 10.现有代码片段: String s="123"; String s1=s+456; 请问s1的结果是哪项?A A.123456 B.579 C.编译错误 D.运行时抛出异常 11.现有: 1.class Test4 { 2. public static void main (String [] args) { 3.boolean x=false; 4.boolean y=true; 5.short z=42; 6. 7. if((z++==42)&&(y==true))z++; 8. if((x==false)||(++z==45))z++; 9. 10. System. out.println("z="+z); 11. } 12.} 结果为:C A. z=42

百一测评——Java经典面试题 带答案

职业技能题库&在线云笔试平台https://www.doczj.com/doc/0b6869349.html, 试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试 试卷链接:https://www.doczj.com/doc/0b6869349.html,/store/open/paperInfo/41651 试卷限时:50分 一.单项选择题 每题分值:2.5分 是否题目乱序:是 是否选项乱序:是 是否可回溯:是 难度:中 1.[单选]Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.[单选]下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确

职业技能题库&在线云笔试平台https://www.doczj.com/doc/0b6869349.html, 答案:B 3.[单选]下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名 C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 4.[单选]提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.doczj.com/doc/0b6869349.html,ng D.java.swing 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0;

职业技能题库&在线云笔试平台https://www.doczj.com/doc/0b6869349.html, do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.[单选]下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.[单选]下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象

JAVA WEB 基础考试题

一、填空题(每空2分,共30分) 1、在tomcat上发布javaweb应用时的默认目录是__webapps___目录。 2、javaweb应用的部署描述符是指web.xml__ 文件。 3、在tomcat中访问helloapp应用的login.html文件时,在浏览器地址栏应写的url为:__http://localhost:8080/helloapp/login.html___。 4、Servlet容器启动每一个web应用时,都会为它创建一个唯一的 ___ServletContext__对象,该对象和web应用有相同的生命周期。 5、请求转发源组件的响应结果___不会__发送到客户端,包含__会__发送到客户端。(填“会”或“不会”) 6、jsp中实现请求转发的标记为:_________。 7、在JSP中,request 内置对象代表请求消息,response 内置对象代表响应消息,___session_内置对象代表会话。 8、如果使用第四类jdbc驱动器连接数据库,jar文件的存放位置为“web应用/_WEB-INF /lib_______”。 9、Servlet容器为每一个HttpSession对象分配一个唯一标识符,叫做 ___SessionID___。 10、javaweb在mvc设计模式下,___javabean___是模型,___jsp是视图,__servlet__是控制器。 二、选择题(每题2分,共30分) 1、下面哪一个选项不是http响应的一部分?( c ) a) 响应头 b) 响应正文 c) 协议版本号 d) 状态行 2、http请求及响应的正文部分可以是任意格式的数据,要保证接收方能看得懂发送方发送的数据,http协议采用( d )协议来规范正文的数据格式? a) FTP b) TCP c) HTTP d) MIME 3、Servlet API 由哪两个包组成?(两个答案)(ac ) a) javax.servlet b) javax.servlet.jsp c) javax.servlet.http d) java.servlet 4、一个servlet的生命周期不包括(b )方法? a) init()方法 b) invalidate()方法 c) service()方法 d) destroy()方法 5、HttpServletRequest对象的( c )方法能够获取一个表单参数的值: a) getQuaryString() b) getPathInfo() c) getParameter()

Java面试测试题并赋予答案

在main(String[] args)方法内是否可以调用一个非静态方法? 1.不能 同一个文件里是否可以有两个public类? 2.不能 方法名是否可以与构造器的名字相同? 3.可以。 public class Test { public Test(String iceboy) { System.out.println(iceboy); } public void Test(String iceboy) { System.out.println(iceboy); } public static void main(String[] args) { Test a = new Test("abc");//输出“abc” a.Test("iceboy");//输出“iceboy” } } 4.初始化了一个没有run()方法的线程类,是否会出错? 4.不会。 第一种方法:直接继承Thread类。 public class Test { public static void main(String[] args) { ThreadClass t = new ThreadClass(); t.start(); System.out.println("end");//输出“end” } } class ThreadClass extends Thread //Thread类已经实现了空的run()方法。 { } 第二种方法:实现Runnable接口 public class Test { public static void main(String[] args)

{ ThreadClass t = new ThreadClass(); Thread thread = new Thread(t); thread.start(); System.out.println("end"); } } class ThreadClass implements Runnable { public void run() //必须有此方法否则编译报错。它是Runnable接口中的抽象方法。 { System.out.println("Threads"); } } 局部内部类是否可以访问非final变量? 不能访问局部的非final修饰的变量,可以访问局部的使用了final修饰的变量,可以访问成员变量(全局的)。 class Out { private String name = "https://www.doczj.com/doc/0b6869349.html,"; void print() { final String work = "out.local.work";//若不是final的则不能被Animal 使用. int age=10; class Animal //定义一个局部内部类.只能在print()方法中使用. //局部类中不能使用外部的非final的局部变量.全局的可以. { public void eat() { System.out.println(work);/ /ok //age=20;//error not final,编译时就会出错 System.out.println(name);/ /ok. } } Animal local = new Animal(); local.eat(); }

javaweb期末考试复习选择题

JSP 期末考试复习题 1)当JSP页面执行自定义标签,遇到结束标签时将调用()方法执行处理。(选择一项) a) doStartTag() b) doEndTag() c) doInitBody() d) doAfterBody() 8) 在Servlet过滤器的生命周期方法中,每当传递请求或响应时,web容器会调用()方法。(选择一项) a) init b) service c) doFilter d) destroy 10)给定一个Servlet的代码片段如下: Public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ ______ out.println(“hi kitty!”); out.close(); } 运行次Servlet时输出如下: hi kitty! 则应在此Servlet下划线处填充如下代码。(选项一项) a) PrintWriter out = response.getWriter(); b) PrintWriter out = request.getWriter(); c) OutputStream out = response.getOutputStream(); d) OutputStream out = request.getWriter(); 11)给定如下JSP代码,假定在浏览器中输入URL:http://localhost:8080/web/jsp1.jsp,

可以调用这个JSP,那么这个JSP的输出是()。(选项一项)<%@ page contentType="text/html; charset=GBK" %> <%@ taglib uri=”https://www.doczj.com/doc/0b6869349.html,/jsp/jstl/core”prefix=”c”%> <% int counter = 10; %> it’s an odd it’s an even a) 一个HTML页面,页面上显示it’s an odd b) 一个HTML页面,页面上显示it’s an even c) 一个空白的HTML页面 d) 错误信息 12) 给定java程序User.java,代码如下: package user; public class User{ private String password;

精选30道Java笔试题解答

1.下列java 程序输出结果为______。 1 2 3 4 int i=0; Integer j = new Integer(0); System.out.println(i==j); System.out.println(j.equals(i)); A. true,false B. true,true C. false,true D. false,false E. 对于不同的环境结果不同 F. 程序无法执行 2.下列java程序的输出结果为____。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class Example{ String str=new String("hello"); char[]ch={'a','b'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+" and "); Sytem.out.print(ex.ch); } public void change(String str,char ch[]){ str="test ok"; ch[0]='c'; } } A. hello and ab B. hello and cb C. hello and a D. test ok and ab E. test ok and cb F. test ok and c 3.有关下述Java代码描述正确的选项是____。 1 public class TestClass {

java50道经典逻辑题

題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 【程序1】 題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:咋一看不知道如何下手,但是你在草稿纸上写写分析一下,就很快发现其中的规律了package logic; import java.util.Scanner; public class RabbitNum { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("你想知道前几个月的兔子的数量"); int month = in.nextInt(); int[] mon = new int[month]; if(month < 3){ System.out.println("第" + month + "个月有1 对兔子,共2 只"); } else for(int i = 2; i < month; i++){ mon[0] = mon[1] = 1; mon[i] = mon[i - 1] + mon[i - 2]; System.out.printf("第%d 个月有%d 对兔子,共%d 只兔子\n", i + 1, mon[i], 2 * mon[i]); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 分析:如果知道素数是什么,该题就应该不难了 package logic; public class Prime { public static void main(String[] args) { System.out.print("101--200中的素数有:"); for(int i = 101; i <= 200; i++){ if(isPrime(i)) System.out.print(" " + i); } } //isPrime方法用来判断一个数是否是素数private static boolean isPrime(int i) { // TODO Auto-generated method stub for(int j = 2; j <= Math.sqrt(i); j++){ if(i % j == 0) return false; } return true; } } 【程序3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 分析:解决这个题目主要要知道怎么把一个数的各个位上的数拆分出来 package logic; import java.util.Scanner; public class NarcissisticNum { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("水仙花数有:"); for(int num = 100; num < 1000; num++){ if(isNarcissisticNum(num)) System.out.println(" " + num); } } //一个判断正整数是否为水仙花数的方法private static boolean isNarcissisticNum(int num) { // TODO Auto-generated method stub int a = num / 100; //分离出百位a int b = (num / 10) % 10; //分离出十位b int c = num % 10; //分离出个位 c int sum = a * a * a + b * b * b + c * c * c; if(sum == num) return true; else return false; } } 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 分析:按步骤实现就可以了(有多种实现方式,以下代码供参考。我也参考了别人的)package logic; import java.util.Scanner; public class PrimeFactorOfInteger { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个

精选30道Java笔试题解答

精选30道Java笔试题解答 Java笔试题校园招聘程序员linkedlist 都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但是IT公司就喜欢考这些基础的东西,所以为了能进大公司就~~~当复习期末考吧。花了不少时间整理,在整理过程中也学到了很多东西,请大家认真对待每一题~~~ 下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~ 1. 下面哪些是Thread类的方法() A start() B run() C exit() D getPriority() 答案:ABD 解析:看Java API docs吧:https://www.doczj.com/doc/0b6869349.html,/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。 2. 下面关于https://www.doczj.com/doc/0b6869349.html,ng.Exception类的说法正确的是() A 继承自Throwable B Serialable CD 不记得,反正不正确 答案:A 解析:Java异常的基类为https://www.doczj.com/doc/0b6869349.html,ng.Throwable,https://www.doczj.com/doc/0b6869349.html,ng.Error和https://www.doczj.com/doc/0b6869349.html,ng.Exception继承Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException 继承RuntimeException。 扩展:错误和异常的区别(Error vs Exception) 1) https://www.doczj.com/doc/0b6869349.html,ng.Error: Throwable的子类,用于标记严重错误。合理的应用程序不应该去 try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。 https://www.doczj.com/doc/0b6869349.html,ng.Exception: Throwable的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。 2) Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions). checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。 unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。比如ArrayIndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去

java笔试题以及答案详解-一

java笔试题以及答案详解一 一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名 C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。package net.study; public class TestConStructor { public TestConStructor() { System.out.println("constructor"); }

public void TestConStructor() { System.out.println("not constructor"); } public static void main(String[]args) { TestConStructor testConStructor= new TestConStructor(); System.out.println("main"); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.doczj.com/doc/0b6869349.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&&B.<>C.if D.:= 答案:A 详解: java 中没有<>:= 这种运算符,if else不算运算符6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1;

JavaWeb综合笔试题(卷)

选择题(针对以下题目,请选择最符合题目要求的答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。1-50题,每题2分) 1)在Oracle中,假设需要从学员表(student)中查询学员的毕业时间(graduatetime)并按照年/月/日的格式输出,则以下SQL语句正确的是()。 (选择一项) a) SELECT EXTRACT(Y FROM s.graduatetime)||'/'|| EXTRACT(M FROM s.graduatetime)||'/'|| EXTRACT(D FROM s.graduatetime) FROM students; b) SELECT EXTRACT(YEAR s.graduatetime)||'/'|| EXTRACT(MONTH s.graduatetime)||'/'|| EXTRACT(DAY s.graduatetime) FROM students; c) SELECTEXTRACT(YEAR FROM s.graduatetime)||'/'|| EXTRACT(MONTH FROM s.graduatetime)||'/'|| EXTRACT(DAY FROM s.graduatetime) FROM students;

d) SELECT EXTRACT(YEAR(s.graduatetime))||'/'|| EXTRACT(MONTH(s.graduatetime))||'/'|| EXTRACT((DAYFROMs.graduatetime)) FROM students; 2)在Linux系统中,()命令可以用来分页查看文件的内容。(选择二项) a) more b) less c) cat d) tailf 3)查询新闻明细表(news_detail),要求在新闻列表页面展现新闻数据,每页显示5条数据(pageSize=5),前台提供参数:页码(pageNo),请补全下面分页sql语句()。注:mysql数据库 SELECT*FROMnews_detail ORDERBYcreateDateDESC______(1)_______(选择一项) a) LIMIT pageNo,pageSize b) LIMIT (pageNo-1),pageSize c) LIMIT (pageNo-1)*pageSize,pageSize d) LIMIT pageSize,(pageNo-1)*pageSize

精选30道java题带答案

下面都是我自己的答案非官方,仅供参考 1. 下面哪些是Thread类的方法() A start() B run() C exit() D getPriority() 答案:ABD 解析:看Java API docs吧:https://www.doczj.com/doc/0b6869349.html,/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。 2. 下面关于https://www.doczj.com/doc/0b6869349.html,ng.Exception类的说法正确的是() A 继承自Throwable B Serialable CD 不记得,反正不正确 答案:A 解析:Java异常的基类为https://www.doczj.com/doc/0b6869349.html,ng.Throwable,https://www.doczj.com/doc/0b6869349.html,ng.Error和https://www.doczj.com/doc/0b6869349.html,ng.Excepti on继承Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException继承RuntimeException。 扩展:错误和异常的区别(Error vs Exception) 1) https://www.doczj.com/doc/0b6869349.html,ng.Error: Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。

https://www.doczj.com/doc/0b6869349.html,ng.Exception: Throwable的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。 2) Error和RuntimeException 及其子类都是未检查的异常(unchecked excep tions),而所有其他的Exception类都是检查了的异常(checked exceptions). checked exceptions:通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。检查了的异常发生在编译阶段,必须要使用try…catch(或者throws)否则编译不通过。unchecked exceptions:通常是如果一切正常的话本不该发生的异常,但是的确发生了。发生在运行期,具有不确定性,主要是由于程序的逻辑问题所引起的。比如ArrayI ndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去catch这类异常,虽然能够从诸如RuntimeException这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。因此,面对Errors和uncheck ed exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。 RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。 处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。其他

Java web期末考试考试

简答题 一、与applet的区别 1.区别1.运行方式不同:application是完整的程序,可以独立运行;applet程序不能 单独运行,它必须嵌入Html语言编写的web页面中,通过与java相关的浏览器控制执行。 区别2:运行工具不同:java application程序被编译以后,用普通的java解释器就可以使其边解释边执行,而java applet的解释器不是独立的软件,它时嵌入到浏览器中,因此applet必须通过网络浏览器或者applet观察器才能执行。 区别3:程序结构不同application程序都含有一个主方法main(),而applet没有主方法main(),他继承自类库中定义好Applet类或者JApplet的子类,这也是applet不能独立运行的原因。 区别4:受到的限制不同:application程序可以设计成能进行各种操作的程序,包括读/写文件的操作,但是java Applet对站点的磁盘文件不能进行写操作与读操作。 提供的界面方式不同:Applet直接利用浏览器,Appliton需要专用代码构建自己 的界面 Applet与Application的区别 (1)Java Applet程序是在WWW浏览器环境下运行,即不是完整独立运行程序; (2)运行Java Applet程序的解释器不是独立的软件,而是嵌在WWW浏览器中作为浏览器软件的一部分。 (3)Java Applet程序中不需要有main方法,但是Java Applet程序的主类必须是类库中已定义好的类Applet或JApplet的子类。 (4)Java Applet程序可以直接利用浏览器或AppletViewer提供的图形用户界面,而Java Application程序则必须另外书写专用代码来营建自己的图形界面。 第一次请求web,tomcat做出怎么样的响应: 答.当一个JSP页面第一次被请求时,JSP引擎先将JSP文件转译成一个Java文件(Servlet) ,再将其编译成字节码,然后执行字节码文件响应用户请求。当这个JSP 页面再次被请求时,将直接执行字节码文件来响应,从而加快了执行的速度。 3.区别tomcat中,与的区别: 答: 分2种:一种是Tomcat下conf下的其配置对所有的项目均有效,另外一种是每个项目均有一个主要对本项目进行相关的配置,如使用 Servlet就要在要指明Servlet的路径,配置servlet类 是对tomcat的设置,可以设置端口号,添加虚拟机,是对服务器的设置 3.读程序写结果 1. 输出的是哪种形式A String a = “String”; int b = 3; int c = 7; + b + c); A String37 B String10 2. 输出的是哪种形式B int b = 3; int c = 7; b + c);

java复习题单选题和答案Word版

1.方法定义和常量值的集合是( ) (A).单元 (B). 接口 (C).成员 (D).变量 2.下列不属于条件控制语句的是( ) (A).for语句 (B).if语句 (C).if....else语句 (D).if语句的扩充形式 3.下列说法正确的是( ) (A).不需定义类,就能创建对象 (B).属性可以是简单变量,也可以是一个对象 (C).属性必须是简单变量 (D).对象中必有属性和方法 4.下面这行代码 String [][]s=new String[10][]; 的正确陈述是( ) (A).该行代码非法 (B).s 是一10行10列的数组 (C).s 是一包含10个一维数组的二维数组 (D).s中每个元素设为"" 5.下面不是面向对象技术特点的是( ) (A).模块化 (B).封装 (C).继承性 (D).多态性 6.下面概念中,不属于面向对象方法的是__ ___. (A).对象 (B).继承 (C).类 (D).过程调用 7.下面不是合法Java标识符的是( ) (A).ab (B).$3 (C).3ab (D).ab3 8.接口中的方法被默认是什么的( ) (A).private (B).public (C).protected (D).package 9.Java语言的编译器命令是( ) (A).javac (B).java (C).javaw (D).jar 10.下面的不是Java语言特点的是( ) (A).动态性 (B).面向对象 (C).编辑型 (D).多线程 11.关于实例方法和类方法的区别,下列描述正确的是( ) (A).实例方法是不用创建类的实例就可以直接调用 (B).类方法是通过static关键字声明的方法 (C).实例方法属于类 (D).类方法是通过new以后才能调用的方法 12.如果只运行别人的Java程序,需要安装的是( ) (A).WORD (B).JRE (C).JDK (D).JVM 13.使用哪个关键字来定义一个接口( )

相关主题
文本预览
相关文档 最新文档