文档库 最新最全的文档下载
当前位置:文档库 › JAVA基础面试题-3(答案版)

JAVA基础面试题-3(答案版)

JAVA基础面试题-3(答案版)
JAVA基础面试题-3(答案版)

JAVA语言基础笔试题-3

Question 1

Given:

1. public class Team extends java.util.LinkedList {

2. public void addPlayer(Player p) {

3. add(p);

4. }

5. public void compete(Team opponent) { /* more code here */ }

6. }

7. class Player { /* more code here */ }

Which two are true? (Choose two.)

A. This code will compile.

B. This code demonstrates proper design of an is-a relationship.

C. This code demonstrates proper design of a has-a relationship.

D. A Java programmer using the Team class could remove Player

objects from a Team object.

答案:AD

考点:List接口实现,对象间泛化和关联关系

说明:

is a 关系一般用继承来表示,但此题这个继承从逻辑上不是太恰当.

Has a 关系一般来说表示某对象体内有其它对象的存在,该对象体现为属性形态,在

UML中叫做关联关系。本题Team中虽然可以保存Player,但并非显式以属性形式存在。

由于LinkedList自带remove方法,可以通过Team.remove(p) 来删除player对象。

Question 2

Which four are true? (Choose four.)

A. Has-a relationships should never be encapsulated.

B. Has-a relationships should be implemented using inheritance.

C. Has-a relationships can be implemented using instance variables.

D. Is-a relationships can be implemented using the extends keyword.

E. Is-a relationships can be implemented using the implements

keyword.

F. The relationship between Movie and Actress is an example of an is-a relationship.

G. An array or a collection can be used to implement a one-to-many

has-a relationship.

答案:CDEG

考点:集合类型,对象间泛化和关联关系的理解

Has a 关系一般表示为一个类拥有一个属性,属性被封装是常见的事情。

Is a 关系一般用继承来表示,子类体内拥有父类部分。

接口的实现,也适用于is a 关系来理解,因为接口从本质来说,也属于类的形态。

Question 3

Which two are true about has-a and is-a relationships? (Choose two.)

A. Inheritance(继承) represents an is-a relationship.

B. Inheritance represents a has-a relationship.

C. Interfaces must be used when creating a has-a relationship.

D. Instance variables can be used when creating a has-a relationship. 答案:AD

考点:对象间泛化和关联关系的理解

Question 4

Given:

10. interface Jumper { public void jump(); }

......

20. class Animal {}

......

30. class Dog extends Animal {

31. Tail tail;

32. }

......

40. class Beagle extends Dog implements Jumper {

41. public void jump() { }

42. }

.......

50. class Cat implements Jumper {

51. public void jump() { }

52. }

Which three are true? (Choose three.)

A. Cat is-a Animal

B. Cat is-a Jumper

C. Dog is-a Animal

D. Dog is-a Jumper

E. Cat has-a Animal

F. Beagle has-a Tail

G. Beagle has-a Jumper

答案:BCF

考点:对象间泛化和关联关系的理解

Question 5

Given:

1. import java.util.*;

2. public class Example {

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

4. // insert code here

5. set.add(new Integer(2));

6. set.add(new Integer(l));

7. System.out.println(set);

8. }

9. }

Which code, inserted at line 4, guarantees that this program will

output [1, 2]?

A. Set set = new TreeSet();

B. Set set = new HashSet();

C. Set set = new SortedSet();

D. List set = new SortedList();

E. Set set = new LinkedHashSet();

答案:A

考点:集合类型的概念,TreeSet的特性

说明:

HashSet:底层数据结构是hash表,先判断hash值,然后比较值

TreeSet:数据结构二叉排序树,可以对set集合中的元素进行排序,自定义类需要实现comparable接口(排序时,当主要条件相同时,一定要判断次要条件)

此题从输出角度来看,属于天然顺序输出,目前只有TreeSet能达到该效果,同时Integer 类也实现了Comparable接口,所以可以安全的在TreeSet中使用。

Question 6

Given:

1. import java.util.*;

2. public class PQ {

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

4. PriorityQueue pq = new PriorityQueue();

5. pq.add(”carrot”);

6. pq.add(”apple”);

7. pq.add(”banana”);

8. System.out.printl n(pq.poll() +”:” + pq.peek());

9. }

10. }

What is the result?

A. apple:apple

B. carrot:apple

C. apple:banana

D. banana:apple

E. carrot:carrot

F. carrot:banana

答案:C

考点:集合类型,了解Queue接口的使用

说明:

优先级队列,如果不提供Comparable的话,优先级队列中的元素默认按自然顺序排列,也就是数字默认是小的在队列头,字符串则按字典序排列

Poll()从队列头部取值,该值从队列中删除; peek()并未实际取值,而仅是取得队列头部的元素。

Question 7

Given:

1. import java.util.*;

2. public class WrappedString {

3. private String s;

4. public WrappedString(String s) { this.s = s; }

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

6. HashSet hs = new HashSet();

7. WrappedString ws1 = new WrappedString(”aardvark”);

8. WrappedString ws2 = new WrappedString(”aardvark”);

9. String s1 = new String(”aardvark”);

10. String s2 = new String(”aardvark”);

11. hs.add(ws1); hs.add(ws2); hs.add(s1); hs.add(s2);

12. System.out.println(hs.size()); } }

What is the result?

A. 0

B. 1

C. 2

D. 3

E. 4

F. Compilation fails.

G. An exception is thrown at runtime.

答案:D

考点:集合类型,hashset的理解,hashcode和equals调用契约

说明:

WrappedString类没有重写hashcode方法,那么这个类的两个对象在装入hashset的过程中,将会使用Object所提供的hashcode调用结果,由于Object的hashcode值均为不同,所以WrappedString两个对象全被hashset接收。由于这里显式进行字符串构建,所以会创建两个独立的,有相同内容的字符串对象,但是由于String类已经完整重写了hashcode和equals方法,所以具有相同内容的两个对象,将无法同时保存入hashset.

Question 8

Click the Exhibit button.

1. import java.util.*;

2. public class TestSet {

3. enum Example { ONE, TWO, THREE }

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

5. Collection coll = new ArrayList();

6. coll.add(Example.THREE);

7. coll.add(Example.THREE);

8. coll.add(Example.THREE);

9. coll.add(Example.TWO);

10. coll.add(Example.TWO);

11. coll.add(Example.ONE);

12. Set set = new HashSet(coll);

13. }

14. }

Which statement is true about the set variable on line 12?

A. The set variable contains all six elements from the coll collection,

and the order is guaranteed to be preserved.

B. The set variable contains only three elements from the coll

collection, and the order is guaranteed to be preserved.

C. The set variable contains all six elements from the coil collection,

but the order is NOT guaranteed to be preserved.

D. The set variable contains only three elements from the coil

collection, but the order is NOT guaranteed to be preserved.

答案:D

考点:枚举类型,集合类型(ArrayList, HashSet)

Question 9

Given:

1. public class Score implements Comparable {

2. private int wins, losses;

3. public Score(int w, int 1) { wins = w; losses = 1; }

4. public int getWins() { return wins; }

5. public int getLosses() { return losses; }

6. public String toString() {

7. r eturn “<“ + wins + “,“ + losses + “>”;

8. }

9. // insert code here

10. }

Which method will complete this class?

A. public int compareTo(Object o) {/*mode code here*/}

B. public int compareTo(Score other) {/*more code here*/}

C. public int compare(Score s1,Score s2){/*more code here*/}

D. public int compare(Object o1,Object o2){/*more code here*/}

答案:B

考点:Comparable接口的应用理解

说明:任何实现了Comparable接口的类对象均可放置在TreeSet中使用,该接口只有一个方法,叫做CompareTo, 同时该接口是泛型的,所以参数数据类型不应该是Object,而是Score 类型。

Question 10

A programmer has an algorithm that requires a java.util.List that

provides an efficient implementation of add(0,object), but does

NOT need to support quick random access. What supports these requirements?

A. java.util.Queue

B. java.util.ArrayList

C. java.util.LinearList

D. java.util.LinkedList

答案:D

考点:List接口常见实现类的理解

说明:

LinkedList使用链表来进行对象的保存,虽然消耗内存空间较多,但是提供较高的插入和删除的性能。

Question 11

Given:

11. public class Person {

12. private String name, comment;

13. private int age;

14. public Person(String n, int a, String c) {

15. name = n; age = a; comment = c;

16. }

17. public boolean equals(Object o) {

18. if(! (o instanceof Person)) return false;

19, Person p = (Person)o;

20. return age == p.age && name.equals(https://www.wendangku.net/doc/108824338.html,);

21. }

22. }

What is the appropriate definition of the hashCode method in class

Person?

A. return super.hashCode();

B. return name.hashCode() + age * 7;

C. return name.hashCode() + comment.hashCode() /2;

D. return name.hashCode() + comment.hashCode() / 2 - age * 3;

答案:B

考点:Hashcode和equals的实现契约

说明:

Hashcode不同,equals一定不同;

Hashcode相同,equals可以不同。

以上为hashcode和equals的实现契约,这两个方法重写好了,该对象就可以存入

hashset中,同时也可以做hashMap的key。

选项A:在age,name都相同的情况下,hashcode仍然是不同的,是错误的。

选项CD:因为comment并未参与equals判断,确参与了hashcode判断,显然无法满足的契约的需求。

Question 12

Given:

11. public class Key {

12. private long id1;

13. private long 1d2;

14.

15. // class Key methods

16. }

A programmer is developing a class Key, that will be used as a key in

a standard java.util.HashMap. Which two methods should be

overridden to assure that Key works correctly as a key? (Choose two.)

A. public int hashCode()

B. public boolean equals(Key k)

C. public int compareTo(Object o)

D. public boolean equals(Object o)

E. public boolean compareTo(Key k)

答案:AD

考点:对HashMap的Key的特点的理解

说明:

因为HashMap中的所有的key是使用Hashset来管理的,所以其内部所有的key对象均必须能够支持在HashSet环境下正常工作,所以实现hashcode和equals方法成为了必然。

这里要注意一点,equals方法不是泛型的,其参数数据类型为Object.

Question 13

Given:

11. public class Person {

12. private name;

13. public Person(String name) {

14. https://www.wendangku.net/doc/108824338.html, = name;

15. }

16. public boolean equals(Object o) {

17. if( !o instanceof Person ) return false;

18. Person p = (Person) o;

19. return https://www.wendangku.net/doc/108824338.html,.equals(https://www.wendangku.net/doc/108824338.html,);

20. }

21. }

Which is true?

A. Compilation fails because the hashCode method is not overridden.

B. A HashSet could contain multiple Person objects with the same

name.

C. All Person objects will have the same hash code because the

hashCode method is not overridden.

D. If a HashSet contains more than one Person object with

name=”Fred”, then removing another Person, also with name=”Fred”,

will remove them all.

答案:B

考点:hashcode和equals的契约理解

说明:

一个类如果没有重写hashcode方法,将直接使用父类Object的HashCode方法,而Object的该方法,不同的对象均为不同的值。用对象匹配删除的时候,无论这个对象的属性写的多么雷同,结果都删除不掉或者仅仅删除hashcode值匹配的那一个对象。

Question 14

Given:

1. public class Person {

2. private String name;

3. public Person(String name) { https://www.wendangku.net/doc/108824338.html, = name; }

4. public boolean equals(Person p) {

5. return https://www.wendangku.net/doc/108824338.html,.equals(https://www.wendangku.net/doc/108824338.html,);

6. }

7. }

Which is true?

A. The equals method does NOT properly override the Object.equals

method.

B. Compilation fails because the private attribute https://www.wendangku.net/doc/108824338.html, cannot be

accessed in line 5.

C. To work correctly with hash-based data structures, this class must

also implement the hashCode method.

D. When adding Person objects to a java.util.Set collection, the equals

method in line 4 will prevent duplicates.

答案:A

考点:equals方法签名的理解

说明:

本题equals方法的签名书写是错误的,重写失败,此处应该算是对Object.equals方法的重载实现,所以在常规有应用equals的环境中,该方法是不会调用到的。

https://www.wendangku.net/doc/108824338.html,属于从引用角度查看访问修饰符,是可以访问的。

选项C不应该是实现,而必须是重写。

选项D描述不大清晰,实际上很多SET结构是不依靠equals做雷同性判别的。

Question 15

Which two statements are true about the hashCode method? (Choose

two.)

A. The hashCode method for a given class can be used to test for

object equality and object inequality for that class.

B. The hashCode method is used by the java.util.SortedSet collection

class to order the elements within that set.

C. The hashCode method for a given class can be used to test for

object inequality, but NOT object equality, for that class.

D. The only important characteristic of the values returned by a

hashCode method is that the distribution of values must follow a

Gaussian distribution.

E. The hashCode method is used by the java.util.HashSet collection

class to group the elements within that set into hash buckets for

swift retrieval.

答案:AE

考点:Hashset数据类型的理解。

Question 16

Click the Exhibit button.

1. import java.util.*;

2. class KeyMaster {

3. public int i;

4. public KeyMaster(int i) { this.i = i; }

5. public boolean equals(Object o) { return i == ((KeyMaster)o).i; }

6. public int hashCode() { return i; }

7. }

8. public class MapIt {

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

10. Set set = new HashSet();

11. KeyMaster k1 = new KeyMaster(1);

12. KeyMaster k2 = new KeyMaster(2);

13. set.add(k1); set.add(k1);

14. set.add(k2); set.add(k2);

15. System.out.print(set.size() + “:”);

16. k2.i = 1;

17. System.out.print(set.size() + “:”);

18. set.remove(k1);

19. System.out.print(set.siz e() + “:”);

20. set.remove(k2);

21. System.out.print(set.size());

22. }

23. }

What is the result?

A. 4:4:2:2

B. 4:4:3:2

C. 2:2:1:0

D. 2:2:0:0

E. 2:1:0:0

F. 2:2:1:1

G. 4:3:2:1

答案:F

考点:hashset,set,hashcode和equals方法的理解

说明:每个对象允许被存入hashset预先都会在hashset内部列表中留下key/value, 系统删除的时候也将解析要删除的对象的hashcode,到此表进行匹配删除。这里要强调一点,一旦一个对象被存入hashset,这个对象后期发生任何改变,都不会导致hashset中的

key/value表发生变化。

Question 17

Given:

1. import java.util.*;

2. public class Test {

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

4. List strings = new ArrayList();

5. // insert code here

6. }

7. }

Which four, inserted at line 5, will allow compilation to succeed?

(Choose four.)

A. String s = strings.get(0);

B. Iterator i1 = strings.iterator();

C. String[] array1 = strings.toArray();

D. Iterator i2 = strings.iterator();

E. String[] array2 = strings.toArray(new String[1]);

F. Iterator i3 = strings.iterator();

答案:ABDE

考点:ArrayList的API,泛型

说明:普通的toArray()返回的是非泛型结果,是Object[], 只有调用带数组参数的toArray方法,才能正确返回目标结果。由于strings本身已经是泛型的,所以其iterator()也支持泛型返回。

Question 18

Given:

1. import java.util.*;

2. public class Old {

3. public static Object get(List list) {

4. return list.get(0);

5. }

6. }

Which three will compile successfully? (Choose three.)

A. Object o = Old.get(new LinkedList());

B. Object o = Old.get(new LinkedList());

C. String s = Old.get(new LinkedList());

D. Object o = Old.get(new LinkedList());

E. String s = (String)Old.get(new LinkedList());

答案:ADE

考点:泛型,父子类引用变量指向问题

说明:

接口引用变量可以指向任何实现了该接口的对象。

普通接口引用变量,可以指向泛型实现对象。

Question 19

Given:

11. public static void append(List list) { list.add(”0042”); }

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

13. List intList = new ArrayList();

14. append(intList);

15. System.out.println(intList.get(0));

16. }

‘What is the result?

A. 42

B. 0042

C. An exception is thrown at runtime.

D. Compilation fails because of an error in line 13.

E. Compilation fails because of an error in line 14.

答案:B

考点:泛型的理解

说明:泛型只是对集合类型存值的控制,本身集合类型还是可以存储各种类型的,如果一个集合类型被泛型引用变量指向,则呈现为录入值类型受控,但一旦用普通引用变量指向,又可以接收各种类型的数据,不受泛型限制。

Question 20

Given a pre-generics implementation of a method:

11. public static int sum(List list) {

12. int sum = 0;

13. for ( Iterator iter = list.iterator(); iter.hasNext(); ) {

14. int i = ((Integer)iter.next()).intValue();

15. sum += i;

16. }

17. return sum;

18. }

Which three changes must be made to the method sum to use

generics? (Choose three.)

A. remove line 14

B. replace line 14 with “int i = iter.next();”

C. replace line 13 with “for (int i : intList) {“

D. replace line 13 with “for (Iterator iter : intList) {“

E. replace the method declaration with “sum(List intList)”

F. replace the method declaration with “sum(List intList)”

答案:ACF

考点: 拆箱和装箱操作、for..each新版for循环,泛型的概念

说明:

由于使用了泛型,该操作一步到位for (int i : intList),这里不需要iterator的参与了,实际上在for..each循环被广泛使用之后,iterator的迭代循环的写法已经很少使用了,但for..each循环任然建立在iterator之上,因为只有实现了iterator接口的对象方有资格作为for..each循环的target.

Question 21

Given:

ArrayList a = new ArrayList();

containing the values {“1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”}

Which code will return 2?

A. Collections. sort(a, a.reverse());

int result = Collections.binarySearch(a, “6”);

B. Comparator c = Collections.reverseOrder();

Collections.sort(a, c);

int result = Collections.binarySearch(a, “6”);

C. Comparator c = Collections.reverseOrder();

Collections.sort(a, c);

int result = Collections.binarySearch(a, “6”,c);

D. Comparator c = Collections.reverseOrder(a);

Collections.sort(a, c);

int result = Collections.binarySearch(a, “6”,c);

E. Comparator c = new InverseComparator(new Comparator());

Collections.sort(a);

int result = Collections.binarySearch(a, “6”,c);

答案:C

考点:Collections工具类的API使用。

Question 22

Given:

1. public class Drink implements Comparable {

2. public String name;

3. public int compareTo(Object o) {

4. return 0;

5. }

6. }

and:

20. Drink one = new Drink();

21. Drink two = new Drink();

22. https://www.wendangku.net/doc/108824338.html,= “Coffee”;

23. two.na me= “Tea”;

23. TreeSet set = new TreeSet();

24. set.add(one);

25. set.add(two);

A programmer iterates over the TreeSet and prints the name of each

Drink object.

What is the result?

A. Tea

B. Coffee

C. Coffee

Tea

D. Compilation fails.

E. The code runs with no output.

F. An exception is thrown at runtime.

答案:B

考点:TreeSet的概念和使用

说明: 一个对象如果想放在Treeset中存储,必须使用comparable接口,返回值为0,则代表相等。后置对象不会对前置对象构成覆盖。

Question 23

Given:

11. List list = // more code here

12. Collections.sort(list, new MyComparator());

Which code will sort this list in the opposite order of the sort in line

12?

A. Collections.reverseSort(list, new MyComparator());

B. Collections.sort(list, new MyComparator());

list.reverse();

C. Collections.sort(list, new InverseComparator(

new MyComparator()));

D. Collections.sort(list, Collections.reverseOrder(

new MyComparator()));

答案:D

考点:Collections工具类的API使用。

Question 24

Given:

int[] myArray=newint[] {1, 2,3,4, 5};

What allows you to create a list from this array?

A. List myList = myArray.asList();

B. List myList = Arrays.asList(myArray);

C. List myList = new ArrayList(myArray);

D. List myList = Collections.fromArray(myArray);

答案:B

考点:Arrays, collections API使用

Question 25

Given:

13. public static void search(List list) {

14. list.clear();

15. list.add(”b”);

16. list.add(”a”);

17. list.add(”c”);

18. System.out.println(Collections.binarySearch(list, “a”));

19. }

What is the result of calling search with a valid List implementation?

A. 0

B. 1

C. 2

D. a

E. b

F. c

G. The result is undefined.

答案:B

考点:Collections工具类的API使用。

Question 26

Given:

1. import java.util.*;

2.

3. public class LetterASort {

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

5. ArrayList strings = new ArrayList();

6. strings.add(’aAaA”);

7. strings.add(”AaA”);

8. strings.add(’aAa”);

9. strings.add(”AAaa”);

10. Collections.sort(strings);

11. for (String s: strings) { System.out.print(s + “ “); }

12. }

13. }

What is the result?

A. Compilation fails.

B. aAaA aAa AAaa AaA

C. AAaa AaA aAa aAaA

D. AaA AAaa aAaA aAa

E. aAa AaA aAaA AAaa

F. An exception is thrown at runtime. 答案:C

考点:Collections工具类的API使用。

java基础笔试题(答案已整理)

Java基础试题 一:选择题(1*30=30)(题目写在答题纸上面) 1:Java 提供哪几种运算符多选( abcd )。 A)算术运算符B)位运算符 C)关系运算符D)逻辑运算符E)条件运算符 2:https://www.wendangku.net/doc/108824338.html,ng包的()方法比较二个对象是否相等返回true.。(b) A:toString() B:equals() C:compare D:以上都不正确 3:下列对Java 的变量与函数说法正确的是多选(ace )。 A)变量是用来保存数据的B)变量是用来实现操作过程的C)函数是用来实现操作过程的D)函数是用来保存数据的E)函数的参数是数据的入口 4:已知:int[] a = new int[100];在下列给出的数组元素中,非法的是。(d) A:a[0] B:a[1] C:a[99] D:a[100] 5:在java中,一个类可同时定义许多同名的方法,在这些方法的形式参数个数,类型或顺序各不相同,传值也可以各不相同。这种面向对象程序的特性称为。(c) A:隐藏B:覆盖C:重载D:Java不支持此特性 6:()是一组常量和抽象方法的集合。(d) A:实例B:类C:包D:接口 7:下面关于数组说法正确的是多选(abcde)。 A)一维数组实质上是相同类型变量的列表 B)创建一个数组首先定义数组变量所需的类型 C)char c[]=new char[26];可声明一个含有26 个元素的char型数组 D)当为一个多维数组的时候分配内存时,仅需要为第一指定内存,然后再分配其他维的存E)int twain[][] = new int[4][5];可声明一个二维数组 8:Java源文件和编译后的文件扩展名分别为。(b) A:.class和.java B:.java各.class C:.class和.class D:.java和.java 9:设x=5;则y=x--和y=--x的结果,使y分别为。(c) A:5,5 B:5,6 C:5,4 D:4,4 10:若x是float类变量,x=10/4;则x 的值是。(b) A:2 B:2.0 C:2,5 D:编译错误 11:.下面方法中,用于调度线程使其运行的是?多选(bc ) A. init() B. start() C. run() D. resume() E. sleep() 12.下面哪种情况能实现自动转换多选(ace )。 A)byte 型转换成int 型B)int 型转换成byte 型 C)float 型转换成double型D)double 型转换成int 型E)char型转换成int 型 13:下列那些是正确的JAVA字符串?多选(abd )。 A. "\"\"" B. "Oxzabc" C. "\"\" D. "\t\t\r\n" E. "boolean"5 14:在使用super 和this关键字时,以下描述正确的是。(a) A::在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B:super()和this()不一定要放在构造方法内第一行

