已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一部分 Java的类 1 请解释Java语言的跨平台特性 Java的跨平台特性也被称为可移植性 他的意思就是如果用Java语言 编写一个应用 那么就可以在不同平台上运行 而不需要为不同平 台单独运行开发 之所以能实现跨平台的特性 主要得益于Java虚拟 机 JVM JVM解释器在运行Java应用时根据当前平台进行解释 解释成符合当前平台规范的机器码 所以可以实现同样的应用在不 同平台上都能运行 2 请列举JAVA语言的主要特点 JAVA语言有很多特点 主要包括 跨平台性 一个应用可以不经过 修改直接运行到不同的平台上 面向对象 JAVA语言是一门面向 对面的语言 可以使用对象的属性和行为 可以使用面向对象的思 想进行分析设计 并实现整个应用 解释执行JAVA应用时 JVM 中的解释器将解释类文件 生成符合当前平台的字节码 自动回 收 JAVA应用中的垃圾回收是自动进行的 JVM中的后台线程将监视 内存中数据的使用 当内存中的数据不再被引用时 将被作为垃圾 回收 而不需要程序员动手回收 3 请说明一个JAVA类中主要包含哪几个元素 并说明每种元素的作用 JAVA类中主要包含属性 方法 构造方法 块以及内部类 属性用 来定义对象的数据 方法用来定义对象的行为 构造方法可以用来 创建对象 块能够用来在类加载时执行操作或者在每次实例化前执 行通用操作 内部类作为类的一个成员存在 能够访问外部类的属 性和方法 4 请说明构造方法的作用和特征 构造方法的作用是用来创建对象 使用new关键字调用 构造方法的名字必须与类的名字相同 并且大小写敏感 同时构造 方法不能声明返回值类型 可以使用任意一种访问修饰符 但是不 能使用其他修饰符进行修饰 如static final abstract等修饰符都可 以修饰构造方法 5 什么事方法重载 overload 方法重载指的是在一个类中可以声明多个相同名字的方法 而方法 的形式参数有区别 调用这些同名的方法时 JVM会根据实际参数的 不同绑定到不同的方法 6 请列举Java语言中的权限访问修饰符 并说明每种权限的含义 Java语言中有四种权限访问修饰符 即public protected 同包以及 private public表示公共权限 即任何包中都可以访问 protected表示受保护 权限 即同包中可以访问 不同包中的子类可以访问 同包权限是 默认权限 即不显示指明权限修饰符的时候就是同包权限 表示只 有同包中可以访问 private是私有权限 表示只能在本类中访问 7 请列举Java语言中的八种基本数据类型 并说明每种数据类型的含 义及长度 Java语言的八种基本数据类型有 byte字节型 8位长度 short短整 型 16位长度 int整型 32位长度 long长整型 64位长度 float单 精度浮点型 32位长度 double双精度浮点型 64位长度 char字符 型 16位长度 boolean型 表示逻辑值 有true和false两个值 分 别表示真和假 8 什么叫引用类型 引用类型和基本数据类型有什么区别 Java语言中除了基本数据类型之外的类型 都称为引用类型 引用类 型就是类的类型 所有的对象都是引用类型 包括数组对象 引用类型必须使用new调用构造方法进行赋值 引用类型的变量拥有 自己的属性和方法 可以使用圆点调用自己的属性和方法 基本数 据类型直接使用 号进行赋值 且没有自己的属性和方法 往往都在 声明属性或方法时使用 9 对于String对象 可以使用 赋值 也可以使用new关键字赋值 两种 方式有什么区别 使用 赋值不一定每次都创建一个新的字符串 而是从 字符串实例 池 中查找字符串 使用new进行赋值 则每次都创建一个新的字符 串 10 String类是一个 不可变类 请解释 不可变类 的含义 所谓的不可变类 就是当字符串初始化后 就不能够被改变 11 String类和StringBuffer类有什么区别 String类是不可变类 即字符串值一旦初始化后就不可能改变 StringBuffer是可变字符串类 类似String的缓冲区 可以修改字符串 的值 12 StringBuffer和StringBuilder类有什么区别 StringBuffer是线程安全的字符串缓冲 而StringBuilder不是线程安全 的 13 包装器类型包括哪些类 有什么作用 包装类器包括Byte Short Integer Long Float Double Character Boolean等类 主要用来对byte short integer long float double character boolean这八种基本数据类型进行包装 使其成为引用类型 14 请说明Java语言中的值传递规则 基本数据类型传递的是值 引用类型传递的是引用 即虚地址 15 使用static修饰属性或方法后 属性和方法有什么特征 static修饰属性或方法后 属性和方法不在属于某个特定的对象 成 为类对象 被所有此类的实例所共享 在类加载时就被初始化 Static修饰的属性或方法 可以直接使用类名调用 而不用先实例化 对象再调用 16 使用final修饰属性后 属性有什么特征 final修饰属性后 属性就成为一个常量 常量只要被赋值 就不能被 改变 17 请说明操作符 的作用 可以用来比较基本类型或者引用类型 比较基本类型时 用来 比较二进制的值 比较引用类型时 用来比较对象的虚地址 18请说明 Public void setB B b This b b 2 请说明Java语言中数组的基本概念 数组的作用 以及数组的声明 创建方式 数组是相同元素的集合 作为数据容器使用 声明创建一个int型数组 int x new int 3 其中3是数组的长度 该 数组能够存储3个int型变量 3 使用代码 创建一个长度为5的String型数组 并使用增强for循环迭 代数组打印出数组中的元素 String sArray new String 5 For String s sArray System out println s 4 说明Arrays类的作用 Arrays类是java util包中的一个类 类中所有的方法都是static方法 这些方法都是数组对象的工具方法 能够对数组进行处理 如sort方 法可以对数组元素进行排序 5 请使用简单代码展示A类依赖B类的含义 依赖关系指的是一种瞬间的关系 如果A依赖B 一般指的是A类的某 个行为 需要B类对象作为参数 Class A Public void f B b 6 请说明依赖关系和关联关系的区别 依赖关系是一种瞬时关系 A依赖B 指的是A的某个行为的参数是B 的类型 也就是说 A要想实现这个行为 必须依赖B的实例 A关联B 是一种长久的关系 是B作为A的属性存在 只要实例化一 个A的对象 就会为这个A的对象实例化一个B的对象 作为它的属性 使用 可以在A中任何需要使用B的地方使用B 7 继承有什么作用 Java语言中的继承有什么特点 继承主要为了能够重复使用父类中的成员 提高代码的重用率 Java语言中的继承是单继承 也就是说一个类最多只能继承一个父 类 8 什么是方法覆盖 override 并说明方法覆盖与方法重载 overioad 的区别 覆盖是发生在继承关系的子类中 当子类要修改从父类继承的某个 方法的方法体时 就可以在子类中声明一个与父类同名 同参数并 且同返回值类型的方法 这就是方法覆盖 而重载与继承没有关 系 指的是在一个类中可以同时声明多个同名但不同参数的方法 称为重载 9 请说明什么是抽象类 抽象类有什么作用 抽象类是不能实例化的类 使用abstract修饰 抽象类往往用来做父 类使用 定义一些子类的共同属性或行为 10 请说明抽象方法的含义 并说明抽象类与抽象方法的关系 抽象方法是没有办法体的方法 使用abstract修饰 抽象类中不一定 有抽象方法 但是有抽象方法的类一定是抽象类 11 super关键字的两种用法 如super 表示调用父类中的每一参考的构造方法 又如super 10 表示调用父类中的具有一个整型参数的构造方法 第二种用法是在 子类中调用父类中的成员 如super f 意思是调用父类中的f 方 法 12 final类与final方法有什么作用 final类是不能够被继承的类 称为终极类 如String类就是final类 不能有子类 final修饰方法后 是终极方法 不能被子类覆盖 但是 可以被子类继承使用 13 什么是多态函数 多态函数有什么用 多态函数就是参数的类型是某个父类类型 具体为这个参数赋值的 不同以使用该父类的任意子类的对象 使用多态参数 可以使程序 的扩展性更好 即使 的子类方法不需要任何修改 就能接受 子类类型进行处理 14 Object类有什么特点 Object类是多有类的直接或间接的父类 15 Object类中的toString方法有什么用 toString方法可以把对象作为字符串返回 16 Object类中的equals方法和hashCode 方法 Oject类中的equals方法用来比较两个引用值 hashCode用来返回引 用的内地址的十六进制数值 在Set以及Map集合中 判断两个元素 是否重复时 往往需要使用这两个方法 这两个方法往往被子类覆 盖 覆盖的规则是 如果存在x和y两个对象 调用x equals y 返回 true时 那么调用hashCode方法的返回值也该相同 如果x equals y 返回false时 那么调用hashCode方法返回的值可能相同 也可能不 同 17 接口有什么特点 与抽象类有什么区别 口的特点是不能定义变量 而且所有方法都是抽象方法 而抽象类 中可以有变量 也不强制必须有抽象方法 18 类继承父类与类实现接口 有什么区别 类继承父类只是单继承 也就是一个子类最多只有一个父类 而类 实现接口可以多实现 就是一个子类可以同时实现多个接口 并覆 盖所有接口中的所有抽象方法 19 Comparable接口有什么作用 Comparable接口定义了compareTo Object o 方法 可以用来实现 对象的比较逻辑 这个接口常常在其他API中强制使用 用来规范对 象的比较逻辑 第三部分 异常处理 1 什么是异常 异常和错误有什么区别 异常是一些不正常的事件 能够中断程序的正常执行例如才除0计算 就是异常 和错误不同 异常是可以被处理的 而错误往往是不能 够处理的 如内存溢出错误 2 nullPointException是什么异常 什么情况发生该异常 NullPointerExcepiton是空指针异常 当一个引用没哟被赋值 就是一 null值如 果这种情况下 使用该引用调用其属性或者方法 就会发生 NullPointerException异常 3 说明try catch finally语句块的作用 try语句块用来包含可能发生异常的语句 catch块用来捕获异常 finally用来包含必须执行的语句 4 如何使用语句抛出异常 抛出异常后如何处理 使用throw语句就可以抛出异常 如throw new XXXException 抛出 异常时一般情况下会在声明方法处使用throws声明该类型的异常 调用该方法是编译器将提示异常 5 throws 关键字和 throw 关键字有什么区别和联系 throw用来在方法体内抛出异常 而throws用来在方法声明处声明异 常 这两个关键字有着一定的联系 如果一个方法中使用了throw关 键字抛出了异常 那么要么立即用try catch语句进行捕获 要么就是 用throws进行声明 否则将出现编译错误 然而 并不是只有使用了throw关键字之后才能使用throws关键字 语法上 来说 任何一个方法都可以直接使用throws关键字 抽象方法也可 以使用 6 什么是自定义异常类 为什么要自定义异常类 自定义异常类区别于API中的标准异常类 指的是开发人员自己创建 的异常类 只要继承API中某个异常类就可以自定义一个异常类 常 常集成Exception类 自定义异常类主要是为了标记业务逻辑中非正 常事件流 避免与API中的标准异常混淆 第四部分 核心API 1 请画出Java集合框架的主要接口和类的继承关系 2 Collection接口和Map接口分别定义了什么集合类型 有什么区 别 Collection接口是传统的集合接口 可以把单个对象存储进来 而 Map接口是映射接口 存储的是键值对 3 用简单代码演示创建一个泛型类为Customer类的List对象 并使用增 强for循环迭代集合 ArrayList list new ArrayList For Customer c list 4 List和Set集合有什么区别 List实现了列表类型的集合 List中的元素是有序 ordered 的 每 个元素根据放入集合的顺序而对应一个索引值 可以根据这个索引 值返回集合原宿 而Set实现了不重复元素集合 即Set中的元素不能 够重复 重复的元素将无法添加到集合中 5 List接口有哪几个实现类 分别说明其特征 List接口中有以下几个常用实现 1 ArrayList 实现了动态数组的特征 2 LinkedList 实现了链表的数据结构 LinkedList也可以用作栈或者 队列 3 Vector 向量 4 ArrayList Vector类的功能 ArrayList都可以实现 区别在于Vector是 现行同步的 6 Collectioin 和Collections有什么区别 Collection是一个接口的名字 定义了集合类型的共同特征 而 Collections是一个类的名字 是集合类型的工具类 类中定义了大量 的静态方法 能够操作及和对象 7 如何将一个Collection转换成数组 Collection接口中定义了toArray T a 方法来将集合转换为数组 其中T是泛型类型 8 集合的作用 集合是可以存储一批类型不同的对象 针对集合的实现类有很多 作用都是一样的 即存储 传输数据 但存储的数据结构不一样 其速度 安全性也不一样 9 HashMap和TreeMap在性能上有什么样的差别呢 你比较倾向于使 用哪一个 一个平衡树的性能是O logn Java里的TreeMap用一个红黑树来保证 key value的排序 红黑树是平衡二叉树 保证二叉树的平衡性 使 得插入 删除和查找都比较快 时间复杂度都是O log n 不过它没 有HashMap快 HashMap的时间复杂度是O 1 但是TreeMap的优点 在于它里面键值是排过序的 这样就提供了一些其他的很有用的功 能 使用无序的HashSet和HashMap 还是使用有序的TreeSet和 TreeMap 主要取决于你的实际使用场景 一定程度上还和数据的大 小以及运行环境有关 比较实际的一个原因是 如果插入和更新都 比较频繁的话 那么保证元素的有序可以提高快速和频繁查找的性 能 如果对于排序操作 例如产生一个报表合作者运行一个批处理 程序 的要求不是很频繁的话 那么把数据以无序的方式存储 然 后在需要排序的时候用Collections sort 来进行排序 会比用有序的 方式来存储可能会更加高效 这个只是一种可选的方式 没人能给 你一个确切的答案 即使是复杂度的理论 例如O n 成立的前提也 是在n足够大的情况下 只要在n足够小的情况下 就算是O n 的算 法也可能会比O log n 的算法更加高效 另外 一个算法可能在 AMD处理器上的速度比在Intel处理器上快 如果你的系统有交换区 的话 那么你还要考虑磁盘的性能 唯一可以确定的性能测试途径 是用大小合适的数据来测试和衡量程序的性能和内存使用量 在你 所选择的硬件上来测试这两种指标 是最合适的方法 10 什么是Iterator 迭代器是一种设计模式 它是一个对象 它可以遍历并选择序列中 的对象 而开发人员不需要了解该序列的底层结构 迭代器通常被 称为 轻量级 对象 因为创建它的代价小 Java中的Iterator功能比较简单 并且只能单向移动 1 使用方法iterator 要求容器返回一个Iterator 第一次调用Iterator 的next 方法时 它返回序列的第一个元素 注意 iterator 方法是 java lang Iterable接口 被Collection继承 2 使用next 获得序列中的下一个元素 3 使用hasNext 检查序列中是否还有元素 4 使用remove 将迭代器新返回的元素删除 Iterator是Java迭代器最简单的实现 为List设计的ListIterator具有更多 的功能 它可以从两个方向遍历List 也可以从List中插入和删除元 素 11 什么是HaspMap和Map map是一个接口 hashmap是一个实现了map接口的类 接口不能new 12 Java集合框架都有哪些最佳实践呢 如果涉及到堆栈 队列等操作 应该考虑用List 对于需要快速插 入 删除元素 应该使用LinkedList 如果需要快速随机访问元素 应该使用ArrayList 如果程序在单线程环境中 或者访问仅仅在一个线程中进行 考虑 非同步的类 其效率较高 如果多个线程可能同时操作一个类 应 该使用同步的类 在除需要排序时使用TreeSet TreeMap外 都应使用HashSet HashMap 因为他们 的效率更高 要特别注意对哈希表的操作 作为key的对象要正确复写equals和 hashCode方法 容器类仅能持有对象引用 指向对象的指针 而不是将对象信息 copy一份至数列某位置 一旦将对象置入容器内 便损失了该对象 的型别信息 尽量返回接口而非实际的类型 如返回List而非ArrayList 这样如果 以后需要将ArrayList换成LinkedList时 客户端代码不用改变 这就是 针对抽象编程 13 ArrayList和Vector的区别 就ArrayList与Vector主要从二方面来说 一 同步性 Vector 是线程安全的 也就是说是同步的 而 ArrayList 是 线程序不安全的 不是同步的 二 数据增长 当需要增长时 Vector默认增长为原来一培 而 ArrayList 却是原来的一半 14 ArrayList Vector LinkedList的区别 ArrayList Vector 以线性表的方式存储 查 改快 增删慢 Vector 是线程安全 方法是同步方法 ArrayList 是线程不安全 方法是非同步方法 LinkedList 单链表 查 改慢 增删快 15 Map的接口和特点 键名 键值 键名不可以重复 键值可以重复 通过键名取键值 HashMap 线程不安全 Hasttable 线程安全 jsp中的作用域对象 session request application page 属于map这 个体系 16 Collection及Collections的区别 Collection是一个接口的名字 定义了集合类型的共同特征 而 Collections是一个类的名字 是集合类型的工具类 类中定义了大量 的静态方法 能够操作及和对象 17 假设存在文本文件etc doc 请用代码展示将文件按行读出 并打印 输出到控制台 File file new File etc doc try FileReader fr new FileReader File BufferedReader br new BufferedReader fr String line br readLine while line null System out println line Line br readLine catch FileNotFoundException e e printStackTrace catch IOException e e printStackTrace 18 使用java语言如何创建线程对象 请列出常用的两种方法 Java语言中经常使用两种方法创建线程 创建Thread类的子类 在子类中覆盖Thread类的run方法 实现线 程的运行体 只要创建该子类对象就是线程对象 创建Runable接口的实现类 在实现类中覆盖接口中的run方法 实现线程的运行体 使用Thread Runable 构造方法可以创建线程对 象 参数是Runable接口实现类的实例 19 关键字synchronized有什么作用 用简单代码展示synchronized的方 法 synchronized可以将某个代码块或者某个方法进行线程同步 被同步 的代码块在一个时刻只能被一个线程访问 只有当前线程处理结束 后 方能被其他线程访问 例如 public void run for int i 0 i 50 i synchronized this System out println Thread currentThread getName x x X 20 线程之间通信的方法有哪几个 分别起到什么作用 线程通信的方法有三个 在Object类中定义 wait方法 使得线程进入等待状态 notify 方法 随意通知等待池中的某一个线程 notifyAll 方法 通知等待池中所有线程 第五部分 其 他 特 性 1 什么是泛型 泛型有什么作用 2 请声明一个简单的泛型类 说明泛型的作用 3 下述代码是否有编译错误 如果有 请指出错误 ListIs new ArrayList ListIo Is 4 请使用简单代码声明一个枚举类型 并说明枚举的作用 5 假设有一个枚举类型是Grade 使用代码展示遍历该枚举的方 法 6 增强for循环再什么场合使用 用简单代码展现其使用方 法 7 什么是自动装箱 拆箱 使用该特征有哪些注意事项 8 什么是可变参数 用简单代码展示可变参数的使用 9 作用域public private protected 以及不写时的区别 10 创建了几个String Object 14 Math round 11 5 等於多少 Math round 11 5 等於多少 15 Java有没有goto 16 数组有没有length 这个方法 String有没有length 这个方法 17 Overload和Override的区别 Overloaded 的方法是否可以改变 返回值的类型 18 Set 里的元素是不能重复的 那么用什么方法来区分重复与 否呢 是用 还是 equals 它们有何区别 19 给我一个你最常见到的 runtime exception 20 error和exception有什么区别 21 List Set Map是否继承自 Collection接口 22 abstract class和interface 有什么区别 23 abstract的method 是否可同时是static 是否可同时是 native 是否可同时是synchronized 24 接口是否可继承接口 抽象类是否可实现 implements 接口 抽象类是否可继承实体类 concrete class 25 构造器Constructor 是否可被override 26 是否可以继承String类 27 try 里有一个return语句 那么紧跟在这个try后的 finally 里 的 code会不会被执行 什么时候被执行 在return 前还是后 28 用最有效率的方法算出 2乘以8 29 两个对象值相同 x equals y true 但却可有不同的 hash code 这句话对不对 30 当一个对象被当作参数传递到一个方法后 此方法可改变这 个对象的属性 并可返回变化后的结果 那么这里到底是值传递还 是引用传递 31 switch是否能作用在byte 上 是否能作用在long上 是否能 作用在String上 32 ArrayList 和 Vector 的区别 HashMap 和Hashtable的区别 33 char 型变量中能不能存贮一个中文汉字 为什么 34 GC是什么 为什么要有 GC 35 float型float f 3 4是否正确 36 介绍JAVA 中的Collection FrameWork 包括如何写自己的数据 结构 37 抽象类与接口 38 STRING与STRINGBUFFER 的区别 39 谈谈final finally finalize 的区别 40 面向对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿童趣味足浴游戏区企业制定与实施新质生产力战略分析报告
- 2025-2030年木质普通家具行业商业模式创新分析研究报告
- 2025-2030年汽车站保洁服务行业直播电商战略分析研究报告
- 2027届伊春市五营区数学四上期末考试模拟试题含解析
- 绍兴市越城区2026年数学六年级第一学期期末检测模拟试题含解析
- 2026年医生考核题库检测模拟题附完整答案详解(必刷)
- 2026年作业人员安全考核通关题库附参考答案详解(综合题)
- 2026年被别人欺负了怎么办幼儿园
- 2026年肠粉怎么做好吃论文幼儿园
- 2026年幼儿园11的分解组合
- DB61-T5126-2025 陕西省建设工程工程量清单计价标准
- 小升初数学几何专项训练题集
- 粮食公司存粮管理办法
- 维生素E的生理功能
- 反诈培训诈骗知识内容课件
- 房室传导阻滞的健康宣教
- 2025年山东青岛工程职业学院招聘考试笔试试题(含答案)
- DZ/T 0089-1993地质钻探用钻塔技术条件
- 雇佣兵中文合同协议
- 贵州师范学院《人工智能时代的生物基材料前沿》2023-2024学年第二学期期末试卷
- 100以内两位数进位加法退位减法计算题-(直接打印版)
评论
0/150
提交评论