1.简述Java语言的主要特点。 答:简单性、面向对象、网络适用性、健壮性、安全性、平台无关性、可移植性、解释性、高性能、多线程、动态性、丰富的类库、嵌入浏览器运行。 2.简述Java程序的类型、区别、用途和跨操作系统平台运行的原理.。 答:类型:①Java应用程序(Java Application)②Java小应用程序(Java Applet) 区别:①Java应用程序(Java Application)是完整的程序,需要独立的解释器来运行。 ②Java小应用程序(Java Applet)是嵌入在HTML中编写的Web页面中的非独立程序,由Web浏览器内部包含的Java解释器来解释执行。 用途:①Java Application的用途:是面向对象的独立运行的程序语言,具有与其它语言相同的特性。同时还具有自己独立的特性。 ②Java Applet的用途:可代替如JavaScript等脚本语言,不仅使Web页具有与用户交互能力, 且更加安全可靠。 跨平台运行原理:因为它是一种解释型语言,编译后的代码为字节代码,到了运行时,才由Java虚拟机解释为可执行的机器码。 由于Java虚拟机屏蔽了一些与平台相关的内容,所以编译后的Java程序能跨操作系统平台运行。 3.简述Java程序的框架结构。 答:Java程序由一个或多个类组成,但其中必须有一个公有类即主类,而且源代码文件(.java文件)必须与这个公有类 同名。 Java的类可以由一个或多个方法组成。 Java Application中,主类必须包含main()方法,它是程序的入口。 Jjava Applet中,其主类是系统类Applet的子类。 4.简述Java虚拟机的执行过程,说明编译后的Java程序为什么不能直接运行。 答:执行过程:①代码的载入,指载入字节码.class文件。 ②代码的校验,指安全性与可靠性校验。 ③代码的执行,指由虚拟机解释执行字节码.class文件。 编译后的Java程序不是可执行的二进制代码,而是一种字节码,需要Java虚拟机解释执行,因此 编译后的Java程序不能直接运行。 5.简述抽象类、抽象方法的概念及特点。 答:abstract声明的类和方法叫抽象类和抽象方法。 抽象类不能实例化一个对象,它只能被继承。一个抽象类中可以含有抽象方法。 抽象方法是没有方法体的方法,是不能实现的方法,因此抽象方法只能出现在抽象类中。 一个抽象类中不一定含有抽象方法,但含有抽象方法的类一定是抽象类。 6.简述Java中字符串类的概念。 答:Java中的字符串是作为一种类来处理的。 java.lang有两个字符串类String和StringBuffer。 String类用于处理创建后不再改变的字符串,而StringBuffer类用于处理变长字符串。 String和StringBuffer类都是final类,安全可靠。 String和StringBuffer类都可自动捕获异常,提高了程序的健壮性。 Java把字符串定义为类的好处 ①在任何系统平台上都能保证字符串操作的一致性,特别适用于网络环境。 ②String和StringBuffer都是最终类,安全可靠 ③可自动捕获异常,提高了程序的健壮性 7.简述Java中构造方法的概念及特点。 答:构造方法:构造方法是一种特殊的方法,用于初始化对象。 特点:①构造方法与类同名,可以有参数 ,也可无参数。 ②构造方法没有返回值,在方法前也不需要写void。 ③创建对象时,系统自动调用构造方法。 ④用户在程序中不能直接调用构造方法,只能通过new操作符调用。 ⑤一个类可以有多个同名构造方法,但参数必须不同。所谓参数不同是指: ⑥类中可以不定义构造方法,此时Java提供一个默认的无参数构造方法 8.简述Java中包的概念,Java系统提供了哪些常用包及使用包的方法。 答:包是Java提供的一种区别类名空间的机制,是类的组织方式,一个包对应Windows中的一个文件夹,包中还可以有包,称为包的等级。包可以使创建的类按层次和规律分门别类存放,便于查找和使用。 Java系统提供的常用包有:java.lang、java.util、java.io、java.net、java.awt、java.applet等。 包的使用有三种方式: ①在要引用的类名前带上包名作为修饰符 ②在文件开头使用import引用包中的类 ③在文件前使用import引用整个包 9.简述Java中接口的概念及接口的性质? 答:Java语言规定,类只能实现单继承,但接口可以实现多重继承。接口中定义的方法都是抽象方法,定义的所有域都是常量。 因此接口可以看作是没有实现的方法和常量的集合。使用接口主要是解决Java语言不支持多重继承的问题。 性质:①接口不提供代码重用性。因为接口中的方法都是没有实现的方法,因此所有的方法体都要自己编写。 ②接口可以通过多继承进行扩展。 ③接口不能升级,即提供给用户的接口不能再改变。 10.简述Java中异常的概念,自定义异常类的方法及如何抛出自定义异常。 答:Java程序在运行中遇到非致命性错误时,通过某种修改可以继续运行,称这类错误为异常。 当异常发生时,Java语言可通过异常处理机制使程序继续运行。 创建一个自定义异常类: <class><自定义异常类名><extends><Exception>{…} 可使用三种方法抛出自定义异常: ①使用try-catch-finally语句,try子句中使用throw new抛出异常并捕获异常,在catch和finally子句中 给出异常处理代码。 ②使用throw语句在声明方法的同时声明抛出异常的类型。 ③使用throw new语句直接抛出异常。 11.简述Java Applet的工作原理及生命周期的划分。 答:Applet是一种特殊的Java程序,经过编译后被嵌入到HTML中并由Web浏览器内置的Java解释器执行。 程序从运行到结束的过程称为程序的生命周期,Applet的生命周期与浏览器相关,共有四个阶段: ①初始化阶段,此时使用init方法初始化Applet对象。 ②开始运行阶段,此时使用start方法启动Applet线程运行。 ③停止运行阶段,此时使用stop方法停止Applet线程运行。 ④清除阶段,在浏览器关闭页面窗口时,使用destroy方法销毁Applet对象。 12.简述Java虚拟机中垃圾回收器(GC)的工作方式。 答:垃圾回收器在后台运行,负责释放不用对象。 1)GC周期性工作,因此垃圾(超出作用域的对象)可能存在很长时间,我们无法知道对象何时被清除。 2)GC只在heap空间紧张时才投入工作,如果heap空间非常多,GC可能永远不工作。 这是因为GC作为一个线程,要有系统消耗,只有heap空间紧张时才投入工作,可以提高系统效率。 13.简述Java多态性的概念,隐藏、覆盖和重载的概念及使用时应注意的问题。 答:多态性:在一个类中可以定义多个同名方法,有静态多态性和动态多态性。 隐藏:子类重新定义了父类中的同名成员变量。被隐藏的父类成员变量在子类中仍然占有存储空间。 覆盖:子类重新定义了父类的同名成员方法,要求方法名、参数和返回类型都相同。与隐藏不同,此时子类方法将替换掉同名的父类方法,清除父类方法在子类中占有的空间。 重载:在同一个类中定义多个同名但参数不同的方法,参数不同是指个数、类型或顺序不同。 注意事项: 不能覆盖父类的static方法和final方法。 可以隐藏父类的static方法,即在子类中声明同名static方法。 非Static方法不能隐藏,只能覆盖。 子类必须覆盖父类的abstract方法。 14.简述Java线程的状态。 答:①创建(new)状态:又称新生态,当用new操作符创建一个Thread类或其子类对象时,线程处于创建状态,此时线程对象已被实例化。系统已为它分配内存空间等资源,但没有获得CPU时间片。 ②可运行(Runnable)状态:又称就绪态,新创建的线程调用start()方法将线程转换为可运行状态,插入到就绪线程队列。 ③运行中(Running)状态:又称执行态,处于可运行状态的线程一旦获得CPU即进入运行状态。当线程对象被调度执行时自动调用run()方法。 ④挂起(Not Runnable)状态:又称阻塞态、等待态,一个正在执行的线程在某些情况下,被人为挂起或需要执行时间很长的I/O操作时,线程让出CPU进入挂起状态,当引起阻塞的原因消除时才转为就绪态,进入线程就绪队列。 ⑤死亡(Dead)状态:又称消亡态,线程运行结束,释放资源。 15.什么是事件、事件源和事件监听器?简述使用事件监听器进行事件处理的过程。 答:事件:对界面的某种操作,如按键、单击鼠标、鼠标移动等。 事件源:事件的产生者,通常是某一组件,如按钮等。 事件监听器:是某些事件的接口,其中定义了被监听的事件发生时系统要调用的方法。 事件处理过程由下面3步组成: ①为类声明需要的事件监听器接口。 ②给事件源注册一个事件监听器。 ③实现接口声明中事件处理方法。 |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |