搜档网
当前位置:搜档网 › Java面试测试题并赋予答案

Java面试测试题并赋予答案

Java面试测试题并赋予答案
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.sodocs.net/doc/2c1936866.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();

}

}

选择语句case中,允许使用的值有哪些?

int,short,char,byte(都在int范围之内,且是整数)

Math,String是不可继承的。(final类)

6.Math,String是不可继承的。(final类)

Instanceof 后面跟的应该是OBJECT。

构造器可以是私有的。(private)

=与==意义是完全不同的。一个是赋值,一个是等于。

全局变量可以不进行初始化,如果使用一个局部变量,则这个局部变量要被初始化。

在try-catch-final块中的退出语句。

public class Test

{

public static void main(String[] args)

{

int a=1;

try

{

a=a/0;

}catch(Exception e)

{

System.out.println("catch");

return;//当return时,finally 中的语句会执行。

//System.exit(0);//若exit 时,finally中的语句不会执行。直接返回,退出程序。

}

finally //当没有System.exit(0);时,无论是否发生异常它都会执行。

{

System.out.println("finally" );

}

}

}

注:try-catch-final块的顺序不能调换。

下面哪些是正确的main方法签名?

A、public static void main(String[] args)

B、public static final void main(String[] args)

C、static public void main(String[] args)

D、static public synchronized void main(String[] args)

E、static public abstract void main(String[] args)

if(-0.0 == 0.0)是相等还是不等?

相等

10.一个抽象类是否可以没有抽象方法?

可以。

11.RandomAccessFile 类继承Object,并且实现了DataInput和DataOutput 接口。

Map接口并不是Collection接口的子类。

12.Collection与Collections的区别?

Collection是一个接口,但 Collections却是一个辅助类,里面有很多静态的工具方法。而且很有用的。如:reverse(List list);sort(List list, Comparator c)等。Collections没有实现任何接口。它直接继承了Object。

13.class Child extends Parents{}

class Parents{}

是否可以这样声明类,在一个文件中?

可以。无所谓的。

14.数组,无论是当前的,还是类等级的,都会被初始化。

String 是被初始化为 null,不是空字符。

null,““,”“,都是不同的。

“continue”只能在一个循环里(如for,do,while),它不能在case语句中出现。

原始Primitive(int,char,long等)数组是不能互相赋值的,即使它们本身可以。

一个Constructor可以抛出任何异常。

初始化块是按照声明的顺序执行的。

所有关于 NaN(Not a Number) 和 non-NaN 的比较,都返回false. 这条很重要。

==会产生编译错误,如果两边类型不匹配的话。

equals() 返回 false 如果对象类型不同,但不产生编译错误。

15.Java成员变量默认初始化的值。

byte-0 short-0 int-0 long-0L

char-'\u0000'(空

格) float-0.0F double-0.0D boolean-false

所有引用类型null

16.integer和long 操作 /和% 的话,可能会抛出ArithmeticException,比如除0。但是 float与double不会,即使是除以0,则等于NaN。

double a=0;a=a/0;则a等于NaN。

17.普通内部类不可以拥有静态变量,但静态内部类可以。

File类没有任何处理文件内容的方法。

InputStream 和 OutputStream 是抽象类,DataInput 和 DataOutput是接口。DataInputStream实现了DataInput接口。

18.面向对象的特征有哪些方面?

最基本特征:封装,继承,多态。

其他特征:抽象关联,聚合,组合,内聚,耦合

19.String是最基本的数据类型吗? String 和StringBuffer的区别?

String不是一最基本的数据类型。

String的长度是不可变的,StringBuffer的长度是可变的。如果你对字符

串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,

如果最后需要String,那么使用StringBuffer的toString()方法20.int 和 Integer 有什么区别

int是基本类型。Integer是引用类型。Integer可以把String转换成int。

21.运行时异常与一般异常有何异同?

.异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

22.说出一些常用的类,包,接口,请各举5个?

常用类-System,ArrayList,FileInputStream,Thread,Socket

常用的包-java.io,java.util,java.sql,java.javax.naming,https://www.sodocs.net/doc/2c1936866.html,

常用接口-Collection,Connection, Cloneable, Comparable, Serializable

23.说出ArrayList,Vector, LinkedList的存储性能和特性.

ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快

24.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

因为这4个线程共享J,所以线程类要写到内部类中。

加线程:每次对j加一。

减线程:每次对j减一。

public class TestThreads

{

private int j=1;

//加线程

private class Inc implements Runnable

{

public void run()

{

for(int i = 0;i < 10;i++)

{

inc();

}

}

}

//减线程

private class Dec implements Runnable

{

public void run()

{

for(int i = 0;i < 10;i++)

{

dec();

}

}

}

//加1

private synchronized void inc()

{

j++;

System.out.println(Thread.currentThrea d().getName()+"-inc:"+j);

}

//减1

private synchronized void dec()

{

j--;

System.out.println(Thread.currentThrea d().getName()+"-dec:"+j);

}

//测试程序

public static void main(String[] args)

{

TestThreads test = new TestThreads();

//创建两个线程类

Thread thread = null;

Inc inc = test.new Inc();

Dec dec = test.new Dec();

//启动4个线程

for(int i = 0;i < 2;i++)

{

thread = new Thread(inc);

thread.start();

thread = new Thread(dec);

thread.start();

}

}

}

25.数组转换问题。

Object[] object = new Person[2];

Person [] person = new Person [3];

person = (Person [])object;//可以转换

int[] i = new int[2];

long[] l = new int[3];

i = (long[])l;//不可以转换

26.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。

import https://www.sodocs.net/doc/2c1936866.html,.*;

import java.io.*;

class Server

{

public Server()

{

BufferedReader br = null;

PrintWriter pw = null;

try

{

ServerSocket server = new ServerSocket(8888);//建立服务器端

Socket socket = server.accept();//监听客户端

//得到该连接的输入流

br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

//得到该连接的输出流

pw = new PrintWriter(socket.getOutputStream(),true);

//先读后写

String data = br.readLine();

System.out.prin tln(data);//输出到控制台

pw.println(data );//转发给客户端

}catch(Exception e)

{

e.printStackTra ce();

}

finally

{

try

{

//关闭读写流

b r.close();

pw.close();

}catch(Exceptio n e)

{}

}

}

public static void main(String[] args)

{

Server server = new Server();

}

}

Client.java:源代码

import https://www.sodocs.net/doc/2c1936866.html,.*;

import java.io.*;

class Client

{

public Client()

{

BufferedReader br = null;

PrintWriter pw = null;

try

{

Socket socket = new

Socket("localhost",8888);//与服务器建立连接,服务器要先启

//得到Socket的输入与输出流

br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

pw = new

PrintWriter(socket.getOutputStream(),true);

//先写后读

pw.println("Client:你好!");

String data = null;

while(true)

{

data = br.readLine();

if(data!=null) break;

}

System.out.println(data);

}catch(Exception e)

{

e.printStackTrace();

}

finally

{

try

{

br.close() ;

pw.close() ;

}catch(Exception e)

{}

}

}

public static void main(String[] args)

{

Client c = new Client();

}

}

27.谈谈final, finally, finalize的区别。

final 用于声明属性,方法和类,分别表示属性不可变,注意:如果是基本类型说明变量本身不能改变,如果是引用类型,说明它不能指向其他的对象了。但对象还是可以改变的。方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示无论是否出现异常总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。28.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

答案:可以继承其他类或完成其他接口,在swing编程中常用此方式。

29.Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。答案:Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外

部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

30.&和&&的区别。

答案:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).

31.HashMap和Hashtable的区别。

答案:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都实现了Map接口,主要区别在于HashMap允许空(null)键值(key)与空值(value),由于非线程安全,效率上可能高于Hashtable,Hashtable不允许有空(null)键值(key)与空值(value)。

32.什么时候用assert?

1.4新增关键字(语法),用于测试boolean表达式状态,可用于调试程序。使用方法

assert ,表示如果表达式为真(true),则下面的语句执行,否则抛出AssertionError。

33.GC是什么? 为什么要有GC?

答案:GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

34.String s = new String("xyz");创建了几个String Object?

两个,一个是对象,一个是对象的引用。

35.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

答案:Math.round(11.5)==12

Math.round(-11.5)==-11,总是返回接近0的数。

36.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

short s1 = 1; s1 = s1 + 1; 有错(s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(没有错,s1==2)

37.sleep() 和 wait() 有什么区别?

答案:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间(休息),把执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,时间到了会继续运行。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

38.Java有没有goto语句?

没有

39.数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。

String有length()这个方法。

40.数组是不是基本类型?

不是

41.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

答案:方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重载Overload是一个类中多态性的一种表现,方法名必需相同,参数列表必需不同.(长度不同或类型不同),与返回值类型没有关系. 构造器也可以重载.方法名和参数列表都相同,只有返回类型不相同则是方法重复定义.编译出错.

Overloaded的方法是可以改变返回值的类型。

重写Override是父类与子类之间多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

42.Set里的元素能重复吗?那么用什么方法区分是否重复?

答案:Set里的元素是不能重复的,如果重复就重复的就不加到里面。用

iterator()方法来区分

重复与否。应该覆盖equals()判断两个Set是否相等。

43.”==”与equal有何区别?

答案:“==”比较的是内存地址,equal比较的是内容

44.给我一个你最常见到的runtime exception。

答案:IndexOutOfBoundsException 数组越界

NullPointerException 空指针异常

SystemException 系统异常本身

45.error和exception有什么区别?

答案:Error表示系统级的错误和程序不必处理的异常,我们无法处理它。

Exception表示是可以捕捉或者需要程序进行处理的异常。

46.List, Set, Map是否继承自Collection接口?

答案:List,Set是。Map不是

47.abstract class和interface有什么区别?

答案:一个只能继承一个抽象类,但却可以实现多个接口。抽象类中可以有也可以没有抽象方法。并且可以定义和常规类一样的变量和方法。而接口中所有的方法都是抽象的,所有的变量都是静态不可修改的。

48.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

答案:都不能。

49.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类答(concrete class)?

答案:接口可以继承接口。接口间继承(extends),不能实现(implements)。

抽象类可以实现(implements)接口,但接口不能实现抽象类。抽象类间也用继承

(extends)。

抽象类是否可继承实体类,但前提是实体类必须有无参的构造函数。

50.启动一个线程是用run()还是start()?有什么区别?

答案:启动一个线程是调用start()方法,这并不意味着线程就会立即运行,只是进入了可运行状态。直接调用run()方法不会产生线程,而是把它当作普通的方法调用,马上执行。

51.Constructor是否可被override?

答案:不可以,但可以重载。

52. Class.forName的作用?

答:调用该访问返回一个类名为指定字符串的类的对象。

53.文件读写的基本类有哪些?

答案:FileInputStream,FileOutputStread,File,IOException等。

54.写一个冒泡排序的程序。

54. public class Sort

{

public static void main(String[] args)

{

int[] array =

{2,3,4,1,43,432,1,344,234,2,3,43,32,434,3432,43,2432,432,4,43};

int num = 0;

/*

冒泡排续

*/

for(int i = 0;i < array.length;i++)

{

/*

每下底一个元素,则调换的次数减一。

注意:

j

*/

for(int j =

0;j

{

int temp = 0;

/*

两两比较若前面的大于后面的则进行调换。

*/

if(array[j] > array[j+1])

{

temp = array[j];

array[j] = array[j+1];

array[j+1] = temp;

}

}

}

/*

输出排序后的数组

*/

System.out.println("****************已排序的数组********");

for(int i = 0;i < array.length;i++)

{

System.out.print(array[i]+"

");

num++;

if(num == 5)//每行输出5个。

{

System.out.pri ntln();

num = 0;

}

}

}

}

55.串行化的注意事项以及如何实现串行化?(Serializable)

56.线程的基本概念、线程的基本状态以及状态之间的关系

57.线程的同步、如何实现线程的同步?

58.几种常用的数据结构及内部实现原理。

59.Socket通信(TCP、UDP区别及Java实现方式)

60.Java的事件委托机制和垃圾回收机制

61.作用域public,private,protected,以及不写时的区别。

62.Java的国际化

63.怎样让程序到后台去运行?

64.怎么把一个文件中的东西做全文替换。

65.ArrayList和Vector的区别?

答案:就ArrayList与Vector主要从二方面来说.

同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的

数据增长:当需要增长时,Vector默认增长为原来一倍,而ArrayList却是原来的一半。

66.char型变量中能不能存贮一个中文汉字?为什么?

答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的。

67.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口同步的实现方面有两种,分别是synchronized,wait与notify

68.垃圾回收机制,如何优化程序?

69.float型float f=3.4是否正确?

不正确。类型不匹配,应该用强制类型转换,如下所示:float f=3.4f;

70. Java中异常处理机制,事件机制?

71.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;

72.金额转换,阿拉伯数字的金额转换成中国传统的形式如:

(¥1011)->(一千零一拾一元整)输出。

73.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进

入此对象的其它方法?

74.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code

会不会被执行,什么时候被执行,在return前还是后?

75.编程题: 用最有效率的方法算出2乘以8等於几? 有C背景的程序员特别喜欢问这种问题。

2 <<

3 。如果是2的10次方则是:1<<10.

76.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句

话对不对?

不对,有相同的hash code。测试过。

77.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

答案:是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

78。编程题: 写一个Singleton出来。

方式一:醉汉式

public class Singleton

{

private static Singleton test = new Singleton();//静态的。保留自身的引用。

//必须是私有的构造函数

private Singleton(){}

public static Singleton getInstance()//公共的静态的方法。

{

return test;

}

}

方式二:懒汉式

public class Singleton

{

private static Singleton test = null;//静态的。保留自身的引用。

//必须是私有的构造函数

private Singleton(){}

public static Singleton getInstance()//公共的静态的方法。

{

if(test == null)

{

test = new Singleton();

}

return test;

}

}

79.描述一下JVM加载class文件的原理机制?

80.试举例说明一个典型的垃圾回收算法?

81.请写一个java程序实现线程连接池功能?

82.给定一个C语言函数,要求实现在java类中进行调用。

83.编一段代码,实现在控制台输入一组数字后,排序后在控制台输出。84.列出某文件夹下的所有文件;

85.实现从文件中一次读出一个字符的操作;

86.列出一些控制流程的方法;

87.多线程有哪些状态?

88.编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的程序。

89.请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来.

90.调用系统命令实现删除文件的操作;

91.C++或Java中的异常处理机制的简单原理和应用。。

答案:当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是https://www.sodocs.net/doc/2c1936866.html,ng.Thowable的子类。

92.Java的接口和C++的虚类的相同和不同处。

93.垃圾回收的优点和原理。并考虑2种回收机制。

94.描述一下你最常用的编程风格。

95.heap和stack有什么区别。

答案:栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。

96.Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的

很笼统)。

答案:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。

注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象

97.JAVA类实现序列化的方法?在collection中,实现比较要实现什么样的接口?

答案:

java类实现序列化需要实现java.io.Serializable接口。

在collection中实现比较要实现Comparable接口或Comparator接口。

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

职业技能题库&在线云笔试平台https://www.sodocs.net/doc/2c1936866.html, 试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试 试卷链接:https://www.sodocs.net/doc/2c1936866.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.sodocs.net/doc/2c1936866.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.sodocs.net/doc/2c1936866.html,ng D.java.swing 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0;

职业技能题库&在线云笔试平台https://www.sodocs.net/doc/2c1936866.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面试测试题并赋予答案

在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.sodocs.net/doc/2c1936866.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(); }

常见的java面试笔试题大汇总

1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 https://www.sodocs.net/doc/2c1936866.html,ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的

Java经典面试笔试题及答案

1.什么是对象序列化,为什么要使用? 所谓对象序列化就是把一个对象以二进制流的方式保存到硬盘上。好处:方便远程调用。 2.值传递与引用传递的区别? 所谓值传递就是把一个对象的值传给一个新的变量,但是系统会给这个新的变量开辟一个新的内存空间。不会改变原有的值所谓引用传递就是把一个对象在堆中保存的数据传递给一个变量,此时新的变量与原有的变量对应同一个内存存储空间,当新的变量修改对象的属性时,内存中的数据也会修改。 3.接口与抽象类的区别? 1:接口里面不可以实现方法体,抽象类可以实现方法体。 2:接口可以多继承接口,抽象类不可以。 3:接口需要被子类实现,抽象类是要被子类继承(单一继承)。 4:接口中只能有公有的方法和属性而且必须赋初始值,抽象类中可以有私有方法和属性. 5: 接口中不能存在静态方法,但属性可以和final,抽象类中方法中可以有静态方法,属性也可以。 4.谈谈继承,为什么要使用继承? 所谓继承就是找出几个类中共同的部分,提取出来作为父类。而子类只需要继承父类,就可以共享父类的方法。 使用继承能够减少重复的代码。 5.方法重载的好处?

所谓重载就是在一个类中可以定义多个相同的方法,但是方法的参数类型和参数的个数以及顺序要不同。 重载的好处就是能够让我们很快的掌握该方法的功能,我们只要要记住该方法就能很快的理解该方法的参数以及参数的作用 6.项目中印象最深的部分? 我觉得在该项目中我体现到了反射技术的强大之处,原来我一直不清楚反射是一种什么样的技术,只知道一些概念上的知识,经过这个项目之后,终于知道该怎样灵活运用反射,以及在什么时候运用。 谈谈你对面向对象的理解与认识? 我觉得使用面向对象这种思维的方式比较符合我们人类的思想,不需要去学习一些什么新的思考方式,就按照现实生活做的一些故事就能让人理解该内容的知识以及他们的作用。 我的看法就是: 1:当加入新的功能的时候不会修改原有的代码。(面向接口编程) 2: 当我们写的一个类可以重复的运用在其他项目中。(代码的复用性) 3:当写一个新类的时候要考虑到他的可扩展性。(灵活性) 7.谈谈集合框架? 集合框架分为三部分,第一部分是collection接口,第二部分是Map接口、第三部分是collections帮助类 首先说一下collection接口,collection接口下面的接口分为set 接口、list接口,在往下面就是他们一些实现类。

精选最新2020年JAVA笔试面试考核题库完整版588题(含答案)

2020年JAVA笔试面试题库588题 一、简答题 1.将两个表连接在一起时,下面那一项通常是另外一个表的主键A. 外键 B. 总控键 C. 重复的组 D. 主键 答案:A 2.下列关于Java语言的叙述中,正确的是:A. 源文件名其扩展名为.jar B. Java是不区分大小写的 C. 源文件中public类的数据不限 D. 源文件名必须与public类型的类名相同 答案:D 3.在Weblogic中如果部署的应用访问两个数据库并需要进行事务控制时,则需配置 答案:两阶段提交协议 4.关系数据库中,典型的实体关系模型有三个要素? 答案:数据结构、关系操作、完整性约束 5.转发HTTP请求的两个方法 respsonse.sendDirect 和 RequestDispatcher.forward 的区别 答案:RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。 6.下面哪个是合法的布尔值 A. “false” B. false C. 10 答案:B 7.J2EE的三层模型是什么?

面试应聘的JAVA笔试题和答案

一、选择题 1:List, Set, Map是否继承自Collection接口 A:都是,B 都不是 C:List, Set 是 D:Set, Map 是 正确答案 C 2:下面描述哪个是正确的 A:构造器Constructor可被override B:可以继承String类 C:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code不会被执行D:两个对象值相同(y) == true),那么也有相同的hash code 正确答案 D 3 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized A:都能 B:都不能 C:可以为static D:可以为native 正确答案 A 4:下面的程序中,temp的最终值是什么? long temo=(int); temp%=2; A: 0 B :1 C :2 D : 3 正确答案 B 5、请在以下选项中选出非基本数据类型的选项 ( ) A: int B:byte C: boolean D:String 正确答案 D 6、阅读下面代码段, 给出以下代码的输出结果 public class Test{ public static void main(String args[]) { String str1 = "abc"; String str = "abc; String str2 = new String("abc"); == str2); == str1); } } A:true,true,true B:true,false,true C:true,true,false D:false,true,true 正确答案 D 7、阅读下面代码段, 给出以下代码的输出结果: int i=1; switch (i) { case 0: "zero");

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

试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试试卷链接:试卷限时:50分 一.单项选择题 每题分值:分 是否题目乱序:是 是否选项乱序:是 是否可回溯:是 难度:中 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 4.[单选]提供Java存取数据库能力的包是() A. B. C. D. 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0; 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.形式参数不可以是对象 答案:A 9.[单选]下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法

Java面试笔试题目汇总

算法软件科技Java工程师笔试题 一、选择题(可多选)。 1、Java 之所以可以实现夸平台,是因为Java 程序在运行时使用了: A: JDK ( Java Development Kit ) B: JRE ( Java Runtime Environment ) C: JVM ( Java Virtual Machine ) D: OS ( Operating System ) 2、下列不是Java语言中的关健字的是: A: public B: Static C:main D:void 3、以下程序中最终输出i 的值是: int i = 999; i--; ++i; System.out.println( i++ ); A: 998 B: 999 C:1000 D:1001

4、那个是合法的byte 类型的数据: A: 128 B: 127 C:-129 D: (int)-130 5、以下b 的值是:byte b = (byte)129; A: -126 B: -127 C:-128 D:-129 6、在JDK 1.7 中,对于switch 语句,switch 后面的( ) 中不可以是哪种类型: A: byte B: char C: short D: int E: String F: 枚举G: float H: double 7、对于以下代码,输出结果是: for( int i = 4 ; i > 0 ; i-- ){ int j = 0 ; do{ j++; if( j == 2 ){ break;

} }while( j < i ); System.out.print( j ); A: 4 3 2 1 B: 1 2 2 2 C: 2 2 2 1 D: 2 2 2 2 8、以下声明数组的方式,哪种是正确的: A: int[ 3 ][ 4 ] array; B: int[ 3 ] [] array; C: char [] array [] ; D: String[][] array; E: Object array[][]; F: Object array[][ 3 ]; 9、下列关于package 和import 语句的描述,正确的是: A: 同一个类中package 可以出现1次或多次 B: 同一个类中import 可以出现1 此或多次 C: 对于同一个类中,import 语句必须出现在该类的第一行(不含注释) D: 同一个类中,package 必须出现在该类的第一行(不含注释)

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 4.提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.sodocs.net/doc/2c1936866.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.执行如下程序代码 a=0;c=0; 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.形式参数不可以是对象 答案:A 9.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译sourcecode时指定 B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件 D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD 3.下列标识符不合法的有() A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD 4.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C.intnumber=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 答案:BCD 5.不能用来修饰interface的有()

华为java笔试面试题2014-_-

华为Java笔试题+数据库题123 一、单项选择题 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 4.提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.sodocs.net/doc/2c1936866.html,ng D.java.swing答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:=答案:A 6.执行如下程序代码 a=0;c=0; 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.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象答案:A 9.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译source code时指定

java面试笔试题四

java面试笔试题四 java面试笔试题(四)2010年07月10日星期六下午03: 4891、Servlet执行时一般实现哪几个方法?public void init(ServletConfig config)public ServletConfig getServletConfig()public String getServletInfo()public void service (ServletRequest request,ServletResp onse resp on se)public void destroy()92、 j2ee常用的设计模式?说明工厂模式。Java中的23种设计模式:Factory(工厂模式),Builder(建造模式),Factory Method(工厂方法模式),Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式),Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式),Comma nd命令模式),Interpreter(解释器模式),Visitor(访问者模式),lterator(迭代子模式),Mediator(调停者模式),Memento备忘录模式),Observer(观察者模式),State (状态模式),Strategy(策略模式),Template Method(模板方法模式),Cha in Of Resp on sibleity(责任链模式)工厂模式:工厂模式是一种经常被使用到 的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。93、EJB需直接实现它的业务接口或Home S口吗,请简述理由。远程接口和 Home接口不需要直接实现,他们的实现代码是由服 务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。94、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)快速排序的伪代码。 //使用快速排序方法对a[0 : n-1]排序从a[0 : n-1]中选择一个元素作为middle,该元素为支点把余下的元素分割为两段left和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点递归地使用快速排序方法对left进 行排序递归地使用快速排序方法对right进行排序所得结果为left+middle+right 95、请对以下在J2EE中常用的名词进行解释(或简单描述)web容器:给处于其中的应用程序组件(JSP, SERVLET提供一个环境,使JSP,SERVLE直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WE冈艮务器来实现。例如:TOMCAT,WEBLOGIC,WEBSP等EF该容器提供的接口严格遵守J2EE规范中的WEB APPLICATIONS准。我们把遵守以上标准的WEB艮务器就叫做J2EE中的WE容器。EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行

