JAVA企业面试题简答题 及答案

JAVA企业面试题简答题 及答案
JAVA企业面试题简答题 及答案

第一部分 Java的类

1、请解释Java语言的跨平台特性。

Java的跨平台特性也被称为可移植性。他的意思就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。之所以能实现跨平台的特性。主要得益于Java虚拟机(JVM),JVM解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。

2、请列举JAVA语言的主要特点

JAVA语言有很多特点,主要包括①跨平台性:一个应用可以不经过修改直接运行到不同的平台上。②面向对象:JAVA语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。③解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。④自动回收:JAVA 应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。

3.请说明一个JAVA类中主要包含哪几个元素?并说明每种元素的作用。

JAVA类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据;

方法用来定义对象的行为;构造方法可以用来创建对象;块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;内部类作为类的一个成员存在,能够访问外部类的属性和方法。

4、请说明构造方法的作用和特征

构造方法的作用是用来创建对象,使用new关键字调用。

构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如static、final、abstract等修饰符都可以修饰构造方法。

5、什么事方法重载(overload)?

方法重载指的是在一个类中可以声明多个相同名字的方法,而方法的形式参数有区别。

调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。

6、请列举Java语言中的权限访问修饰符,并说明每种权限的含义。

Java语言中有四种权限访问修饰符,即public、protected、同包以及private.

public表示公共权限,即任何包中都可以访问:protected表示受保护权限,即同包中可以访问,不同包中的子类可以访问:同包权限是默认权限,即不显示指明权限修饰符的

时候就是同包权限,表示只有同包中可以访问:private是私有权限,表示只能在本类中访问。

7、请列举Java语言中的八种基本数据类型,并说明每种数据类型的含义及长度。

Java语言的八种基本数据类型有:byte字节型,8位长度:short短整型,16位长度,int整型,32位长度:long长整型,64位长度:float单精度浮点型。32位长度:double 双精度浮点型,64位长度:char字符型,16位长度:boolean型,表示逻辑值,有true 和false两个值,分别表示真和假。

8.什么叫引用类型,引用类型和基本数据类型有什么区别?

Java语言中除了基本数据类型之外的类型,都称为引用类型。引用类型就是类的类型,所有的对象都是引用类型,包括数组对象。

引用类型必须使用new调用构造方法进行赋值,引用类型的变量拥有自己的属性和方法,可以使用圆点调用自己的属性和方法。基本数据类型直接使用=号进行赋值,且没有自己的属性和方法,往往都在声明属性或方法时使用。

9.对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?

使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用new进行赋值,则每次都创建一个新的字符串。

10.String类是一个“不可变类”,请解释“不可变类”的含义。

所谓的不可变类,就是当字符串初始化后,就不能够被改变。

11.String类和StringBuffer类有什么区别?

String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。

12.StringBuffer和StringBuilder类有什么区别?

StringBuffer是线程安全的字符串缓冲,而StringBuilder不是线程安全的。

13.包装器类型包括哪些类,有什么作用?

包装类器包括Byte、Short、Integer、Long、Float、Double、Character、Boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其成为引用类型。

14. 请说明Java语言中的值传递规则。

基本数据类型传递的是值,引用类型传递的是引用,即虚地址。

15.使用static修饰属性或方法后,属性和方法有什么特征?

static修饰属性或方法后,属性和方法不在属于某个特定的对象,成为类对象,被所有此类的实例所共享,在类加载时就被初始化。Static修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用。

16.使用final修饰属性后,属性有什么特征?

final修饰属性后,属性就成为一个常量。常量只要被赋值,就不能被改变。

17.请说明操作符==的作用。

==可以用来比较基本类型或者引用类型。比较基本类型时,==用来比较二进制的值,比较引用类型时,用来比较对象的虚地址。

18请说明&&与&的区别和联系

&&会发生短路问题,当第一个表达式的值为false时,将直接返回结果为false而不会判断第二个表达式的值。而&不会发生短路问题,即使第一个表达式的值是false,会判断第二个表达式的值。

19. break语句能在什么场景使用。

break语句可以再循环体中使用,也可以在switch的case语句中使用。

20.for循环中的break语句和continue语句的使用。

break可以用来中断循环,continue可以用来继续下一次循环。

21 请说明一个JAVA类中主要包含哪几个元素并说明每种元素的作用。

JAVA类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据,方法用来定义对象的行为,构造方法可以用来创建对象,块能够用来在类加载时执行操作或者在每次实例化前执行通用操作,内部类作为类的一个成员存在,能够访问外部类的属性和方法。

第二部分类之间的关系

1、用代码表示A类关联B类的情况。

Class A{

Private B b;

Public void setB(B b){

This.b=b;

}

}

2、请说明Java语言中数组的基本概念,数组的作用,以及数组的声明创建方式。

数组是相同元素的集合,作为数据容器使用。

