JAVA常见简答题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.什么是包?为什么要使用包? 4.简述在类的继承关系中,子类可以继承父类的哪些成员,不能继承的有哪些成员。 1.答:① 一个抽象类里可以没有抽象方法,但含有抽象方法的类必定为抽象类。 ② 抽象类不能被实例化为对象,而只能作为其它类的超类,并且必须被继承。 ③ 若某子类继承自一个抽象类,而该子类不是抽象类,则子类需用覆盖的方式来实例化超类中的所有抽象 方法。抽象方法可再与 public、protected 复合使用,但不能与 final、private 和 static 复合使用。 ④ 抽象方法只有方法声明,不能有方法体。 2..答:从本质上讲,接口是一种特殊的抽象类,然而它们又有区别: ①接口只包含常量,而抽象类则不一定。 ②接口中不能有非抽象的方法,但抽象类中可以有。 ③一个类能实现多个接口,但只能有一个父类。 ④接口并不属于继承结构,它实际与继承无关,无关的类可以实现同一个接口。 3.答:包(package)是类的容器。由于 Java 编译器为每个类生成一个字节码文件,且文件名与类名相同, 因此同名的类有可能发生冲突。为了解决这一问题,Java 提供包来管理类名空间。此外一旦创建了一个类, 并想重复地使用它,那么把它放在一个包中将是非常有效的。 4.答:可继承:①父类中公开级的成员;②父类中保护级的成员;③如果子类和父类在同一个包中,则子 类继承父类中缺省的包访问级的成员。 不可继承:④父类中私有级的成员;⑤不在同一包的缺省成员和父类的同名成员。 5.多态 多态:相同类型的变量,调用相同的方法,执行的具体代码却不同的现象称为多态 继承与多态表现形式: 变量隐藏 (属性的不同表现)方法重写(方法的不同表现) 上转型对象(实例的不同表 现) 方法的覆盖 规则:父类和子类方法同名;返回值类型形同;参数类型顺序相同;子类方法的权限不小于父类方法权限; 子类方法只能抛出父类方法声明抛出的异常或异常子类。 (异常应比父类方法更具体)p119 继承关系图 注意:子类只有在能够访问到父类方法时才能对该方法进行重写 函数重载:函数名称相同,函数的参数个数不同或参数类型不同或参数顺序不同 四、异常 1.Error 类和 Exception 类有什么区别? 2.什么是异常?为什么要进行异常处理? 3.简述异常处理的过程。 4.写出下列关键字的意义和运用场合:①final;②finalize;③finally。 1.答:Error 类及 Exception 类是 Throwable 类的两个直接子类。Error 类描述的是内部系统错误,包括动态 链接失败、虚拟机错误等,Java 程序不做处理。Exception 类描述的是程序和外部环境引起的错误,这些错 误能通过程序捕获和处理,Exception 类是 Java 程序中需要大量处理的。 3.答:程序运行时出现错误时,创建异常对象,抛出异常对象,捕获该异常对象并进行处理。 4. 答:final, finally, finalize 的区别如下: final 用于声明属性、方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally 是异常处理语句结构的一部分,表示总是执行。 finalize 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提 供垃圾收集时的其他资源回收,例如关闭文件等。 1.答:异常,是指由于程序运行时发生错误,从而导致程序错误结束。 在进行程序设计时,错误的产生是不可避免的,没有异常处理代码的程序,在运行时发生错误则可能非正 常结束,引起严重问题。因此,Java 给程序员提供了处理运行时错误的功能,称为异常处理。
n = Integer.parseInt(s); // 计算 1 到 n 的累加和 for(int i=1; i<=n; i++) sum += i; // 输出结果 System.out.println("你刚才的输入是:" + n); System.out.println("1 到 n 的累加和是:" + sum); } } 2.import java.io.* ; public class { { int for try { BufferedReader br = new Buffereቤተ መጻሕፍቲ ባይዱReader( // 输入一个整数 new InputStreamReader(System.in)); a[i] = Integer.parseInt(br.readLine( )); } catch ( IOException e ) { } ; for ( i = n-1 ; i >= 0 ; i ―― ) System.out.print(a[i]+" "); System.out.println( ); } } 答:从标准输入(即键盘)读入 10 个整数存入整型数组 a 中,然后逆序输出这 10 个整数。 4. import java.io.*; public class { public static void int int for i , Max , Min ; a[ ] = { 12,67,8,98,23,56,124,55,99,100 }; ( i = 1 ; i < a.length; i ++ ) { if if } System.out.println( Max+" System.out.println( ); } } 答:在数组中查找并输出最大值和最小值 3. 编写一个完整的 Java Applet 程序使用复数类 Complex 验证两个复数 1+2i 和 3+4i 相加产生一个新 的复数 4+6i 。 "+Min ); ( a[i]<Min ) ( a[i]>Max ) Min = a[i]; Max = a[i]; main(String args[ ]){ Class1 Reverse main(String args[ ]) i , n =10 ; ( i = 0 ; i < n ; i ++ ) public static void
五、常用类库 1.Vector 对象的大小与容量之间有什么区别? 2.String 类和 StringBuffer 类的主要区别是什么? 1.答:一个 Vector 对象的大小是包含的 Object 引用的实际数量。而容量是指为 Object 引用分配的存储空间 的数量。 2.答:String 类:用于比较两个字符串,查找和抽取串中的字符或子串,字符串与其他类型的转换等,String 类对象的内容一旦被初始化就不能再改变。StringBuffer 类:用于内容可以改变的字符串,可以将其他各种 类型的数据增加、插入到字符串中,也可以翻转字符串中原来的内容。 七、输入输出流 1.简述读写文本文件的基本步骤。 ①导入输入/输出包;②创建文件对象;③创建读出/写入操作的对象;④数据文件的读/写操作;⑤关闭文 件。 1. 编写一个 Application,接受用户从键盘输入的 10 个整数,并输出这 10 个整数的最大值和最小值。 import java.io.* ; public class abc { public static void main(String args[ ]) { int i , n = 10 , max = 0 , min = 0 , temp = 0; try { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); max = min = Integer.parseInt(br.readLine( )); } catch ( IOException e ) { } ; for ( i = 2 ; i <= n ; i ++ ) { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); temp = Integer.parseInt(br.readLine( )); if (temp > max ) max=temp; if (temp < min) min=temp; } catch ( IOException e ) { } ; } System.out.println("max="+max+"\nmin="+min); } } 1. 编写一个 Application,从键盘输入整数 n,并计算从 1 到 n 的累加和。 import java.io.*; public class Application1 { public static void main(String[] args) { String s = ""; int n, sum = 0; System.out.println("计算从 1 到 n 的累加和。"); System.out.print("请输入 n 的值:"); // 从键盘读入字符串 s try { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); s = br.readLine(); } catch(Exception e) { } // 将字符串 s 转为整型数 n
一、基础知识 1.简述使用文本编辑器和 JDK 创建并运行 Java 应用程序的基本步骤。 2. 对比分析 Java 与其它高级语言的编译和运行过程,说明 Java 具有平台独立性的原因? 3.简述 break 和 continue 语句在使用时的区别? 1、 ①打开文本编辑器输入 Java 源程序; ②保存文件, 文件名为源程序中 public 修饰类的类名, 扩展名为.java; ③打开命令行工具;④编译程序,在命令行输入:javac 源程序中 public 修饰的类名。 2、因为 Java 程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。 然后不同的硬件平台上安装有不同的 Java 虚拟机(JVM),由 JVM 来把字节码再“翻译”成所对应的硬件平 台能够执行的代码。因此对于 Java 编程者来说,不需要考虑硬件平台是什么。所以 Java 可以跨平台。 而 C/C++不可以跨平台的原因就是编译后的代码在特定的硬件上可以直接执行,换个硬件平台这些代码就 不能被执行了。不过正是因为可以直接执行,所以 C/C++程序的执行效率要比 Java 程序高 4. Java 对标识符命名有什么规定? 答:Java 对标识符的命名规定如下: 1) Java 语言的标识符必须由字母、下划线(“_”)或美元符号(“$”)开始,其余字符可以是上述三种符 号或数字(0-9)。Java 语言使用 Unicode 字符集,所以字母包括‘A’-‘Z’ 、 ‘a’-‘z’以及 Unicode 字符 集中序号大于 0xC0 的所有符号。 2) 保留字不能用于标识符如:abstract boolean 等等。 3) 标识符区分大小写。 5. 请列出 Java 主要的基本数据类型。 答:Java 主要的基本数据类型有:布尔型 boolean、字节型 byte、字符型 char、短整型 short、整 型 int、长整型 long、浮点型(单精度型)float、双精度型 double。 二、类和对象 1 1.什么是类?什么是对象?类和对象有何联系? 2.方法的重载和方法的覆盖有什么不同? 3.类变量和实例变量有何区别? 4.Java 的成员变量修饰符有哪几种?其中哪种修饰符限定的范围最大? 5.说明对象的基本概念和主要特征? 1. 答:在面向对象程序设计里,类是定义一个对象的属性和方法的蓝本。对象就是一组变量和相关方法的 集合,其中变量表明对象的状态,方法表明对象所具有的行为。类是对象的模板,对象是类的实例,可以 从一个类中创建许多对象。 2. 答:方法重载,指的是在类中创建多个具有相同名称,但使用不同参数的方法,Java 虚拟机根据传递给 方法的参数个数和类型决定调用哪个重载方法。方法的覆盖指在子类中重新定义父类中已有的方法,对于 重写的方法,运行时系统根据调用该方法的实例的类型来决定选择哪个方法调用。 3.答:由 static 修饰的变量称为类变量,当系统在程序中第一次遇到一个类时,便会拷贝一份所有的类变 量在内存里。然后那些由此类产生的实例便可分享这些类变量。 实例变量指不是用 static 修饰的变量,可供实例方法使用。实例变量会复制于每一个从类产生的实例中。 4. 答:成员变量的修饰符有 public、protected、private、static、final、transient、volatile 七种。Public 修饰 符的限定范围最大。 5.对象是对客观世界实体及其实体关系的抽象。特点: (1)以数据为中心;(2)实现了数据封装; (3)模块 独立性好; (4)对象是主动的; (5)本质上具有并行性。 三、类和对象 2 1.抽象类和抽象方法有什么特点? 2.接口和抽象类有什么区别? 源程序文件名;⑤运行程序,在命令行输入:java