Java面试笔试题目汇总

Java面试笔试题目汇总

算法软件科技Java工程师笔试题 一、选择题(可多选)。 1、Java 之因此能够实现夸平台,是因为Java 程序在运行时使用了: A: JDK ( Java Development Kit ) B: JRE ( Java Runtime Environment ) C: JVM ( Java Virtual Machine ) D: OS ( Operating System ) 2、下列不是Java语言中的关健字的是: A: public B: Static C:main D:void 3、以下程序中最终输出i 的值是: int i = 999; i--; ++i; System.out.println( i++ ); A: 998 B: 999 C:1000 D:1001 4、那个是合法的byte 类型的数据: A: 128 B: 127 C:-129 D: (int)-130 5、以下b 的值是:byte b = (byte)129; A: -126 B: -127 C:-128 D:-129 6、在JDK 1.7 中,对于switch 语句,switch 后面的( ) 中不能够是哪种类型:A: byte B: char C: short D: int E: String F: 枚举G: float H: double 7、对于以下代码,输出结果是: for( int i = 4 ; i > 0 ; i-- ){ int j = 0 ; do{ j++; if( j == 2 ){

break; } }while( j < i ); System.out.print( j ); A: 4 3 2 1 B: 1 2 2 2 C: 2 2 2 1 D: 2 2 2 2 8、以下声明数组的方式,哪种是正确的: A: int[ 3 ][ 4 ] array; B: int[ 3 ] [] array; C: char [] array [] ; D: String[][] array; E: Object array[][]; F: Object array[][ 3 ]; 9、下列关于package 和import 语句的描述,正确的是: A: 同一个类中package 能够出现1次或多次 B: 同一个类中import 能够出现1 此或多次 C: 对于同一个类中,import 语句必须出现在该类的第一行(不含注释) D: 同一个类中,package 必须出现在该类的第一行(不含注释) 10、对于以下关于可变长参数的定义,正确的是: A: public void show( String[] aa, String... a ){} B: public void show( String... a , String[] aa){} C: public void show( String... a ){} D: public void show( String a, double b , String... a){} 11、关于接口的使用,正确的是: public interface Usb { } public abstrace class Interface { } A: public interface Usb1 extends Usb {} B: public interface Usb1 implements Usb {} C: public interface Usb1 extends Interface {} D: public interface Usb1 implements Interface {} 12、以下哪个不是Collection的子接口?

125条常见的java面试笔试题大汇总

125条常见的java面试笔试题大汇总 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新 类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改 或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 https://www.sodocs.net/doc/2c1936866.html,ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型 的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们 的类型有关。 7、String 和StringBuffer的区别 JAVA平台提供了两个类:String和 StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个 StringBuffer类提供的字符串进行修改。当你知道字

Java开发工程师笔试题(带答案)

Java开发工程师笔试试题 (请不要在试题上留任何痕迹,所有答案均写在答题纸上) 一.编程题(共26分) 1.任意写出一种排序算法。(6分) public void sort(int [] array){ //代码区 } 2.求 1+2+3+..n(不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关 键字以及条件判断语句)(8分) public int sum(int n){ //代码区 return 0; } 3.完成下面方法,输入一个整数,输出如下指定样式图案。(12分) 输入:3, 输出: 1*2*3 7*8*9 4*5*6 输入:4 输出: 1*2*3*4 9*10*11*12 13*14*15*16 5*6*7*8 public void drawNumPic(int n){ //代码区 } 二.选择题(定项选择每题3分,不定项选择每题4分,共63分) 1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B ) A.int float B.int double C.long float D.long double 2.只有实现了__接口的类,其对象才能序列化 ( A ) A.Serializable

B.Cloneable https://www.sodocs.net/doc/2c1936866.html,parable D.Writeable 3.代码System. out. println(10 % 3 * 2);将打印出?( B ) A. 1 B.2 C.4 D.6 4.以下程序运行的结果为( A ) public class Example extends Thread{ @Override public void run(){ try{ Thread.sleep(1000); }catch (InterruptedException e){ e.printStackTrace(); } System.out.print("run"); } public static void main(String[] args){ Example example=new Example(); example.run(); System.out.print("main"); } } A.run main B.main run C.main D.run E.不能确定 5.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?( B ) A.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值 B.局部变量指的是在方法中定义的变量,如果没有初始化,会有默认值 C.类变量指的是用static修饰的属性 D.final变量指的是用final 修饰的变量 6.在如下所示的类Test中,共有(D)个构造方法。 public class Test{ private int x; public Test(){ x = 35; } public void Test(double f){

华为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 4.提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.sodocs.net/doc/2c1936866.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.执行如下程序代码 a=0;c=0; 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.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 答案:A 9.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译source code时指定 B.在编译程序时,所能指定的环境变量不包括class path C. javac一次可同时编译数个Java源文件 D. javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD 3.下列标识符不合法的有() A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD 4.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C. int number=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 答案:BCD 5.不能用来修饰interface的有() A.private B.public C.protected D.static 答案:ACD 6.下列正确的有() A. call by value不会改变实际参数的数值 B. call by reference能改变实际参数的参考地址 C. call by reference不能改变实际参数的参考地址 D. call by reference能改变实际参数的内容

Java面试测试题带答案

Java基础部分: 1.Java的“一次编写,处处运行”如何实现? Java在每个平台上都有Java虚拟机 Class是由虚拟机转换为对应的平台机器代码 2.描述jvm运行原理 Java平台是由Java虚拟机和Java应用程序接口搭建的,运行环境代表着Java平台,开发人员编写Java代码,将编译成字节码,再将字节码装入内存中,字节码进入虚拟机就会被解释器解释执行 3.为什么Java没有全局变量 (1)全局变量破坏了引用的透明性 (2)全局变量制造了命名空间冲突 4.main方法的关键字的作用 Public是一个访问修饰符 Static修饰的成员称为静态成员 5.Java是否存在内存泄漏? 存在 创建一个对象,不再使用,对象却一直被引用,这个对象我用却无法被垃圾回收器回收,这就是内存泄漏 6.==和equals的区别 “==”除了比较基本数据之外都是比较的内存地址

“equals”除了没有重写equals方法的类之外都是比较内容7.&和&&的区别(与) (1)他们两都可以用作逻辑运算符,当两边结果为true,运算结果为true,只要有一方结果为false运算结果为false (2)&&在开发过程中用到的概率比&大,以为&&具有短路的功能只要第一个结果为false,就不会进行判断 8.构造器是否可被重写,规范是什么? 构造器不能被继承,因此不能被重写,但是可以被重载。 规范是:每一个类必须有自己的构造函数,负责构造自己这部分的构造。 9.Java的反射机制的原理 在运行状态中,对于任意一个类,就能够知道这个类的属性和方法. 功能:生成动态代理; 在运行时调用任意一个对象的方法; 在运行时判任意一个对象所属的方法 10.如何将String类型转化成Number类型 Integer类valueof方法可以将String转成Number类型11.什么时值传递和引用传递? 对象被值传递,意味着传递了对象的一个副本,就算改变了副本,也不会影响对象的值; 对象被引用传递,意味着传递的并不是实际的对象,而是

JAVA程序员面试题7

JA V A程序员面试题(7) 2008-06-12 10:44 1.排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)快速排序的伪代码。 / /使用快速排序方法对a[ 0 :n- 1 ]排序从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e,该元素为支点把余下的元素分割为两段left 和r i g h t,使得l e f t中的元素都小于等于支点,而right 中的元素都大于等于支点递归地使用快速排序方法对left 进行排序递归地使用快速排序方法对right 进行排序所得结果为l e f t + m i d d l e + r i g h t。 2.请对以下在J2EE中常用的名词进行解释(或简单描述) web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET 直接更容器中的环境变量接**互,不必关注其它系统问题。主要有WEB服务器来实现。 例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。 EJB 容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。 JNDI:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。 JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。 JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。 JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。 让开发者通过各种部署和自定义实现自己的个性安全控制策略。 RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。 例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。 RMI是JAVA特有的。 3.JA V A语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意 义?在try块中可以抛出异常吗? Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。用try来指定一块预防所有"异常"的程序。 紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。 throw 语句用来明确地抛出一个"异常"。 throws用来标明一个成员函数可能抛出的各种"异常"。 Finally为确保一段代码不管发生什么"异常"都被执行一段代码。可以在一个成员

相关主题