java基础笔试测试题与答案

Java 一章至五章考试 一. 填空题(8 分) 1. 面向对象的三大原则是( 封装),( 继承) 和( 多态).2 分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数).2 分 3. ( 实体) 方法和( 构造) 方法不能修饰为abstract ?2分 二.选择题(60 分) 1) 在Java 语言中,下列(a,d )是不满足命名规范的变量名。(选择二项) a) 姓名 b) $Name c) _instanceof d) instanceof 2) 下列Java 代码片段的输出结果是( a ) 。 char c='a'; int i=c; float f=i; byte b=(byte)c; System.out.println(c+","+i+","+f+","+b); a) 编译错误 b) a,97,97,97 c) a,97,97.0,97 d) a,97,97.0f,97 3) 下列Java 代码中,空白处的代码是(b,c )。( 选择两项) public interface Fee{ public float calLabFee(float unitPrice, float time); } public class FeeImpl implements Fee { public float calLabFee(float unitPrice, float time){ return unitPrice * time; } } public class FeeInterfaceTest { public static void main(String[] args){ ________________ Float labFee = fee.calLabFee(400.00,5); } }

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基础笔试机试测试题(带答案)

Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java"中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量c的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常

JAVA基础面试题经典

JAVA基础面试题经典

第一阶段题库 基础知识部分: 1.JDK是什么?JRE是什么? a)答:JDK:java开发工具包。JRE:java运行时 环境。 2.什么是java的平台无关性? a)答:Java源文件被编译成字节码的形式,无论 在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是java的跨平台性。 3.在一台电脑上配置java环境,path起什么作 用?如何配置? a)答:path的作用是在DOS环境下,能在任意 位置使用JDK目录中bin文件夹中的可执行程序,来编译执行java程序。 b)在环境变量中找到path变量,把bin文件夹 的绝对路径加上即可。 4.什么样的标识符是合法的? a)由字母、数字、_和$组成,长度不限。其中字 母能够是大写或小写的英文字母,数字为0到9。

b)标识符的第一个字符不能是数字。 c)标识符区分大小写。 d)标识符不能包含空格。 5.Java有几种基本数据类型? a)byte,short,int,long,char,boolean,float,double 6.什么是隐式类型转换?什么是显示类型转换? a)当将占位数少的类型赋值给占位数多的类型 时,Java自动使用隐式类型转换。 b)当把在级别高的变量的值赋给级别底变量时, 必须使用显示类型转换运算。 7.&&和&区别,||和|区别? a)&&和||是短路与,短路或,当左边的表示式能 判断当前结果,则不判断右边的表示式。 b)而& 和|则将两边的表示式都运算完毕后,再 算结果。 8.break,continue区别? a)break结束最近的一个循环,continue结束当 次循环,进入下次循环。 9.类的命名规则是什么? a)如果类名使用拉丁字母,那么名字的首写字母 使用大写字母。

Java基础试题和答案解析

Java试题 1) java程序中,main方法的格式正确的是()。(选择一项) a)static void main(String[] args) b)public void main(String[] args) c)public static void main(String[]s) d)public static void main(String[] args) 2)给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项) a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 3)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。(选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 5) 在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型(选择一项) a)jFrame.setLayout(new FlowLayout() ); b) jFrame.addLayout(new FlowLayout() ) c)jFrame.setFlowLayout() d)jFrame.addFlowLayout() 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; s.concat(“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList b) HashSet c) HashMap d) LinkedList

最新java基础面试题(答案)

1 1、如下哪些不是java的关键字? 2 A)const B)NULL C) false D)this E) native 3 答:B 4 2、关于垃圾收集的哪些叙述是对的 5 A)程序开发者必须自己创建一个线程进行内存释放的工作 6 B)垃圾收集将检查并释放不在使用的内存 7 C)垃圾收集允许程序开发者明确指定并立即释放该内存 8 D)垃圾收集能够在期望的时间释放被java对象使用的内存 9 答:B 10 3、已知表达式 int m [ ] = {0,1,2,3,4,5,6};下面哪个表达式11 的值与数组下标量总数相等? 12 A)m.length() B)m.length C)m.length()+1 D)m.length-1 13 答:D 14 4、已知如下代码: public class Test { long a[] = new long [10]; public 15 static void main(String arg[] ){ System.out.print(a[6]); } } 请问哪个16 语句是正确的? 17 A)Output is null. B)Output is 0 C)When compile, some error will 18 occur. 19 D)When running, some error will occur.