声明创建一个int型数组:int[]x=new int[3];其中3是数组的长度,该数组能够存储3个int型变量。

3、使用代码,创建一个长度为5的String型数组,并使用增强for循环迭代数组打印出数组中的元素。

String[] sArray = new String[5];

For(String s : sArray){

System.out.println(s);

}

4、说明Arrays类的作用。

Arrays类是java.util包中的一个类,类中所有的方法都是static方法,这些方法都是数组对象的工具方法,能够对数组进行处理,如sort方法可以对数组元素进行排序。

5、请使用简单代码展示A类依赖B类的含义。

依赖关系指的是一种瞬间的关系。如果A依赖B,一般指的是A类的某个行为,需要B 类对象作为参数。

Class A{

Public void f(B b)

}

6、请说明依赖关系和关联关系的区别。

依赖关系是一种瞬时关系,A依赖B,指的是A的某个行为的参数是B的类型,也就是说,A要想实现这个行为,必须依赖B的实例。

A关联B,是一种长久的关系。是B作为A的属性存在,只要实例化一个A的对象,就会为这个A的对象实例化一个B的对象,作为它的属性使用,可以在A中任何需要使用B的地方使用B。

7、继承有什么作用,Java语言中的继承有什么特点?

继承主要为了能够重复使用父类中的成员,提高代码的重用率

Java语言中的继承是单继承,也就是说一个类最多只能继承一个父类。

8、什么是方法覆盖(override)?并说明方法覆盖与方法重载(overioad)的区别。

覆盖是发生在继承关系的子类中,当子类要修改从父类继承的某个方法的方法体时,就可以在子类中声明一个与父类同名、同参数并且同返回值类型的方法,这就是方法覆盖。

而重载与继承没有关系,指的是在一个类中可以同时声明多个同名但不同参数的方法,称为重载。

9、请说明什么是抽象类?抽象类有什么作用?

抽象类是不能实例化的类,使用abstract修饰。抽象类往往用来做父类使用,定义一些子类的共同属性或行为。

10、请说明抽象方法的含义,并说明抽象类与抽象方法的关系。

抽象方法是没有办法体的方法,使用abstract修饰。抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类。

11、super关键字的两种用法。

如super():表示调用父类中的每一参考的构造方法:又如super(10);表示调用父类中的具有一个整型参数的构造方法。第二种用法是在子类中调用父类中的成员,如super.f();

意思是调用父类中的f()方法。

12、final类与final方法有什么作用?

final类是不能够被继承的类,称为终极类,如String类就是final类,不能有子类。final 修饰方法后,是终极方法,不能被子类覆盖,但是可以被子类继承使用。

13、什么是多态函数?多态函数有什么用?

多态函数就是参数的类型是某个父类类型,具体为这个参数赋值的不同以使用该父类的任意子类的对象。使用多态参数,可以使程序的扩展性更好,即使%%%%的子类方法不需要任何修改,就能接受子类类型进行处理。

14、Object类有什么特点?

Object类是多有类的直接或间接的父类。

15、Object类中的toString方法有什么用?

toString方法可以把对象作为字符串返回。

16、Object类中的equals方法和hashCode 方法。

Oject类中的equals方法用来比较两个引用值,hashCode用来返回引用的内地址的十六进制数值。在Set以及Map集合中,判断两个元素是否重复时,往往需要使用这两个方法。这两个方法往往被子类覆盖,覆盖的规则是:如果存在x和y两个对象,调用x.equals(y)返回true时,那么调用hashCode方法的返回值也该相同;如果x.equals(y)返回false时,那么调用hashCode方法返回的值可能相同,也可能不同。

17、接口有什么特点,与抽象类有什么区别?

口的特点是不能定义变量,而且所有方法都是抽象方法。而抽象类中可以有变量,也不强制必须有抽象方法。

18、类继承父类与类实现接口,有什么区别?

类继承父类只是单继承,也就是一个子类最多只有一个父类;而类实现接口可以多实现,就是一个子类可以同时实现多个接口,并覆盖所有接口中的所有抽象方法。

19、Comparable接口有什么作用

Comparable接口定义了compareTo(Object o)方法,可以用来实现对象的比较逻辑,这个接口常常在其他API中强制使用,用来规范对象的比较逻辑。

第三部分异常处理

1、什么是异常?异常和错误有什么区别?

异常是一些不正常的事件,能够中断程序的正常执行例如才除0计算就是异常。和错误不同,异常是可以被处理的,而错误往往是不能够处理的,如内存溢出错误。

2、nullPointException是什么异常?什么情况发生该异常?

NullPointerExcepiton是空指针异常,当一个引用没哟被赋值,就是一null值如

果这种情况下,使用该引用调用其属性或者方法,就会发生NullPointerException异常。

3、说明try/catch/finally语句块的作用

