




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章Java 语言概述 2 java 编译器将源文件编译为的字节码文件是机器码 这句话正确 吗 答 不正确 3 java 应用程序的主类必须含有怎样的方法 答 含有 main 方法 4 java 应用程序必须有一个类是 public 类 这句话正确吗 答 不正确 只能有一个 public 类 5 javaApplet 程序的主类必须是 public 类 这句话正确吗 答 正确 因为 javaApplet 主类必须是 Applet 类的子类并且是 public 的类 6 请叙述 java 源程序的命名规则 答 与 public 的类同名 7 源文件生成的字节码文件在运行时都加载到内存中吗 答 非也 动态随需要运行才加载 8 面向对象的程序设计语言有那些基本特征 答 封装 继承 多态性 9 在 Java 程序中有多个类文件时 用 Java 命令应该运行那个类 答 具有 main 方法的类 第二章基本数据类型和数组 4 下列哪些语句是错的 Int x 120 Byte b 120 b x 答 B x 错应为 b byte x 5 下列哪些语句是错的 答 y d 错 应 y float d 6 下列两个语句是等价的吗 Charx 97 Charx a 答 是等价的 7 下列 system out printf 语句输出结果是什么 Inta 97 Byte b1 byte 128 Byte b2 byte 129 System out printf c d d a b1 b2 如果输出语句改为 System out printf d d d a b1 b2 输出什么 答 输出 a 128 127 修改后输出 97 128 127 8 数组是基本数据类型吗 怎样获取数组的长度 答 不是基本数据类型 是复合数据类型 可以通过 数组名 length 的方法获得数组长度 9 假设有两个 int 类型数组 Int a new int 10 Int b new int 8 b a A 0 100 B 0 的值一定是 100 吗 答 一定 因为 a 数组与 b 数组引用相同 10 下列两个语句的作用等价吗 Int a 1 2 3 4 5 6 7 8 Int a new int 8 答 不等价 前者有初值 后者指分配空间 初值数组元素为 0 11 有语句 int a 1 2 3 b 4 5 a b 求 a 0 b 1 为什么 答 a 0 4 b 1 5因为有相同的引用 同指向 b 12 Java 语言使用 编码 每个字符占 字节 byte 位 Unicode216 第三章 运算符 表达式与语句 1 下列语句输出的结果是什么 Int a 100 x y X a Y a System out printf d d d x y a 答 101 101 100 2 下列语句那些有错误 Int x 0 X 5 0 2 Float y 12 5F y 5 0 2 答 x 5 0 2 错 3 下列语句那些有错 Byte x 32 Char c a Int n c x c c x 答 c c x 错 应为 int 类型 4 下列语句正确的是 A 表达式 12 56 34 的值是 true B 表达式 12 56 34 是非法表达式 C 表达式 x y 12 是非法表达式 D 表达式 12 56 34 的值是 13 答 A C 5 对于整数 m m 9 y 100 z 200 Else y 100 z 200 System out printf d d d x y z 输出 10 100 200 8 下列 for 语句输出结果是什么 For int i 1 i 4 i Switch i Case 1 System out printf c a Case 2 System out printf c b Break Case 3 System out printf c c Case 4 System out printf c d Break 输出 a b b c d d 9 下列 System out printf 语句输出的结果是什么 Char a a b c d e For i 0 i a length 2 i char c a i a i a a length i 1 a a length i 1 c System out printf c c c c c a 0 a 1 a 2 a 3 a 4 输出 e d c b a 10 下列 System out printf 语句输出的结果是什么 int a 3 4 1 2 6 for int i 0 i a length i for int j i 1 j a length j if a j a i Intn a j a j a i a i n System out printf d d d d d a 0 a 1 a 2 a 3 a 4 输出 6 1 2 3 4 11 public class Tick public static void main String args int a 3 4 1 2 6 for int i 0 i a length i for int j i 1 j a length j if a j a i intn a j a j a i a i n System out printf d d d d d a 0 a 1 a 2 a 3 a 4 第四章 类与对象 1 在声明类时 类名应遵循哪些习惯 答 首字母大写 望名知意 2 类体内容有哪两种重要成员 答 成员变量 和成员方法 3 实例方法可以操作类变量吗 类方法可以操作实例变量吗 答 实例方法可以操作类变量 而类方法不可以操作实例变量 4 当类的字节码加载到内存时 类变量就一定分配了内存空间吗 答 实例成员变量不分配内存 而类变量一定分配内存 5 类的实例变量在什么时候分配内存 答 声明之后 在用 new 关键字创建实例的时候才分配内存 6 一个类的类变量被该类创建的所有对象共享吗 答 共享 7 不同对象的实例变量分配的内存地址一定不同吗 答 当出现引用赋值语句时两个实例变量的内存地址相同 8 什么叫方法的重载 构造方法可以重载吗 答 方法的重载是指一个类中可以有多个方法具有相同的名字 但这 些方法的参数不同 或者参数的个数不同 或者参数的类型不同 构 造方法可以重载 9 请阐述为什么类方法不能调用实例方法 答 对于类方法在该类加到内存时就分配了相应的入口地址 所以即 使该类未创建对象 也可以通过类名调用类方法 而这时在类对象创 建之前 实例方法还没有入口地址 还不知道一个方法从何处开始执 行 当然不能调用 10 请阐述 为什么类方法中不能操作实例成员变量 答 对于类方法在该类加到内存时就分配了相应的入口地址 所以即 使该类未创建对象 也可以通过类名调用类方法 而这时在类创建之 前 实例成员变量还没有分配内存空间 没内存空间当然无法操作 11 实例方法可以用类名直接调用吗 答 不能 因为实例方法 用 new 创佳对象后才分配入口地址 而类 名 一经声明就分配类名地址 而这时对象创建之前实例方法还没有 入口地址 实例方法表现实例的功能 或改变实例变量 用类调用改 变那个实例的实例变量 表现那个实例的功能 不明确 12 关键字 this 可以出现在构造方法中吗 可以出现在实例方法中 吗 可以出现在类方法中吗 答 可以出现在构造方法中 代表该类构造方法所创造出的对象 可以出现在实例方法中 代表使用该方法的当前对象 This 不能出现在类方法中 因为类方法是通过类名调用的 13 源文件声明编写的类一定在同一个包中吗 答 不一定 当不在同一包中时 可用 import 语句将其所在的包引 入该源文件中 14 import java awt 与 import java awt Button 有什 么不同 答 前者引入了 awt 包中的所有类 后者只引入了 Button 一个类 15 程序中使用了 import java util 程序运行时 是要加载 java util 包中的全部类到内存吗 答 不 只加载本程序用到的类到内存中 因为 java 程序是动态加载 字节码类文件 16 有哪几种访问权限修饰符 说出一种的作用 答 访问权限修饰符有 public private protected Private 作用是只允许本类的对象访问 17 怎样反编译一个类 答 使用SDK提供的反编译器javap exe文件可以实现将字节码文件反 编译为源码文件 可查看源码中public方法和public成员变量的名字 如加入参数 private 则可列出其全部的成员方法和成员变量 如 Javap private java awt Button 则可以列出 Button 类中全部的方法和 成员变量 18 下面程序中那个语句是错的 classA private float weight weight 被修饰为 private 的 float 型变量 public float f float a float b 方法 f 是 public 方法 return a public class B void g Aa newA a weight 23f a f 3 4 答 a weight 23f 错 1 编写一个类 该类创建的对象可以计算等差数列的和 解 class DengCha int start d DengCha DengCha int start int d this start start this d d void setStart int s start s void setD int d this d d int getSum int n int sum 0 i 1 while i 0 root1 b Math sqrt disk 2 a root2 b Math sqrt disk 2 a System out printf 方程的根 f f n root1 root2 else System out printf 方程没有实根 n else System out println 不是一元 2 次方程 public void setCoefficient double a double b double c this a a this b b SquareEquation c c if a 0 boo true else boo false public class ZuoYe4 3 public static void main String args SquareEquation equation1 new SquareEquation 4 5 1 SquareEquation equation2 new SquareEquation 3 5 7 equation1 getRoots equation2 getRoots 4 程序源文件 Example java 如果使用了包语句 例如 package tom jiafei 并且有 c 1000 tom jiafei 的目录结构 并且将源文件编译后得到 的全部字节码文件拷贝到目录 c 1000 tom jiafei 中 问在哪个目录中 运行此文件 运行命令是什么 答 运行程序时必须到 tom jiafei 的上一层目录 1000 中来运行 如 c 1000 java tom jiafei Example 第五章 继承 接口与泛型 1 子类在什么情况下可以继承父类的友好成员 答 父子类在同一包中时子类可以继承父类的友好成员 2 子类通过什么办法 可以隐藏继承的成员变量 答 子类成员变量与父类成员变量同名 3 子类重写继承方法的规则是什么 答 重写隐藏父类的方法需 返回的数据类型相同 参数的个数相同 并且类型相同 如果重写父类的方法后参数的个数或类型不同会出现子类方法的重 载 4 子类的构造方法的第一条语句是什么 答 如果需要调用父类构造方法 则应是用 super 关键词调用父类的 构造方法 5 子类一旦重写了继承的方法 就会隐藏继承的方法 是这样吗 答 不一定 在参数的个数或类型不同时会产生重载 如果只有返回 值的类型不同 将会产生编译错误 5 子类隐藏父类的方法 参数必须 相同并且 相同 答 个数 类型 6 子类重写继承方法时 可以降低方法的权限吗 答 重写继承方法时不能降低访问权限 7 简述关键字 super 的用法 答 1 子类调用父类的构造方法 2 子类对象引用被隐藏了的父类方法 或成员变量 8 假设父类有一个方法 Public double f double x double y return x y 是否允许子类再声明如下的方法 Public float f double x double y return23 答 不允许 9 父类的 final 方法可以被子类重写吗 答 不可以 10 什么类中可以有 abstract 方法 答 被 abstract 修饰的类 接口中也可以有 abstract 方法 11 什么叫做对象的上转型对象 答 用子类的构造方法构造出来的对象 赋值给父类对象 12 什么叫接口回调 答 用实现接口的类创建的对象 赋值给该接口声明的接口变量 13 与类有关的匿名类一定是该类的子类吗 与接口有关的匿名类一 定是实现该接口的一个类吗 答 一定 因为类创建对象时 除了构造方法还有类体 此类体被认 为是该类的一个子类去掉类声明后的类体 即匿名类 匿名类就是一 个子类 与接口的匿名类相同 一定是子类 14 怎样声明一个泛型类 答 我们可以这样声明一个泛型类 classA其中 A 时泛型的名称 E 是其中的泛型 即我们 没有指定 E 是何种类型的数据 它可以是任何对象或接口 但不能是 基本数据类型 15 阅读下列程序 并说明输出结果 class NegativeIntegerException extends Exception Stringmessage public NegativeIntegerException message 方法的参数值不是正整数 public String toString returnmessage class MaxCommonDivisor publicintgetMaxCommonDivisor inta intb throws NegativeIntegerException if a 0 bb int t a a b b t r a b while r 0 a b b r r a b return b class MinCommonMultiple extends MaxCommonDivisor publicintgetMinCommonMultiple inta intb throws NegativeIntegerException if a 0 b 0 throw new NegativeIntegerException int y 0 int x getMaxCommonDivisor a b y a b x return y public class Example public static void main String arg int maxCommonDivisor minCommonMultiple MaxCommonDivisormax new MaxCommonDivisor MinCommonMultiple min new MinCommonMultiple try maxCommonDivisor max getMaxCommonDivisor 18 12 System out println 最 大 公 约 数 maxCommonDivisor minCommonMultiple min getMinCommonMultiple 18 12 System out println 最小公倍数 minCommonMultiple maxCommonDivisor max getMaxCommonDivisor 64 48 System out println 最大公约数 maxCommonDivisor catch NegativeIntegerException e System out println e toString 3 编写一个类要求实现一个接口 该接口有 3 个 abstract 方法 Public abstract void f int x Public abstract void g int x int y Public abstract double h double x 要求在应用程序主类中使用该类创建对象 并使用接口回调调用 方法 f g 和 h 解 interfaceA public abstract void f int x public abstract void g int x int y public abstract double h double x classA1 implementsA public void f int x System out println x public void g int x int y int z x y System out println z public double h double x return x x classA2 implementsA public void f int x System out println Hello x public void g int x int y int z x y System out println z public double h double x return Math sqrt x classA3 implementsA public void f int x System out println 你好 x public void g int x int y double z double x y System out println z public double h double x return 1 x public class ZuoYe5 3 public static void main String args Aa newA1 a f 10 a g 12 20 System out println a h 100 a newA2 a f 10 a g 12 20 System out println a h 100 a newA3 a f 10 a g 12 20 System out println a h 100 利用面向接口编程的方法 编写计算锥形体积的完整程序 注意锥形 的底可以为圆形 矩形 或梯形等 对细节满足开闭原则 4 求下列程序运行结果 classA public double y 11 456789 public void f y y 1 System out printf y 是 double 型的变量 y f n y class B extendsA int y 0 public void g y y 100 System out printf y 是 int 型的变量 y d n y class Example5 3 public static void main String args B b new B b y 200 b g 调用子类新增的方法 b f 调用子类继承的方法 5 求下列程序运行结果 classA int m 0 n 0 long f return m n class B extendsA int m 1 n 1 long f long result 0 super m 10 super n 20 result super f m n return result long g long result 0 result super f return result 2 public class Example5 7 public static void main String args B b new B b m 3 b n 7 long resultOne b g long resultTwo b f long resultThree b g System out println resultOne resultOne System out println resultTwo resultTwo System out println resultThree resultThree 6 即所谓的开闭原则 对 关闭 对 开放 答 修改 扩展 7 编写一个面向抽象的完整程序 求柱形体积 计算方法底 高 但底面积的算法经常要变化 于是对于求底面积可以设一个抽象类 Geometry 柱形面对具有抽象类的 Geometry 设计 最后完成对圆形 底面积的柱形 和梯形底面积的柱形计算体积 8 求下列程序的运行结果 interface Show void show classAimplements Show public void show System out println I love This Game class B implements Show public void show System out println 我喜欢看 NBA class C public void f Show s 接口作为参数 s show public class Example5 13 public static void main String args C c new C c f newA c f new B 答 I love This Game 我喜欢看 NBA 9 写出下面程序的运行结果 public class Example5 18 public static void main String args int n 0 m 0 t 0 try t 9999 m Integer parseInt 8888 n Integer parseInt 12s3a 发生异常 转向 catch System out println 我没有机会输出 catch Exception e System out println 发生异常 n 123 System out println n n m m t t 答 发生异常n 123 m 8888 t 9999 第六章 字符串和正则表达式 1 对于字符串 String S1 new String OK String S2 new String OK 说出下列表达式的值 S1 S2 S1 equals S2 答 1 false 2 true 2 对于字符串 String s1 new String I love you zhht String s2 s1 replaceAll love hate 说出 System out printf s s s1 s2 的结果 结果 I love you zhht I hate you zhht 3 String 类和 StringBuffer 类有何不同 答 String 类创建的字符串对象存储空间是不能修改的 而使用 StringBuffer 类创建的对象是可以修改其字符串序列 即该类 的对象的实体内存空间是可以改变的 便于存放可变字符串 4 对于 StringBuffer 串 StringBuffer str new StringBuffer abcdefg str str delete 2 4 说出 System out println str 的结果 答 abefg 4 为需要删除的下一个字符的下标 5 StringTokenizer 类的主要用途是什么 该类有哪几个重要的方法 答 当我们分析一个字符串并将字符串分解成可被独立使用的单词 时 可以使用 java util 包中的 StringTokenizer 类 可以使用 nextToken 方法逐个获取字符串分析器中的语言符号 单 词 每当获取到一个语言符号 字符串分析器中的负责计数的变量 的值就自动减一 该计数变量的初始值等于字符串中的单词数目 字符串分析器调用 countTokens 方法可以得到计数变量的值 字符串分析器通常用 while 循环来逐个获取语言符号 为了控制循环 我们可以使用 StringTokenizer 类中的 hasMoreTokens 方法 只要计 数的变量的值大于 0 该方法就返回 true 否则返回 false 6 下列 System out printf 语句的输出结果是什么 String s new String we go to school StringTokenizer token new StringTokenizer S String word token nextToken Int n token countTokens System out printf s d word n 答 We 3 7 请说出 Matcher 对象的 find 方法和 lookingAt 方法有什么不同 答 public boolean find 寻找 input 和 pattern 匹配的下一子序列 public boolean lookingAt 判断从 input 的开始位置是否有和 pattern 匹配的子序列 8 正则表达式中的元字符 123 代表什么意思 答 代表 1 2 3 中的任何一个 9 说出与模式 A 125 2 匹配的 4 个字符串 答 A12 A25 A15 A52 10 下列哪些字符串匹配模式 boy w 3 boy111B boy C BoyweoD Boyboybpy 答 C boyweoA boy111 11 有模式 pattern A 1359 求和模式 pattern 相匹配的全部字符串 答 A A1 A3 A5 A9 12 一个正则表达式是含有一些具有 的字符串 这些特殊 字符称作正则表达式中的 答 特殊意义字符 元字符 第七章 常用实用类 1 怎样实例化一个 Calendar 对象 答 Calendar 类在 java util 包中 使用 Calendar 类的 static 方法 getInstance 可以初始化一个日历对象 如 Calendarcalendar Calendar getInstance 2 Calendar 对象调用 set 1949 9 1 设置的年月日分别是多少 答 1949 年 10 月 1 日 3 怎样得到一个 1 100 之间的随机数 答 int randomNumber int Math random 100 1 4 BigInteger 类的常用构造方法是什么 答 可以使用构造方法 public BigInteger String val 5 两个 BigInteger 类对象怎样进行加法运算 答 BigInteger n1 new BigInteger 大整数字符串 n2 new BigInteger 大整数字符串 result null result n1 add n2 6 LinkedList泛型类是一种什么数据结构 答 是一种链表类数据结构 7 对于需要经常查找的数据 应选用 LinkedList还是选用 HashMap 答 选用 HashMap 第八章 线程 1 线程和进程是什么关系 答 线程是比进程更小的执行单位 一个进程在其执行过程中 可以 产生多个线程 形成多条执行线索 每条线索 即每个线程也有它自 身的产生 存在和消亡的过程 也是一个动态的概念 2 线程有几种状态 答 新建状态 运行状态 中断状态 死亡状态 3 引起线程中断的常见原因是什么 答 有 4 种 有 4 种原因的中断 a JVM 将 CPU 资源从当前线程切换给其他线程 使本线程让出 CPU 的使用权处于中断状态 b 线程使用 CPU 资源期间 执行了 sleep int millsecond 方法 c 线程使用 CPU 资源期间 执行了 wait 方法 d 线程使用 CPU 资源期间 执行某个操作进入阻塞状态 比如执 行读 写操作引起阻塞 4 一个线程执行完 run 方法后 进入什么状态 该线程还能再调 用 start 方法吗 答 一个线程执行完 run 方法进入死亡状态 之后还能再调用 start 方法运行 5 线程在什么状态时 调用 isAlive 方法后返回值是 false 答 当线程进入死亡状态后 实体内存被释放 线程仍可以调用方法 isAlive 这时返回的值是 false 线程未调用 start 方法之前 调 用 isAlive 方法返回 false 6 线程调用 interrupt 的作用是什么 答 intertupt 方法经常用来 吵醒 休眠的线程 当一些线程调用 sleep 方法处于休眠状态时 一个使用 CPU 资源的其它线程在执行过 程中 可以让休眠的线程调用 interrupt 方法 吵醒 自己 即导致 休眠的线程发生 InterruptedException 异常 从而结束休眠 重新排队 等待 CPU 资源 8 wait notify notifyAll 的作用分别是什么 答 wait notify 和 notifyAll 都是 Object 类中的 final 方法 被所有的类继承 且不允许重写的方法 当一个线程使用的同步方法中用到某个变量 而此变量又需要其 它线程修改后才能符合本线程的需要 那么可以在同步方法中使用 wait 方法 使用 wait 方法可以中断方法的执行 使本线程等 待 暂时让出 CPU 的使用权 并允许其它线程使用这个同步方法 其它线程如果在使用这个同步方法时不需要等待 那么它使用完这个 同步方法的同时 应当用 notifyAll 方法通知所有的由于使用这个 同步方法而处于等待的线程结束等待 如果使用 notify 方法则只通 知处于等待中的某一个线程结束等待 9 将例子 10 中的 TicketSeller 类中的循环条件 While fiveNumber 1 改写成 If fiveNumber 1 是否合理 理由是什么 答 是合理的 因为此循环只有一种可能作循环体内的语句 10 将例子 10 中的 TicketSeller 类中出现的 Wait 改写成 Thread sleep 2000 从新编译 运行 观察结果 答 sleep 2000 线程到时醒来排队 这期间中断的原因不一定解决 wait 则直到中断原因消失才结束等待 11 什么叫守护线程 答 一个线程调用 void setDaemon boolean on 方法可以将自己设置成一个守护 Daemon 线程 例如 thread setDaemon true 线程默认是非守护线程 非守护线程也称作用户 user 线程 当程序中的所有用户线程都已结束运行时 即使守护线程的 run 方法中还有需要执行的语句 守护线程也立刻结束运行 一般地 用 守护线程做一些不是很严格的工作 线程的随时结束不会产生什么不 良的后果 一个线程必须在运行之前设置自己是否是守护线程 12 对于 thread Runnable target 构造的线程使用同一目标对象的线程 目标对象的成员变量自然成为这些线程 的数据单元 答 共享 第九章输入 输出流 1 如 果 准 备读 取 一 个 文 件 应使 用 FileInputStream 流 还 是 使 用 FileOutp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-重庆-重庆医技工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-北京-北京计算机信息处理员二级技师历年参考题库典型考点含答案解析
- 培训与工作课件应用
- 气凝胶基础知识培训内容课件
- 建筑拆除项目中的工程质量保证措施
- 气体压缩基础知识培训课件
- 养鹅场数字化养殖信息平台建设方案
- 建筑工程项目电气系统安装方案
- 呼吸机相关性肺炎防控措施试题及答案
- 学生宿舍楼外墙粉刷与装饰方案
- 水利工程中常见机电设备的基本知识
- 居家养老服务创新创业项目计划书
- 家具行业常用中英文对照
- 英语四六级词汇汇总(带音标+免费下载)
- 插板机安全操作规程
- 铭复乐IV期临床方案介绍
- GB/T 14153-1993硬质塑料落锤冲击试验方法通则
- 并购贷款业务培训
- 北京大学人民医院-医疗知情同意书汇编
- 建设集团有限公司安全生产管理制度汇编
- 交通信号控制系统检验批质量验收记录表
评论
0/150
提交评论