20 答:C 21 5、已知如下代码: public class Test { public static void main(String 22 arg[] ) { int i = 5; do{ System.out.print(i); }while(--i>5); 23 System.out.print(“finished”); } } 执行后的输出是什么? 24 A)5 B)4 C)6 D)finished 25 答:AD 26 6、已知如下代码: 27 switch (m) { 28 case 0: System.out.print(“Condition 0”); 29 case 1: System.out.print(“Condition 1”); 30 case 2: System.out.print(“Condition 2”); 31 case 3: System.out.print(“Condition 3”); default: 32 System.out.print(“Other Condition ”); } 当m的值为什么时能输出33 “Condition 2” 34 A)0 B)1 C)2 D)3 E) 4 F)None 35 答:ABC 36 18、下面的哪些声明是合法的? 37 A)long 1 = 4990 B)int i = 4L C)float f =1.1 D)double d = 34.4 38 答:AD

2019最新Java面试题,常见面试题及答案汇总

ava最新常见面试题+ 答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。 适宜阅读人群 需要面试的初/中/高级java 程序员 想要查漏补缺的人 想要不断完善和扩充自己java 技术栈的人 java 面试官 具体面试题 下面一起来看208 道面试题,具体的内容。 一、Java 基础 1.JDK 和JRE 有什么区别? 2.== 和equals 的区别是什么? 3.两个对象的hashCode()相同,则equals()也一定为true,对吗? 4.final 在java 中有什么作用? 5.java 中的Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用final 修饰吗?

14.接口和抽象类有什么区别? 15.java 中IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和Hashtable 有什么区别? 22.如何决定使用HashMap 还是TreeMap? 23.说一下HashMap 的实现原理? 24.说一下HashSet 的实现原理? 25.ArrayList 和LinkedList 的区别是什么? 26.如何实现数组和List 之间的转换? 27.ArrayList 和Vector 的区别是什么? 28.Array 和ArrayList 有何区别? 29.在Queue 中poll()和remove()有什么区别? 30.哪些集合类是线程安全的? 31.迭代器Iterator 是什么? 32.Iterator 怎么使用?有什么特点? 33.Iterator 和ListIterator 有什么区别? 34.怎么确保一个集合不能被修改?

Java面试题集(最全版)

目录表 第一章技巧篇 2 介绍自己2 行为2 第二章智力篇 3 微软面试题 3 第三章 Java篇5 Java基础方面--概念 5 Java基础方面—线程编程方面12 Java基础方面—编程 14 第四章 Jsp篇30 第五章 Servlet篇31 第六章应用服务器篇37 第七章 J2EE,MVC篇38 第八章设计模式方面篇40 第九章 Hibernate程序性能优化篇41 Hibernate程序性能优化 45

Hibernate 优化47 Hibernate优化的几点建议51 Hibernate性能优化52 第十章数据库篇55 第一套数据库笔试题及答案 55第二套数据库笔试题及答案 64

第一章技巧篇 介绍自己 1、自我认识 想一矢中的,首先必须认清自我,一定要弄清以下三个问题。你现在是干什么的?你将来要干什么?你过去是干什么的? 这三个问题不是按时间顺序从过去到现在再到将来,而是从现在到将来再到过去。其奥妙在于:如果你被雇用,雇主选中的是现在的你,他希望利用的是将来的你,而这将来又基于你的历史和现状。 所以,第一个问题,你是干什么的?现在是干什么的?回答这个问题,要点是:你是你自己,不是别的什么人。除非你把自己与别人区别开来,在共同点的基础上更强调不同点,否则你绝无可能在众多的应征求职者中夺魁。对于这第一个问题,自我反省

越深,自我鉴定就越成功。 随后,着手回答第二个问题:你将来要干什么?如果你申请的是一份举足轻重的工作,雇主肯定很关注你对未来的自我设计。你的回答要具体,合理,并符合你现在的身份,要有一个更别致的风格。 然后,再着手回答最后一个问题:你过去是干什么的?你的过去当然都在履历上已有反映。你在面试中再度回答这个问题时,不可忽略之处是:不要抖落一个与你的将来毫不相干的过去。如果你中途彻底改行,更要在描述你的执着、职业目标的一贯性上下些功夫。要做到这一点,又要忠实于事实和本人,最简单的方法是:找到过去与将来的联系点,收集过去的资料,再按目标主次排列。 用这样的方法,以现在为出发点,以将来为目标,以过去为证实,最重要的是加深了你的自我分析和理解。其实,在面试的时候不一定有机会或者有必要照搬你的大作,但这三个问题的内在联系点一定会体现在自我表述的整体感觉中,使你的形象栩栩如生。 2、投其所好 清楚自己的强项后,便可以开始准备自我介绍的内容:包括工作模式、优点、技能,突出成就、专业知识、学术背景等。

Java基础测试题

Ps:答案已写在上面。希望大家把其他错误选项问题找出来. 第一组: 1.下面哪些是合法的变量名 (DEG) A.2variable .variable2 ._whatavariable $_¥ 2.请问“abcd” instanceof Object返回的值是 (B) A. “abcd” B. true C. false D. String 前面是后面的子类 面说法正确的是:(A) A. 如果源代码中有package语句,则该语句必须放在代码的第一行(不考虑注释和空格); B. 如果源代码中有import语句,则该语句必须放在在代码的第一行(不考虑注释和空格)如果源代码中有main()方法,则该方法必须被放在代码的第一行如果某文件的源代码中定义了一个public 的接口,接口名和文件名可以不同。 4.下面有关方法覆盖说法不正确的是:(B) A. 方法覆盖要求覆盖和被覆盖的方法有相同的名字,参数列以及返

回值 B. 方法覆盖要求覆盖和被覆盖的方法必须具有相同的访问权限; C. 覆盖的方法不能比被覆盖的方法抛出更多的异常 D. 覆盖的方法一定不能是private的 5.一个Java程序运行从上到下的环境次序是(C) A. 操作系统、Java程序、JRE/JVM、硬件 B. JRE/JVM、Java程序、硬件、操作系统 C. Java程序、JRE/JVM、操作系统、硬件 D. Java程序、操作系统、JRE/JVM、硬件 6. 下面选项中哪个关键字可以用来修饰接口中的变量和方法(A) A. static B. private C. synchronized D. protected 7. 下面代码段中:(A) String String=”String”; String B. 不知道 C. 编译出错 D. 运行出错 8. 下面哪种是正确的创建Map集合的方式:(D) A. Map m=new Map();

JAVA面试题(_华为)(答案)

软件开发应试人员考试试题(Java) 姓名:___________ 电话:___________ 以下信息有工作经验人员如实填写,应届毕业不填(时间从毕业参加工作算起) 从事Java开发时间____月熟悉JavaScrip时间____月 熟悉EXT开发时间____月熟悉PDM开发时间____月 熟悉的数据库及时间(如SQLServer 3个月,可多填)___________________ 一、JAVA基础 1、简述你所知道的JA V A修饰符及各自的使用机制?(public、abstract、final、synchronized、super…) public :允许所有客户访问 protected:只能在本包内被该类的子类所使用 private:只允许在本类内使用 abstract:没有提供实现,需要子类提供 static:与整个类相关,与单个对象无关 final:你只能定义一个实体一次,以后不能改变它或继承它。一个final修饰的类不能被子类化,一个final 修饰的方法不能被重写,一个final修饰的变量不能改变其初始值 synchronized:方法获得对对象监控的访问权;如果该方法是static类型的,获得是对类本身的访问权。super:构造器和方法,都用关键字super指向超类,但是用的方法不一样。方法用这个关键字去执行被重载的超类中的方法。 2. String、StringBuffer与StringBuilder之间区别?别简述各自的执行效率? 区别:String 类型和StringBuffer 类型的主要性能区别其实在于String 是不可变的对象, 因此在每次对String 类型进行改变的时候其实都等同于生成了一个新的String 对象,然后将指针指向新的String 对象,所以经常改变内容的字符串最好不要用String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM 的GC 就会开始工作,那速度是一定会相当慢的, 执行速度:三者在执行速度方面的比较:StringBuilder > StringBuffer > String 使用场景:1.如果要操作少量的数据用= String 2.单线程操作字符串缓冲区下操作大量数据= StringBuilder 3.多线程操作字符串缓冲区下操作大量数据= StringBuffer 2、静态变量和实例变量的区别?能在静态方法中调用非静态变量吗? 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。实例变量属于该类的对象,必须产生该类对象,才能调用实例变量 静态方法及变量属于整个类,数据将会被存储在公共区域,非静态方法及变量属于对象 静态方法中无法调用实例变量,而实例方法却可以调用静态变量

java基础面试全集

Java面试题大全 2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补充了数据结构和算法、大型网站技术架构、设计模式、UML、spring MVC等内容并对很多知识点进行了深入的剖析,例如hashCode方法的设计、垃圾收集、并发编程、数据库事务等。当时我甚至希望把面试中经常出现的操作系统、数据库、软件测试等内容也补充进去,但是由于各种原因,最终只整理出了150道面试题。让我欣慰的是,这150道题还是帮助到了很多人,而且在我CSDN 博客上的总访问量超过了5万次,最终还被很多网站和个人以原创的方式转载了。最近一年内,用百度搜索”Java面试”我写的这些东西基本上都排在搜索结果的前5名,这让我觉得”亚历山大”,因为我写的这些东西一旦不准确就可能误导很多人。2014年的时候我又整理了30道题,希望把之前遗漏的面试题和知识点补充上去,但是仍然感觉挂一漏万,而且Java 8问世后很多新的东西又需要去总结和整理。为此,我不止一次的修改了之前的180题,修改到自己已经感觉有些疲惫或者厌烦了。2014年至今,自己带的学生又有很多走上了Java程序员、Java工程师的工作岗位,他们的面试经验也还没来得及跟大家分享,冥冥之中似乎有一股力量在刺激我要重新写一篇《Java面试题全集》,于是这篇文章就诞生了。请不要责备我把那些出现过的内容又写了一次,因为每次写东西就算是重复的内容,我也需要对编程语言和相关技术进行重新思考,不仅字斟句酌更是力求至臻完美,所以请相

JAVA基础面试题-3(答案版)

JAVA语言基础笔试题-3 Question 1 Given: 1. public class Team extends java.util.LinkedList { 2. public void addPlayer(Player p) { 3. add(p); 4. } 5. public void compete(Team opponent) { /* more code here */ } 6. } 7. class Player { /* more code here */ } Which two are true? (Choose two.) A. This code will compile. B. This code demonstrates proper design of an is-a relationship. C. This code demonstrates proper design of a has-a relationship. D. A Java programmer using the Team class could remove Player objects from a Team object. 答案:AD 考点:List接口实现,对象间泛化和关联关系 说明: is a 关系一般用继承来表示,但此题这个继承从逻辑上不是太恰当. Has a 关系一般来说表示某对象体内有其它对象的存在,该对象体现为属性形态,在 UML中叫做关联关系。本题Team中虽然可以保存Player,但并非显式以属性形式存在。 由于LinkedList自带remove方法,可以通过Team.remove(p) 来删除player对象。 Question 2 Which four are true? (Choose four.) A. Has-a relationships should never be encapsulated. B. Has-a relationships should be implemented using inheritance. C. Has-a relationships can be implemented using instance variables. D. Is-a relationships can be implemented using the extends keyword. E. Is-a relationships can be implemented using the implements keyword. F. The relationship between Movie and Actress is an example of an is-a relationship. G. An array or a collection can be used to implement a one-to-many has-a relationship. 答案:CDEG 考点:集合类型,对象间泛化和关联关系的理解 Has a 关系一般表示为一个类拥有一个属性,属性被封装是常见的事情。 Is a 关系一般用继承来表示,子类体内拥有父类部分。 接口的实现,也适用于is a 关系来理解,因为接口从本质来说,也属于类的形态。