try语句块用来包含可能发生异常的语句,catch块用来捕获异常,finally用来包含必须执行的语句。

4.如何使用语句抛出异常,抛出异常后如何处理?

使用throw语句就可以抛出异常,如throw new XXXException()。抛出异常时一般情况下会在声明方法处使用throws声明该类型的异常,调用该方法是编译器将提示异常。

5、throws 关键字和throw 关键字有什么区别和联系?

throw用来在方法体内抛出异常,而throws用来在方法声明处声明异常。这两个关键字有着一定的联系。如果一个方法中使用了throw关键字抛出了异常,那么要么立即用try/catch语句进行捕获,要么就是用throws进行声明,否则将出现编译错误。然而,并不是只有使用了throw关键字之后才能使用throws关键字,语法上来说,任何一个方法都可以直接使用throws关键字,抽象方法也可以使用。

6、什么是自定义异常类?为什么要自定义异常类?

自定义异常类区别于API中的标准异常类,指的是开发人员自己创建的异常类。只要继承API中某个异常类就可以自定义一个异常类,常常集成Exception类。自定义异常类主要是为了标记业务逻辑中非正常事件流,避免与API中的标准异常混淆。

第四部分核心API

1、请画出Java集合框架的主要接口和类的继承关系。

2、Collection接口和Map接口分别定义了什么集合类型?有什么区别?

Collection接口是传统的集合接口,可以把单个对象存储进来。而Map接口是映射接口,存储的是键值对。

3、用简单代码演示创建一个泛型类为Customer类的List对象,并使用增强for循环迭代集合。

ArrayList list = new ArrayList();

For(Customer c : list){

}

4、List和Set集合有什么区别?

List实现了列表类型的集合,List中的元素是有序(ordered)的,每个元素根据放入集合的顺序而对应一个索引值,可以根据这个索引值返回集合原宿。而Set实现了不重复元素集合,即Set中的元素不能够重复,重复的元素将无法添加到集合中。

5、List接口有哪几个实现类?分别说明其特征

List接口中有以下几个常用实现

1 ArrayList:实现了动态数组的特征。

2 LinkedList:实现了链表的数据结构,LinkedList也可以用作栈或者队列。

3 Vector:向量。

4 ArrayList Vector类的功能ArrayList都可以实现,区别在于Vector是现行同步的。

6、Collectioin 和Collections有什么区别?

Collection是一个接口的名字,定义了集合类型的共同特征。而Collections是一个类的名字,是集合类型的工具类,类中定义了大量的静态方法,能够操作及和对象。

7、如何将一个Collection转换成数组?

Collection接口中定义了toArray(T[] a)方法来将集合转换为数组,其中T是泛型类型。

8、集合的作用?

集合是可以存储一批类型不同的对象,针对集合的实现类有很多,作用都是一样的,即存储、传输数据,但存储的数据结构不一样,其速度、安全性也不一样。

9 、HashMap和TreeMap在性能上有什么样的差别呢?你比较倾向于使用哪一个?

一个平衡树的性能是O(logn)。Java里的TreeMap用一个红黑树来保证key/value的排序。红黑树是平衡二叉树。保证二叉树的平衡性,使得插入,删除和查找都比较快,时间复杂度都是O(log n)。不过它没有HashMap快,HashMap的时间复杂度是O(1),但

是TreeMap的优点在于它里面键值是排过序的,这样就提供了一些其他的很有用的功能。

使用无序的HashSet和HashMap,还是使用有序的TreeSet和TreeMap,主要取决于你的实际使用场景,一定程度上还和数据的大小以及运行环境有关。比较实际的一个原因是,如果插入和更新都比较频繁的话,那么保证元素的有序可以提高快速和频繁查找的性能。如果对于排序操作(例如产生一个报表合作者运行一个批处理程序)的要求不是很频繁的话,那么把数据以无序的方式存储,然后在需要排序的时候用Collections.sort(…)来进行排序,会比用有序的方式来存储可能会更加高效。这个只是一种可选的方式,没人能给你一个确切的答案。即使是复杂度的理论,例如O(n),成立的前提也是在n足够大的情况下。只要在n足够小的情况下,就算是O(n)的算法也可能会比O(log n)的算法更加高效。另外,一个算法可能在AMD处理器上的速度比在Intel处理器上快。如果你的系统有交换区的话,那么你还要考虑磁盘的性能。唯一可以确定的性能测试途径是用大小合适的数据来测试和衡量程序的性能和内存使用量。

在你所选择的硬件上来测试这两种指标,是最合适的方法。

10、什么是Iterator

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

Java中的Iterator功能比较简单,并且只能单向移动:

(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,

它返回序列的第一个元素。注意:iterator()方法是https://www.360docs.net/doc/d05551699.html,ng.Iterable接口,被Collection继承。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。

Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

11、什么是HaspMap和Map?

map是一个接口

hashmap是一个实现了map接口的类

接口不能new

12、Java集合框架都有哪些最佳实践呢?

如果涉及到堆栈,队列等操作,应该考虑用List,对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。

如果程序在单线程环境中,或者访问仅仅在一个线程中进行,考虑非同步的类,其效率较高,如果多个线程可能同时操作一个类,应该使用同步的类。

在除需要排序时使用TreeSet,TreeMap外,都应使用HashSet,HashMap,因为他们的效率

更高。

要特别注意对哈希表的操作,作为key的对象要正确复写equals和hashCode方法。

容器类仅能持有对象引用(指向对象的指针),而不是将对象信息copy一份至数列某位置。一旦将对象置入容器内,便损失了该对象的型别信息。

尽量返回接口而非实际的类型,如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。这就是针对抽象编程。

13、ArrayList和Vector的区别。

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

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

的,不是同步的。

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

14、ArrayList、Vector、LinkedList的区别?

ArrayList、Vector:以线性表的方式存储,查、改快,增删慢。

Vector:是线程安全,方法是同步方法。

ArrayList:是线程不安全,方法是非同步方法

LinkedList:单链表,查、改慢,增删快。

15、Map的接口和特点?:

键名+键值,键名不可以重复,键值可以重复,通过键名取键值。

HashMap:线程不安全。

Hasttable:线程安全。

jsp中的作用域对象(session、request、application、page)属于map这个体系。

16、Collection及Collections的区别?

Collection是一个接口的名字,定义了集合类型的共同特征。而Collections是一个类的名字,是集合类型的工具类,类中定义了大量的静态方法,能够操作及和对象。

17、假设存在文本文件etc.doc,请用代码展示将文件按行读出,并打印输出到控制台。

File file = new File(“etc.doc”);

try{

FileReader fr = new FileReader(File);

BufferedReader br = new BufferedReader(fr);

String line = br.readLine();

while(line == null){

System.out.println(line);

Line = br.readLine();

}

}catch(FileNotFoundException e){

e.printStackTrace();

}catch(IOException e){

e.printStackTrace();

};

18、使用java语言如何创建线程对象?请列出常用的两种方法。

Java语言中经常使用两种方法创建线程。

①创建Thread类的子类,在子类中覆盖Thread类的run方法,实现线程的运行体,只

要创建该子类对象就是线程对象。

②创建Runable接口的实现类,在实现类中覆盖接口中的run方法,实现线程的运行体。

使用Thread(Runable)构造方法可以创建线程对象,参数是Runable接口实现类的实例。

19、关键字synchronized有什么作用?用简单代码展示synchronized的方法。

synchronized可以将某个代码块或者某个方法进行线程同步,被同步的代码块在一个时刻只能被一个线程访问,只有当前线程处理结束后,方能被其他线程访问。例如:

public void run(){

for(int i=0;i<50;i++){

synchronized(this){

System,out,println(Thread.currentThread().getName()+”:x=”+x);

X++;

}

}

}

20、线程之间通信的方法有哪几个?分别起到什么作用?

线程通信的方法有三个,在Object类中定义。

①wait方法:使得线程进入等待状态。

②notify 方法:随意通知等待池中的某一个线程。

③notifyAll 方法:通知等待池中所有线程。

第五部分其他特性

1、什么是泛型?泛型有什么作用?

2、请声明一个简单的泛型类,说明泛型的作用

3、下述代码是否有编译错误,如果有,请指出错误。

ListIs=new ArrayList();

ListIo=Is;

4、请使用简单代码声明一个枚举类型,并说明枚举的作用。

5、假设有一个枚举类型是Grade,使用代码展示遍历该枚举的方法。

6、增强for循环再什么场合使用?用简单代码展现其使用方法。

7、什么是自动装箱/拆箱?使用该特征有哪些注意事项?

8、什么是可变参数?用简单代码展示可变参数的使用。

9、作用域public,private,protected,以及不写时的区别

10、&和&&的区别

11、Collection 和Collections的区别

12、什么时候用assert

13、String s = new String("xyz");创建了几个String Object

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

15、Java有没有goto

16、数组有没有length()这个方法? String有没有length()这个方法

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

18、Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别

19、给我一个你最常见到的runtime exception

20、error和exception有什么区别

21、List, Set, Map是否继承自Collection接口

22、abstract class和interface 有什么区别

23、abstract的method 是否可同时是static,是否可同时是native,是否可同时是synchronized

24、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)

25、构造器Constructor 是否可被override

26、是否可以继承String类

27、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return 前还是后

28、用最有效率的方法算出2乘以8

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

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

31、switch是否能作用在byte 上,是否能作用在long上,是否能作用在String上

32、ArrayList 和Vector 的区别,HashMap 和Hashtable的区别

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

