
JAVAOO综和练习题.doc
12页1. 面向对象的特征有哪些?详细描述各自的特点抽象:抽象类不能产生对象,即不被实例化,必须被子类继承; 有抽象方法的类一定为抽象类,但为抽象类的不一定有抽象方法,抽象方法必须被子类重写;多态:相同的行为,不同的实现;1)静态多态:程序在编译时系统就能决定调用那个方法(重载);2)动态多态:在运行期才知道调用哪一个里面的方法(重写、动态绑定);封装:影藏实现细节的过程;1)类的成员变量可为只读或只写;2)类可以对存储在成员变量中的内容有一个整体的控制;3)类的用户不需要知道类是如何存储数据的(important);继承:通过扩展一个已有的类,并继承该类的属性和行为;1)代码的可重用性;2)父类的属性和方法可用于子类;3)子类可以扩展父类的属性和方法;4)使设计应用程序变得更简单;2. Java程序的执行过程是怎样的?*.java编译(*.class文件)---加载 --- 字节码校验 --- 解释并运行(JVM)加载过程:类加载 --- 连接(验证、准备、解析)--- 初始化3. 什么是静态初始化块?什么是实例初始化块?在程序运行时就开始被初始化( static{} ); 实例初始化块相当于构造方法,必须在new 之后才会被初始化( {} );4. 写出main方法的完整定义?static可以写在public前面吗?Public static void main(String [] args){} Static public void main(String [] args){}5. JDK与JRE分别是什么? JDK是Java的开发工具;而JRE是Java的运行环境;6. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?Switch后只能跟整型(int short) 和 byte 的数据;7. Java的数据类型有哪些?基本数据类型(整型:byte 、short、int、long ;浮点型:float、double;字符型:char;布尔型:boolean)、引用数据类型(类:class;接口:interface;数组) ;8. Java引用数据类型有哪些?应用数据类型有:类class 、 接口 interface 、 数组;9. 类变量与成员变量的区别?类变量:局部变量(静态变量);成员变量:即为全局变量(对象的属性);10. 访问修饰符有哪几种?它们之间的区别是什么?Public (所有类均可访问)Protected (该类及其成员的子类,非同包非子类不行)默认 (只有同包中可访问)Private (只有自己这个类可以访问)11. int与Integer的区别?int 是基本数据类型中的整性;Integer 是包装类中的整型;12. 对对象进行比较怎么做?为什么不用“= =”?通过调用equals()方法进行两个对象地址的比较 ; “==”表示 比较 确定的值;13. 接口与抽象类的区别? 接口interface用来被实现,必须重写里面的所有方法,无构造方法;抽象abstract必须被继承;14. this、super的用法与区别?This调用表示 当前对象的调用;Super调用表示 重写父类的构造器,来显示的引用父类继承的成员变量或方法;15. Java中产生对象的方式有哪些?通过调用new 来生成一个新的对象;反射;反序列化serializable;克隆 cloneable;(同步关键字:synchronized)16. 什么是多态?多态的实现包括哪些方面? 多态:相同的行为,不同的实现;有:静态多态(重载)、动态多态(重写)、动态绑定;17. 抽象类和界面的区别? 接口用来被实现,必须重写里面的所有方法;抽象必须被继承;18. 如果父类中某些方法不包含逻辑,需要由子类来重写,应该使用什么关键字来声明此父类? Abstract;19. 构造方法的作用? 初始化当前成员变量;产生对象;20. 构造方法能不能被重写、重载、继承,其修饰符能不能声明为private? 21. 在构造方法中使用super()是调用了什么方法? Super()调用了父类的构造器;22. final、finally、finalize的区别? Final: 修饰类(不能被继承)、修饰属性(不能被修改)、修饰方法(不能被重写); Finally: 用在try.... Catch.....之后,一定会被执行的; Finalize:对象的finaliza()方法,对象被回收之前会调用的方法;23. 请说出System.out.println(Math.round(11.5))的结果?Math.round(-11.5)呢?Round 四舍五入(11.5 = 12) ; floor 向下取整(11.5 = 11);Ceil 向上取整(11.0001 = 12);System.out.println(Math.round(11.5)) 的结果: 12;Math.round(-11.5) 的结果: -11;24. 数组有没有length()这个方法? String有没有length()这个方法? 没有; String 有length()方法 ,表示返回此字符串的长度25. try-catch-finally三个基本块的作用?catch里的代码是干什么 Try块的代码会被保护;当try块中代码发生异常的时候,catch块就会去捕获该异常;Finally块是在最后一定会被执行的代码块;26. 说一下Error这个类。
需要捕获它吗? 不需要;27. java中集合框架的顶层界面是哪个? JCF(JAVA集合框架):collection(list、set)放单一对象的元素 、 map(hashmap、treemap) 放键-值对象的元素;28. 在集合框架中,要实现自定义排序应该实现哪个界面? Set(treeSet) 、 map(treeMap);29. 启动线程调用什么方法? Thread th = new Thread (); Th.start();30. 在类OuterClass里有个内部类InnerClass,将OuterClass编译完成后会生成几个class档,分别是什么? 内部类InnerClass 会生成class(外面类名.door)31. 什么是线程同步?其关键字是什么? 线程同步指:一件事发生后另一件事接着发生;关键字是synchronized;(线程同步有两种:同步方法、同步块;)32. ArrayList与LinkedList的区别是什么? ArraryList指数组结构, LinkedList 指链表结构,33. 举出常用的list类。
哪种情况用哪种好? Arrarylist 数组结构 linklist 链表结构 vector (线程同步,效率低) 如从最后增、删元素 或是 查询元素 时 用 Arrarylist效率高; 如从中间 或 前面增、删元素 时 用 Linklist 效率高; JDK1.2后,线程不安全(异步),但效率高;34. list与set的区别?里面常用的类有哪些? List类中的元素 有序 且 可重复 ;(arrayList linkList Vector) Set 类中的元素 无序(放进的与最终的顺序不同) 且 不可 重复;(hashSet TreeSet)35. Hashtable和HashMap的区别? Hashtable JDK1.0 的集合类,线程同步 (安全,效率低),不允许空键和空值; Hashmap JDK1.2 的集合类,线程不安全,效率高, 允许空键和空值;36. 循环遍历ArrayList的方法有几种?分别是什么? 1)for循环 2)迭代器 Iterator it = list Iterator ( ) ;While(it.hasNext){ } 3) foreach循环;(jdk1.5的访问方法)37. 获取Class对象的方法有几种?分别是什么?对象是 类 所对应的 类模版 产生的;1) 先产生对象,再对象名.getClass();2) 通过类名.class得到类模板对象;3) Class.forName("全限定类名");即全路径:既包名+类名38. Java中的注释有哪些?XML中的注释有哪些?39. 序列化对象要实现哪个界面?serializiable40. 对象的序列化怎么实现的?把一个对象转换成二进制数据输出;(对象的反序列化:把二进制数据还原成/转换成内存中的过程)41. 输入输出流分几种?字节流 字符流 对象流42. TCP/IP协议和UDP协议的区别?Tcp 安全协议,可靠 ,效率低 (不全时会重来回经过三次连接) Udp 不可靠;43. XML的校验技术有几种?分别是什么?描述其各自的特点。
阅读代码,说出其执行结果44.public class MyTest { public int x; static{ System.out.println("父类静态代码块"); } public MyTest(){ System.out.println("父类构造方法"); } public static void main(String[] args) { new My(); new My(); }}class My extends MyTest{ static{ System.out.println("子类静态代码块"); } public My(){ System.out.println("子类构造方法"); }}运行结果 :父类构造方法子类构造方法45.class Person{ public int speak(int sm){ return sm+1; } } class Man extends Person{ // 重载 public int speak(int sm, char c){ return sm+2; } public static void main(String[] args){ Man man=new Man(); System.out.println(man.speak()); } 运行结果: 146.public class TestAry{ public static void main(String args[]){ int[。












