44、你所知道的集合类都有哪些?主要方法?
答:最常用的集合类是 List 和 Map 。List 的具体实现包括 ArrayList 和 Vector , 它们是可变大小的列表 , 比较适合构建、存储和操作任何类型对象的元素列表 。List 适用于按数值索引访问元素的情形 。
Map 提供了一个更通用的元素存储方法 。Map 集合类用于存储元素对(称作\"键\"和\"值\") , 其中每个键映射到一个值 。
45、描述一下 JVM 加载 class 文件的原理机制?
答:JVM 中类的装载是由 ClassLoader 和它的子类来实现的Java ClassLoader 是一个重要的Java 运行时系统组件 。 它负责在运行时查找和装入类文件的类 。
46、排序都有哪几种方法?请列举
答:排序的方法有:插入排序(直接插入排序、希尔排序) , 交换排序(冒泡排序、快速排序) , 选择排序(直接选择排序、堆排序) , 归并排序 , 分配排序(箱排序、基数排序)快速排序的伪代码 。
/ /使用快速排序方法对 a[ 0 :n- 1
排序
从 a[ 0 :n- 1
中选择一个元素作为 m i d d l e , 该元素为支点
把余下的元素分割为两段 left 和 r i g h t , 使得 l e f t 中的元素都小于等于支点 , 而 right 中的元素都大于等于支点
递归地使用快速排序方法对 left 进行排序递归地使用快速排序方法对 right 进行排序所得结果为 l e f t + m i d d l e + r i g h t
47、JAVA 语言如何进行异常处理 , 关键字:throwsthrowtrycatchfinally 分别代表什么意义?在 try 块中可以抛出异常吗?
答:Java 通过面向对象的方法进行异常处理 , 把各种不同的异常进行分类 , 并提供了良好的接口 。 在 Java 中 , 每个异常都是一个对象 , 它是 Throwable 类或其它子类的实例 。 当一个方法出现异常后便抛出一个异常对象 , 该对象中包含有异常信息 , 调用这个对象的方法可以捕获到这个异常并进行处理 。 Java 的异常处理是通过 5 个关键词来实现的:try、catch、throw、throws和 finally 。 一般情况下是用 try 来执行一段程序 , 如果出现异常 , 系统会抛出(throws)一个异常 , 这时候你可以通过它的类型来捕捉(catch)它 , 或最后(finally)由缺省处理器来处理 。
用 try 来指定一块预防所有\"异常\"的程序 。 紧跟在 try 程序后面 , 应包含一个 catch 子句来指定你想要捕捉的\"异常\"的类型 。
throw 语句用来明确地抛出一个\"异常\" 。
throws 用来标明一个成员函数可能抛出的各种\"异常\" 。
Finally 为确保一段代码不管发生什么\"异常\"都被执行一段代码 。
可以在一个成员函数调用的外面写一个 try 语句 , 在这个成员函数内部写另一个 try 语句保护其他代码 。 每当遇到一个 try 语句 , \"异常\"的框架就放到堆栈上面 , 直到所有的 try 语句都完成 。
如果下一级的 try 语句没有对某种\"异常\"进行处理 , 堆栈就会展开 , 直到遇到有处理这种\"异常\"的 try 语句 。
48、一个\".java\"源文件中是否可以包括多个类(不是内部类)?有什么限制?
答:可以 。 必须只有一个类名与文件名相同 。
49、java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承 , 请说出他们分别是哪些类?
答:字节流 , 字符流 。 字节流继承于 InputStream OutputStream , 字符流继承于 InputStreamReader OutputStreamWriter 。 在 java.io 包中还有许多其他的流 , 主要是为了提高性能和使用方便 。
50、java 中会存在内存泄漏吗 , 请简单描述 。
答:会 。 自己实现堆载的数据结构时有可能会出现内存泄露 , 可参看 effective java.
51、java 中实现多态的机制是什么?
答:方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现 。 重写 Overriding是父类与子类之间多态性的一种表现 , 重载 Overloading 是一个类中多态性的一种表现 。
52、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收
答:对于 GC 来说 , 当程序员创建对象时 , GC 就开始监控这个对象的地址、大小以及使用情况 。
通常 , GC 采用有向图的方式记录和管理堆(heap)中的所有对象 。 通过这种方式确定哪些对象是\"可达的\" , 哪些对象是\"不可达的\" 。 当 GC 确定一些对象为\"不可达\"时 , GC 就有责任回收这些内存空间 。 可以 。 程序员可以手动执行 System.gc() , 通知 GC 运行 , 但是 Java 语言规范并不保证GC 一定会执行 。
53、静态变量和实例变量的区别?
- Java|2022的屏幕天花板看这里,它们仨绝对有代表性
- 相机|OM System揭晓新款M43旗舰相机OM-1,搭载全新对焦架构、对焦更快
- Java|你知道JDK、JRE与JVM的区别吗
- 三星Galaxy|学习java知道这五个网站就够了
- Java|社区团购“最惨烈”的一年,下一个倒下的会是它吗?
- Java|自从有了这套面试文档后,Java面试路上就像开了挂一样
- Java|金三银四,作为Java程序员的你为什么面试总拿不到高薪?
- spring|我的世界:Mojang迁移又爆问题!账号被盗、购买的JAVA版mc消失?
- Java|从飞行堡垒到“天选姬”,华丽转型背后的秘密
- 三星|Intel透露将在英国建立全新工程团队,预计投入低功耗GPU架构设计