34、GC是什么? 为什么要有GC

35、float型float f=3.4是否正确?

36、介绍JAVA 中的Collection FrameWork(包括如何写自己的数据结构)?

37、抽象类与接口?

38、STRING与STRINGBUFFER 的区别。

39、谈谈final, finally, finalize 的区别

40、面向对象的特征有哪些方面

41、String是最基本的数据类型吗

42、int 和Integer 有什么区别

43、运行时异常与一般异常有何异同

44、说出ArrayList,Vector, LinkedList的存储性能和特性

44、HashMap和Hashtable 的区别

41、heap和stack有什么区别

42、Java中的异常处理机制的简单原理和应用

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

44、你所知道的集合类都有哪些?主要方法?

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

46、排序都有哪几种方法?请列举

47、JAVA 语言如何进行异常处理,关键字:

48、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

49、java中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

50、java中会存在内存泄漏吗,请简单描述。

51、java中实现多态的机制是什么?

52、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收

53、静态变量和实例变量的区别?

54、什么是java序列化,如何实现java序列化?

55、是否可以从一个static方法内部发出对非static方法的调用?

56、写clone()方法时,通常都有一行代码,是什么?

57、在JAVA中,如何跳出当前的多重嵌套循环?

58、List、Map、Set三个接口,存取元素时,各有什么特点?

59、说出一些常用的类,包,接口,请各举5 个

60、java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?

61、sleep() 和wait() 有什么区别?

62、同步和异步有何异同,在什么情况下分别使用他们?举例说明。

63、启动一个线程是用run()还是start()?

64、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

65、请说出你所知道的线程同步的方法。

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

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

68、简述synchronized和java.util.concurrent.locks.Lock的异同?

69、Class.forName的作用?为什么要用?

70、Jdo是什么?

71、说出数据连接池的工作机制是什么?

72、xml有哪些解析技术?区别是什么?

73、你在项目中用到了xml技术的哪些方面?如何实现的?

74、XML文档定义有几种形式?它们之间有何本质区别?解析XML 文档有哪几种方式?

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() {

} public void TestConStructor() { } public static void main(String[] args) { TestConStructor testConStructor = new TestConStructor(); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 详解: java 中没有<> := 这种运算符,if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是()

Java面试题带答案

J a v a面试题带答案 Document number:BGCG-0857-BTDO-0089-2022

湖南世杰Java工程师面试题 选择题: 单选题 1,以下java程序代码,执行后的结果是( ) map= ("name",null); ("name","Jack"); 0 B: null C: 1 D: 2 答案:C 2,执行以下程序后的输出结果是( ) Public class Test { Public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); operator(a, b);

+","+ b); } Public static void operator(StringBuffer x, StringBuffer y) { (y); y = x; } } A: A,A B: A,B C: B,B D: AB,B 答案:D 3,关于依赖注入,下列选项中说法错误的是( ) A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装 B:依赖注入使组件之间相互依赖,相互制约 C:依赖注入提供使用接口编程 D:依赖注入指对象在使用时动态注入 答案:B

