java第一阶段测试题答案讲解.doc

上传人:h**** 文档编号:1686164 上传时间:2019-03-11 格式:DOC 页数:12 大小:70KB
下载 相关 举报
java第一阶段测试题答案讲解.doc_第1页
第1页 / 共12页
java第一阶段测试题答案讲解.doc_第2页
第2页 / 共12页
java第一阶段测试题答案讲解.doc_第3页
第3页 / 共12页
java第一阶段测试题答案讲解.doc_第4页
第4页 / 共12页
java第一阶段测试题答案讲解.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、JAVA 基础测试题 -CORE JAVA 部分1在 main(String args)方法内是否可以调用一个非静态方法?答 : main 方 法 是 静 态 方 法 , 不 能 直 接 去 访 问 非 静 态 成 员 ( 成 员 可 以 是 成 员 变 量 或 是 成 员 方 法 )2请简述 java 程序运行的过程答 : .java 程 序 -编 译 -.class-运 行 -显 示 结 果3java 中的控制台输出内容换行方式有几种?答 : 第 一 种 : System.out.println();第 二 种 : System.out.print(“n”);4java 中的注释有哪几种?

2、分别用来注释什么?答 : 有 三 种 注 释 分 别 为 :单 行 注 释 : /常 用 来 注 释 变 量多 行 注 释 : /*用 来 注 释 变 量 , 方 法 , 类*/文 档 注 释 : /*用 来 注 释 变 量 , 方 法 , 类*/5请简述 java 中标识符命名规则.答 : 必 须 是 字 母 , 数 字 , 下 划 线 ,$组 成不 能 以 数 字 开 头 ;不 能 是 java 中 的 保 留 字 ,最 好 见 名 知 义6请举例说明 Scanner 这个类的常用方法答 : next() nextLine() nextInt() nextFloat() nextDoubl

3、e() hasNextInt()7java 中的数据类型分为哪两类?答:数据类型分八个基础数据类型(byte,short,int ,long ,float,double,char,boolean)和引用数据类型(包括类,接口和数组)8java 中全局变量和局部变量的区别?答:位置的区别:java 中全局变量就是类中的属性,而局部变量是方法中或代码块中定义的变量;初始值不一样:全局变量不赋值,系统会给默认值,也不会报错,而局变部量必须要赋初始值;作用域不一样:全局变量在整个类所有方法中可以访问,局部变量只能在定义它的那一对括号中才可以访问9同一个文件里是否可以有两个 public 类?答:不可能

4、,一个 java 文件中只能有一个类是 public 的,而必须是 public 的类才可以作为 java 文件的类名.10 方法名是否可以与构造器的名字相同?答:可以。11 初始化了一个没有 run()方法的线程类,是否会出错?答:不会出错第一种方法:直接继承 Thread 类。public class Testpublic static void main(String args)ThreadClass t = new ThreadClass();t.start();System.out.println(“end“);/输出“end”class ThreadClass extends Th

5、read /Thread 类已经实现了空的 run()方法。第二种方法:实现 Runnable 接口public class Testpublic 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 接口中的抽象方法。S

6、ystem.out.println(“Threads“);12 局部内部类是否可以访问非 final 变量?答案:不能访问局部的,可以访问成员变量(全局的) 。class Outprivate String name = “out.name“;void print()final String work = “out.local.work“;/若不是 final 的则不能被 Animal 使用.int age=10;class Animal/定义一个局部内部类.只能在 print()方法中使用./局部类中不能使用外部的非 final 的局部变量.全局的可以 .public void eat()S

7、ystem.out.println(work);/ok/age=20;error not finalSystem.out.println(name);/ok.Animal local = new Animal();local.eat();13 选择语句 case 中,允许使用的值有哪些? 答案:int,short,char,byte(都在 int 范围之内,且是整数),jdk1.7 开始支持String 类型14 Math,String 是不可继承的。 (final 类)答:Math,String 是不可继承的。 (final 类)15 instanceof 的作用答:判断某个对象是否属性某个

8、类或某个接口的对象16 构造方法干什么用?有什么特点答:构造方法在创建对象的时候用来创建类的对象,可以给创建的对象进行初始化.构造方法的特点:a1.构造方法的名字必须和类名相同 a2.没有返回值也不需要void 修鉓.17 =和=的区别答:=表示赋值,=表示判断两个对象是否相等18 一个抽象类与接口的区别答:抽象类要 asbstract 修鉓,抽象类中有抽象方法和非抽象方法,抽象方法必须用 asbstract 修鉓,且没有方法体。接口中是一个 “特殊的类” ,特殊到里面的属性都是最终静态常量,方法都是抽象方法,没有方法体。19 Collection 与 Collections 的区别?答案:C

9、ollection 是一个接口,但 Collections 却是一个辅助类,里面有很多静态的工具方法。而且很有用的。如:reverse(List list);sort(List list, Comparator c)等。Collections 没有实现任何接口。它直接继承了 Object。20 Java 成员变量默认初始化的值。成员变量类型 取值byte-0 short-0 int-0 long-0Lchar-u0000 float-0.0F double-0.0D boolean-false 所有引用类型 - null21 面向对象的三大特性?答案:最基本特征:封装,继承,多态。其他特征:抽

10、象关联,聚合,组合,内聚,耦合22 String 是最基本的数据类型吗? String 和 StringBuffer 的区别?答案:String 不是一最基本的数据类型。STRING 的长度是不可变的,STRINGBUFFER 的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用 StringBuffer,如果最后需要String,那么使用 StringBuffer 的 toString()方法 23 int 和 Integer 有什么区别答案:int 是基本类型。Integer 是引用类型。Integer 可以把 String 转换成int。24 运行时异常与一般

11、异常有何异同? 答案:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。25 说出 ArrayList,Vector, LinkedList 的存储性能和特性 .答案:ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了 synchronized

12、 方法(线程安全) ,通常性能上较ArrayList 差,而 LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 26 数组转换问题。Object object = new Person2;Person person = new Person 3;person = (Person )object;/可以转换int i = new int2;long l = new int3;i = (long)l;/不可以转换27 用 socket 通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据S

13、erver.java:源代码import .*;import java.io.*;class Serverpublic Server()BufferedReader br = null;PrintWriter pw = null;tryServerSocket server = new ServerSocket(8888);/建立服务器端Socket socket = server.accept();/监听客户端/得到该连接的输入流br = new BufferedReader(new InputStreamReader(socket.getInputStream();/得到该连接的输出流pw

14、 = new PrintWriter(socket.getOutputStream(),true);/先读后写String data = br.readLine();System.out.println(data);/输出到控制台pw.println(data);/转发给客户端catch(Exception e)e.printStackTrace();finallytry/关闭读写流br.close();pw.close();catch(Exception e)public static void main(String args) Server server = new Server();C

15、lient.java:源代码import .*;import java.io.*;class Clientpublic Client()BufferedReader br = null;PrintWriter pw = null;trySocket socket = new Socket(“localhost“,8888);/与服务器建立连接,服务器要先启/得到 Socket 的输入与输出流br = new BufferedReader(new InputStreamReader(socket.getInputStream();pw = new PrintWriter(socket.getOu

16、tputStream(),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();finallytrybr.close();pw.close();catch(Exception e)public static void main(String args) Client c = new Client();28 谈谈

17、 final, finally, finalize 的区别。答案:final 用于声明属性,方法和类,分别表示属性不可变,注意:如果是基本类型说明变量本身不能改变,如果是引用类型,说明它不能指向其他的对象了。但对象还是可以改变的。方法不可覆盖,类不可继承。finally 是异常处理语句结构的一部分,表示无论是否出现异常总是执行。finalize 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。29 HashMap 和 Hashtable 的区别。 答案:HashMap 是 Hashtable 的轻量级实

18、现(非线程安全的实现) ,他们都实现了 Map 接口, 主要区别在于 HashMap 允许空(null)键值(key)与空值(value),由于非线程安全,效率上可能高于 Hashtable,Hashtable 不允许有空(null )键值(key)与空值(value) 。30 GC 是什么? 为什么要有 GC? 答案:GC 是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的 GC 功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java 语言没有提供释放已分配内存

19、的显式操作方法。31 String s = new String(“xyz“);创建了几个 String Object? 答案:两个,一个是对象,一个是对象的引用。32 Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?答案:方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重载 Overload 是一个类中多态性的一种表现,方法名必需相同 ,参数列表必需不同.(长度不同或类型不同),与返回值类型没有关系. 构造器也可以重载.方法名和参数列表都相同,只有返回类型不相同则是方法重复定义.编译出错.

20、 Overloaded 的方法是可以改变返回值的类型。重写 Override 是父类与子类之间多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。33 写一个冒泡排序的程序,实现对一组杂乱无序的数组中数据进行升序排列int num = 3,10,1,33,9,6;int temp =0; /中间变量/外层循环比较轮数for(int i=0;inumj+1)/换位置 temp = numj;numj = numj+1;numj+1 = temp;34

21、 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 答:多线程有两种实现方法,一种是继承 Thread 类,另一种是:实现Runnable 接口 . 同步的实现方面有两种,分别是 synchronized,wait 与notify ,实现方式有同步代码块,同步方法35 编程题: 写一个 Singleton 出来。方式一:醉汉式public class Singletonprivate static Singleton test = new Singleton();/静态的。保留自身的引用。/必须是私有的构造函数private Singleton()public static Si

22、ngleton getInstance()/公共的静态的方法。return test;方式二:懒汉式public class Singletonprivate static Singleton test = null;/静态的。保留自身的引用。/必须是私有的构造函数private Singleton()public static Singleton getInstance()/公共的静态的方法。if(test = null)test = new Singleton();return test;36 说出一些常用的类,包,接口,请各举 5 个答案:常用类-System,ArrayList,Fil

23、eInputStream,Thread,Socket.常用的包-java.io,java.util,java.sql,java.javax.naming,常用接口-Collection,Connection, Cloneable, Comparable, Serializable37 谈谈你所熟悉的设计模式答案:单例模式,工厂模式,代理模式,观察者模式等38 什么是反射?什么地方用反射?常用的反射的类有哪些?答:java 反射:在编译时不确定哪个类被加载,而在程序运行时才加载、探知、使用;动态加载类的对象可以用反射。常用反射的类有:A1.Class 类可获取类和类的成员信息 A2.Field 类可访问类的属性 A3.Method 类可调用类的方法 A4.Constructor 类可调用类的构造方法39 谈谈你熟知的 java 设计原则答:开闭原则,里氏替代原则,接口隔离原则,单一职责,依赖倒置原则等40 多线程有几种实现方式?举例完成一个线程输出 1 到 10,另一个线程输出10 到 1,使两个线程交替执行.注:因为这 4 个线程共享 J,所以线程类要写到内部类中。加线程:每次对 j 加一。减线程:每次对 j 减一。public class TestThreads

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。