Java基础面试题

1.下面能够得到文件“file.txt”的父路径的是: A.String name= File.getParentName(“file.txt”); B.String name= (new File(“file.txt”)).getParent(); C.String name = (new File(“file.txt”)).getParentName(); D.String name= (new File(“file.txt”)).getParentFile(); 2.在Java中,要创建一个新目录,要使用的类的实例是: A.File B.FileOutputStrean C.PrintWriter D.Dir 3.题目代码的功能为:在d:创建一个文件“test.txt”,并向文件写入“HelloWorld”,然后删除文件。 public static void main(String[] args) { File file = new File("d:\\", "file.txt"); try { <填入代码> } catch (Exception e) { e.printStackTrace(); } } A. BufferedWriter bw = new BufferedWriter(new FileWriter(file)); bw.write("HelloWorld"); bw.close(); if (file.exists()) { file.delete(); } B. BufferedWriter bw = new BufferedWriter(new FileWriter(file)); bw.write("HelloWorld");

JAVA基础面试题-2-答案版

JAVA语言基础笔试题-2 Question 1 Given: 11.classA { 12. public void process() { System.out.print(“A “)} } 13. class B extends A { 14. public void process() throws RuntimeException { 15. super.process(); 16. if (true) throw new RuntimeException(); 17. System.out.print(“B”) }} 18. public static void main(String[] args) { 19. try { ((A)new B()).process(); } 20. catch (Exception e) { System.out.print(“Exception “)} 21. } What is the result? A. Exception B. A Exception C. A Exception B D. A B Exception E. Compilation fails because of an error in line 14. F. Compilation fails because of an error in line 19. 答案:B 考点:方法的重写(重写方法异常抛出部分的理解) 多态 异常处理 说明: 子类重写父类方法,不能抛出比父类方法更多的异常,但此处子类重写方法声明抛出了RuntimeException,不算多抛,算是平抛,是可以的。 RuntimeException是Exception的子类,可以被Exception捕获。 Question 2 Given: 11. static class A { 12. void process() throws Exception { throw new Exception(); } 13. } 14. static class B extends A { 15. void process() { System.out.println(“B”)} 16. } 17. public static void main(String[] args) { 18 .A a=new B(); 19. a.process(); 20.} What is the result? A. B

java基础面试题(答案)

1、如下哪些不是java的关键字? A)const B)NULL C)false D)this E) native 答:B 2、关于垃圾收集的哪些叙述是对的 A)程序开发者必须自己创建一个线程进行内存释放的工作 B)垃圾收集将检查并释放不在使用的内存 C)垃圾收集允许程序开发者明确指定并立即释放该内存 D)垃圾收集能够在期望的时间释放被java对象使用的内存 答:B 3、已知表达式int m [ ] = {0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量总数相等? A)m.length()B)m.length C)m.length()+1D)m.length-1 答:D 4、已知如下代码:public class Test {long a[]=new long [10];public static void main(String arg[] ){ System.out.print(a[6]); } }请问哪个语句是正确的? A)Output is null.B)Output is 0C)When compile, some error will occur.D)When running, some error will occur. 答:C 5、已知如下代码:public class Test { public static void main(String arg[] ) { int i = 5;do{System.out.print(i);}while(--i>5);System.out.print(“finished”);}}执行后的输出是什么? A)5B)4C)6D)finished

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. 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.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译sourcecode时指定 B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件 D.能指定编译结果要置于哪个目录(directory) 答案:BCD 3.下列标识符不合法的有() A.new B.$Usdollars C.1234 D. 答案:ACD 4.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C.intnumber=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 答案:BCD 5.不能用来修饰interface的有()

JAVA基础面试题(经典)

基础知识部分: 1. JDK是什么?JRE是什么? a) 答:JDK:java开发工具包。JRE:java运行时环境。 2. 什么是java的平台无关性? a) 答:Java源文件被编译成字节码的形式,无论在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是java的跨平台性。 3. 在一台电脑上配置java环境,path起什么作用?如何配置? a) 答:path的作用是在DOS环境下,能在任意位置使用JD K目录中bin文件夹中的可执行程序,来编译执行java程序。 b) 在环境变量中找到path变量,把bin文件夹的绝对路径加上即可。

4. 什么样的标识符是合法的? a) 由字母、数字、_和$组成,长度不限。其中字母可以是大写或小写的英文字母,数字为0到9。 b) 标识符的第一个字符不能是数字。 c) 标识符区分大小写。 d) 标识符不能包含空格。 5. Java有几种基本数据类型? a) byte,short,int,long,float,double,char,bool ean 6. 什么是隐式类型转换?什么是显示类型转换? a) 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换。

b) 当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算。 7. &&和&区别,||和|区别? a) &&和||是短路与,短路或,当左边的表达式能判断当前结果,则不判断右边的表达式。 b) 而& 和|则将两边的表达式都运算完毕后,再算结果。 8. break,continue区别? a) break结束所有循环,continue结束当次循环,进入下次循环。 9. 类的命名规则是什么? a) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母。