4,关于spring说法错误的是( ) A: spring是一个轻量级JAVA EE的框架集合 B: spring是“依赖注入”模式的实现 C: 使用spring可以实现声明事务 D: spring提供了AOP方式的日志系统 答案:D 5,要在session对象中保存属性,可以使用以下哪个语句( ) A: (“key”,”value”) B: (“key”,”value”) C: (“key”) D: (“key”) 答案:B 6,关于以下程序代码的说明正确的是( ) Public class HasStatic{ Private static int x = 100; Public static void main(String args[]){

Java工程师面试题(含答案)

1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗 基本数据类型包括byte、int、char、long、float、double、boolean和short。 类是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类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 8、运行时异常与一般异常有何异同 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 9、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求

Java面试题大全(答案版)

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以,但是只能有一个类用public修饰,并且用public修饰的类名与文件名要一致 2、&和&&的区别。 &和&&都可以用作逻辑与; &&还具有短路功能,即如果第一个表达式的结果为false,则不再计算第二个表达式; &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。 3、Java有没有goto? java中的保留字,现在没有在java中使用。 4、在JAVA中,如何跳出当前的多重嵌套循环? break+变量控制与return 5、switch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在String上? Switch可以作用在int上,而byte可以隐式转换为int 所以能作用在byte上 不能作用在long上,也不能作用在String上 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 1在java中为int数据类型,short+int=int,大类型转为小类型,编译时,会报告需要强制转换类型的错误。s1+=1不会报,因为JVM会对它特殊处理(自动强转) 7、char型变量中能不能存贮一个中文汉字?为什么? 可以,char型变量是用来存储unicode(依妮Q特)编码的,而unicode编码包含了中文,所以是可以保存的 8、编程题: 用最有效率的方法算出2乘以8等於几? 2<<3,表示将2左移3位;一个数左移几位就表示这个数乘以了2的几次方,左移运算,CPU直接支持,所以是最有效率的 9、请设计一个一百亿的计算器 思路:用两个数组分别保存两个操作数,再新建一个数组保存结果。 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 引用变量不能变 11、"=="和equals方法究竟有什么区别? ==和equals方法都可以用来比较两个对象是否是同一个对象。 ==还可以比较两个变量的值是否相等。 equals是Object类中的方法,可以由子类重写此方法,实现内容相等。 12、静态变量和实例变量的区别? 语法上不同: 静态变量前要加static关键字,实例变量不需要 程序运行时不同: 实例变量是属于某个对象的,只有创建了对象,才会为这个对象的实例变量分配空间。静态变量是属于类的,当程序加载了这个类的字节码文件,就会为静态变量分配空间,并且所有对象共享这个变量 13、是否可以从一个static方法内部发出对非static方法的调用? 不可以,非static方法需要与对象关联在一起的,而static方法调用时不需要对象,可以直接调用,也就是说调用static方法时,可能还没有创建任何实例 14、Integer与int的区别 int是java中的8种基本数据类型之一,默认值是0,Integer是int的包装类,默认值是null,即Integer可以表示未赋值和赋值为0 15、(麦死)Math.round(乱的)(11.5)等於多少? Math.round(-11.5)等於多少?

java笔试题及答案.doc

java笔试题及答案 有了下面java笔试题及答案,进行java笔试时就容易多了,请您对下文进行参考: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package子孙类其他package public 7 7 7 7 protected 7 7 7 X friendly 7 7 X X private 7 X X X 不写时默认为friendly 2、Anonymouslnner Class (匿名内部类)是否可以exte nd s (继承)其它类,是否可以imple ment s (实现)i nterf ace (接口) 答:匿名的内部类是没有名字的内部类。不能exte n ds (继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Sta ti cNestedC las s 和Inner Clas s 的不同答: Nes tedC lass (一般是C+ +的说法),In ne rClass (—般是JAVA的说法)。J ava内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(I

nn erClass)意味着1创建一个st atic内部类的对象,不需要一个外部类对象,2不能从一个st atic内部类的一个对象访问一个外部类对象 4、和的区别 答:是位运算符,表示按位与运算,是逻辑运算符,表示遷辑与(and ) 5、Coll ect ion 和Col lect ions 的区别 答:Coll ect ion是集合类的上级接口,继承与他的接口主要有Set和List. Col lections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:asserti on (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,a ssertion 就是在程序中的一条语句,它对一个boolea n表 达式进行检查,一个正确程序必须保证这个bool ean表达 式的值为tr ue;如果该值为fal se,说明程序己经处于不正确的状态下,系统将给出警告或退出。一般来说,

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 /sql/数据库还有Oracle 也是一种数据库 B.java.awt C.https://www.360docs.net/doc/d05551699.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笔试题含答案

班级:_______________ 学号:______________ 姓名:___________ Java 笔试题 (可多选) 1. 下面哪些是Thread类的方法( ABD) A start() B run() C exit() D getPriority() 2. 下面关于类的说法正确的是(A) A 继承自Throwable B Serialable C 该类实现了Throwable 接口 D 该类是一个公共类 3. 下面程序的运行结果是( false ) String str1 = "hello"; String str2 = "he" + new String("llo"); == str2); 4. 下列说法正确的有( C) A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 5. 指针在任何情况下都可进行>, <, >=, <=, ==运算( true ) 6. 下面程序的运行结果:(B) public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; (); "ping"); } static void pong() { "pong"); } A pingpong

B pongping C pingpong和pongping都有可能 D 都不输出 7. 下列属于关系型数据库的是(AB) A. Oracle B MySql C IMS D MongoDB 8. GC(垃圾回收器)线程是否为守护线程( true ) 9. volatile关键字是否能保证线程安全( false ) 10. 下列说法正确的是(AC) A LinkedList继承自List B AbstractSet继承自Set C HashSet继承自AbstractSet D WeakMap继承自HashMap 11. 存在使i + 1 < i的数吗(存在) 12. 的数据类型是(B) A float B double C Float D Double

java笔试题及答案

java笔试题及答案(必背) 来源:黄德洋的日志 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√× friendly √√ × × private √××× 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实 现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static 内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的

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

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

职业技能题库&在线云笔试平台https://www.360docs.net/doc/d05551699.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开发工程师笔试题(带答案)

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.360docs.net/doc/d05551699.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.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值

javaWeb面试题(含答案)

