JAVA基础考题和答案

更新时间:2024-07-09 01:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、作用域public,private,protected,以及不写时的区别 答:区别如下:

作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时默认为friendly

2、ArrayList和Vector的区别,HashMap和Hashtable的区别 答:就ArrayList与Vector主要从二方面来说.

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

二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 就HashMap与HashTable主要从三方面来说。

一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现

二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的

三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

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

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

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

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

5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

答:父类: package test;

public class FatherClass {

public FatherClass() {

System.out.println(\ } } 子类: package test;

import test.FatherClass;

public class ChildClass extends FatherClass {

public ChildClass() {

System.out.println(\ }

public static void main(String[] args) {

FatherClass fc = new FatherClass(); ChildClass cc = new ChildClass(); } }

输出结果:

C:\\>java test.ChildClass FatherClass Create FatherClass Create ChildClass Create

6、内部类的实现方式?

答:示例代码如下: package test;

public class OuterClass {

private class InterClass {

public InterClass() {

System.out.println(\ } }

public OuterClass() {

InterClass ic = new InterClass(); System.out.println(\ }

public static void main(String[] args) {

OuterClass oc = new OuterClass(); } } 输出结果:

C:\\>java test/OuterClass InterClass Create OuterClass Create

7、内部类的实现方式?

再一个例题:

public class OuterClass {

private double d1 = 1.0;//insert code here }

You need to insert an inner class declaration at line 3. Which two inner class declarations are

valid?(Choose two.) A. class InnerOne {

public static double methoda() {return d1;} }

B. public class InnerOne {

static double methoda() {return d1;} }

C. private class InnerOne {

double methoda() {return d1;} }

D. static class InnerOne {

protected double methoda() {return d1;} }

E. abstract class InnerOne {

public abstract double methoda(); } 说明如下:

一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。故 A、B 错

二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。故D错

三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 C 正确 四.答案为C、E

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

答:不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.

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

答:Collection FrameWork如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)

Map提供key到value的映射

10、Java中异常处理机制,事件机制?

11、JAVA中的多态与继承?

12、抽象类与接口?

答:抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。

13、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 如在COLLECTION框架中,实现比较要实现什么样的接口?

答:用插入法进行排序代码如下 package test; import java.util.*; class InsertSort {

ArrayList al;

public InsertSort(int num,int mod) {

al = new ArrayList(num); Random rand = new Random();

System.out.println(\ for (int i=0;i) {

al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1)); System.out.println(\ } }

public void SortIt() {

nteger tempInt; int MaxSize=1; for(int i=1;i )

{

tempInt = (Integer)al.remove(i);

if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue()) {

al.add(MaxSize,tempInt); MaxSize++;

System.out.println(al.toString()); } else {

for (int j=0;j) {

if (((Integer)al.get(j)).intValue()>=tempInt.intValue()) {

al.add(j,tempInt); MaxSize++;

System.out.println(al.toString()); break; } } } }

System.out.println(\ for(int i=0;i) {

System.out.println(\ } }

public static void main(String[] args) {

InsertSort is = new InsertSort(10,100);

is.SortIt(); } }

JAVA类实现序例化的方法是实现java.io.Serializable接口

Collection框架中实现比较要实现Comparable 接口和 Comparator 接口

14、STRING与STRINGBUFFER的区别。

答:STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用

StringBuffer的toString()方法

本文来源:https://www.bwwdw.com/article/2ef.html

Top