1、jsp和servlet的区别、共同点、各自应用的围?? JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层. 2、cookie和session的作用、区别、应用围,session的工作原理??? Cookie:主要用在保存客户端,其值在客户端与服务端之间传送,不安全,存储的数据量有限。 Session:保存在服务端,每一个session在服务端有一个sessionID作一个标识。存储的数据量大,安全性高。占用服务端的存资源。 3、jstl是什么?优点有哪些?? JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。优点有: 1、在应用程序服务器之间提供了一致的接口,最大程序地提高了WEB应用在各应用服务器之间的移植。 2、简化了JSP和WEB应用程序的开发。 3、以一种统一的方式减少了JSP中的scriptlet代码数量,可以达到没有任何scriptlet 代码的程序。在我们公司的项目中是不允许有任何的scriptlet代码出现在JSP中。 4、允许JSP设计工具与WEB应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE 开发工具出现。 4、j2ee的优越性主要表现在哪些方面?MVC模式 a、 J2EE基于JAVA 技术,与平台无关 b、 J2EE拥有开放标准,许多大型公司实现了对该规支持的应用服务器。如BEA ,IBM,ORACLE

最新最新java笔试题及答案

一.选择题(1-10题每题2分,11-15题每题4分) 1.下面关于Java语言说法错误的是:() A.java语言是完全面向对象的 B。java语言支持多继承 C.java语言支持多线程 D。java语言最早是为消费电子产品领域设计的 2.下面标识符中正确的是:() A.*123 B。12java C.continue D。java$next 3.下列关于注释语句的描述中,正确的一项是() A。以//开始的是多行注释语句 B。以/*开始,*/结束的是单行注释语句 C。以/**开始,*/结束的是可以用于生成帮助文档的注释语句 D。以/**开始,*/结束的是单行注释语句 4.为了区分重载多态中同名的不同方法,要求()。 A)形式参数个数或者类型不同 B)返回值类型不同 C)调用时用类名或对象名做前缀 D)形式参数名称不同 5.下面定义数组的格式中正确的是:() A.int a[10] B。int a=new int[10] C.int []a=new int[5] D.int a[] 6.下面说法中不正确的是:() A.类是对象的抽象,对象是类的实例 B。类是组成java程序的最小的单位 C.java语言支持多继承 D。java一个程序中只能有一个public类 7.定义类时,不可能用到的保留字是()。 A) private B) class C) extends D) implements 8.为 AB 类的定义一个公共的构造函数,该方法头的形式为()

A.void AB( ) B。public void method( ) C.public method ( ) D。public AB( ) 9.下面说法中不正确的是:() A.java中一个类只允许实现一个接口 B。抽象类中允许有非抽象方法的存在 C.类变量(实例变量)可以直接用类名调用 D。通过super可以调用基类的构造函数 10.容器JFrame 默认使用的布局编辑策略是() A.BorderLayout B。FlowLayout C。GridLayout D。CardLayout 11.以下哪个表达式是不合法的() A.String x=”Hello”; int y=9; x+=y; B.String x=”Hello”; int y=9; if(x= =y) { } C.String x=”Hello”; int y=9; x=x+y; D.String x=null; int y=(x!=null)&&(x.length()>0) 12.class person { public int addvalue(int a,int b) { int s; s=a+b; return s; } }

北大青鸟推荐:Java精选笔试题(含答案解析)

北大青鸟推荐:Java精选笔试题(含答案解析)如果你是计算机专业出生,但是还没有找到工作的话,你就得补补技术了,一些关于面试、笔试的题要多刷一刷。有可能你知道答案,但是由于语言组织能力有所欠缺,所以面试官的印象不是很好,下面分享一些Java精选的鄙视题,希望对面试这者有帮助。 1,volatile关键字是否能保证线程安全?() 答案:否 volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对volatile的写操作,无法保证线程安全。 假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1对count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时volatile关键字修改之后,还是会存在并发的情况。 2,下面哪个流类属于面向字符的输入流( ) A、BufferedWriter B、FileInputStream C、ObjectInputStream D、InputStreamReader 答案:D Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。

面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。 面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。 3,Java能不能不通过构造函数创建对象() A、能 B、不能 答案:A Java创建对象的几种方式: (1) 用new语句创建对象,这是最常见的创建对象的方法。 (2) 运用反射手段,调用https://www.360docs.net/doc/d05551699.html,ng.Class或者https://www.360docs.net/doc/d05551699.html,ng.reflect.Constructor类的newInstance()实例方法。 (3) 调用对象的clone()方法。 (4) 运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。 (1)和(2)都会明确的显式的调用构造函数;(3)是在内存上对已有对象的影印,所以不会调用构造函数;(4)是从文件中还原类的对象,也不会调用构造函数。 4,下列哪个叙述是正确的() A.子类继承父类的构造方法。 B.abstract类的子类必须是非abstract类。 C.子类继承的方法只能操作子类继承和隐藏的成员变量。 D.子类重写或新增的方法也能直接操作被子类隐藏的成员变量。 答案:C 子类是不继承父类的构造方法的,而是必须调用其父类的构造方法。

Java面试题(带答案)

湖南世杰Java工程师面试题选择题: 单选题 1,以下java程序代码,执行后的结果是( ) java.util.HashMap map=newjava.util.HashMap(); map.put("name",null); map.put("name","Jack"); System.out.println(map.size()); A: 0 B: null C: 1 D: 2 答案:C 2,执行以下程序后的输出结果是( ) Public class Test { Public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); operator(a, b); System.out.println(a +","+ b); } Public static void operator(StringBuffer x, StringBuffer y) { x.append(y); y = x; }

} A: A,A B: A,B C: B,B D: AB,B 答案:D 3,关于依赖注入,下列选项中说法错误的是( ) A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装 B:依赖注入使组件之间相互依赖,相互制约 C:依赖注入提供使用接口编程 D:依赖注入指对象在使用时动态注入 答案:B 4,关于spring说法错误的是( ) A: spring是一个轻量级JAVA EE的框架集合 B: spring是“依赖注入”模式的实现 C: 使用spring可以实现声明事务 D: spring提供了AOP方式的日志系统 答案:D 5,要在session对象中保存属性,可以使用以下哪个语句( ) A: session.getAttribute(“key”,”value”) B: session.setAttribute(“key”,”value”) C: session.setAttribute(“key”) D: session.getAttribute(“key”) 答案:B 6,关于以下程序代码的说明正确的是?( ) Public class HasStatic{ Private static int x = 100;

华为java笔试面试题

华为Java笔试题+数据库题 一、单项选择题 1.Java是从( B)语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确(B ) A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 3.下列说法正确的有(C ) A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 4.提供Java存取数据库能力的包是( A) A.java.sql B.java.awt C.https://www.360docs.net/doc/d05551699.html,ng D.java.swing 5.下列运算符合法的是( A) A.&& B.<> C.if D.:= 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是(C ) A.0 B.1 C.-1 D.死循环 7.下列哪一种叙述是正确的( D) A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 8.下列语句正确的是( C) A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 9.下列哪种说法是正确的(A ) A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 二、多项选择题 1.Java程序的种类有(BCD ) A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有( BCD) A.环境变量可在编译source code时指定

java笔试题大集合及答案Java基础方面

Java基础方面: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√× friendly √√×× private √××× 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确

Java企业面试题填空题及标准答案

Java企业面试题填空题及答案

————————————————————————————————作者:————————————————————————————————日期:

Java填空题 1 一个Java源程序是由若干个类组成。 2 class 是Java的关键字,用来定义类。 3 Java应用程序中有多个类时,java命令后的类名必须是包含了main 方法的那个类的名字。 4 一个Java应用程序必须且只有一个类含有main 方法。 5 在一个Java应用程序中main方法必须被说明为public static void 。 6 Java中所有程序都使用方法,应用程序以main 方法开始。 7 Java源文件中有多个类,但只能有一个类是public 类。 8 Java源程序编译后生成的字节码文件扩展名为class 。 9 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。 10 Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。 11 关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把这类词作为名字来用。 12 使用关键字boolean 来定义逻辑变量。 13 关键字就是Java语言中已经被赋予特定意义的一些单词。 14 结构化程序设计的基本数据类型包括逻辑类型、整数类型、字符类型、浮点类型。 15 Java中byte型数组在内存中的存储形式是补码。 16 对于int型变量,内存分配 4 个字节。 17 对于byte型变量,内存分配 1 个字节。 18 对于long型变量,内存分配8 个字节。 19 对于short型变量,内存分配 2 个字节。 20 结构化程序设计的基本数据类型包括整数类型、逻辑类型、字符类型、浮点类型。 21 使用关键字char 来定义字符变量。 22 结构化程序设计的基本数据类型包括字符类型、逻辑类型、整数类型、浮点类型。 23 java中,浮点型变量的类型有float和double 两种。 24 对于float型变量,内存分配 4 个字节。 25 对于double型变量,内存分配8 个字节。 26 结构化程序设计的基本数据类型包括浮点类型、逻辑类型、整数类型、字符类型。 27 Java使用Unicode 字符集。 28 混合运算中不同类型的数据先转化为同一类型,然后运算,其中不包括逻辑类型和字符类型。 29 混合运算中不同类型的数据先转化为同一类型,然后运算,其中不包括字符类型、逻辑类型。 30 当把级别高的变量的值赋予级别低的变量时,必须使用强制类型转换。 31 Java中关系运算符的运算结果是boolean 型。 32 Java中逻辑运算符的操作元必须是boolean 型数据。 33 整数类型数据在内存中以二进制的方式表示。 34 Java语言的控制语句有3种类型,即条件语句、循环语句、和转移语句。 35 Java中有两种类型的控制语句即if和switch 。 36 Java语言的控制语句有3种类型,即条件语句、循环语句、和转移语句。