[置顶] 关于 Java 程序员的一些入门级面试题

软引用、

软引用 在内存不足时回收

弱引用 在垃圾回收时不管内存是否充足都回收

进程和线程的区别

  1. 一个程序至少一个进程, 一个进程最少一个线程
  2. 进程间相互独立, 同一个进程的各线程共享内存, 某个进程内的线程在其他进程中不可见
  3. 操作系统中, 一般把进程作为分配资源的基本单位, 把线程作为独立运行和独立调度的基本单位

谈谈你对 java 中 关键字 final 的理解

  1. 变量: 一旦初始化, 变量值就不能修改
  2. 方法: 该方法不能被子类重写 ( override )
  3. : 该类不能派生子类
    比如 public final class String extends Object
    关于String 可以参见另一篇博客这里写链接内容

java 中 finally 关键字

finally 常于 trt/catch 语句块配对使用, 即使有异常抛出, 也能确保某段代码一定能执行.

Note:
finally 常用于关闭流资源或者数据库连接等

overload 和 override 的区别

  1. overload 重载, 是指两个方法的名称相同, 但参数类型或者个数不同, 即方法的签名不同

    Note:
    方法的返回值不能作为其签名

  2. override 重写, 是指某个方法与父类的方法拥有相同的名称和函数签名

    Note:
    比如实现某个接口, 需要进行 override 其中的抽象方法

谈谈你对 equal() 和 hashCode() 理解

equal() 相等, hashCode() 必定相同

原因:

java按照hashCode来访问小内存块,所以hashCode必须相等。

HashMap获取一个对象是比较key的hashCode相等和equal为true。

HashMap比较对象时先通过hashcode缩小范围,然后再使用equal方法比较是否相等

但是 hashCode() 相同, 未必 equal() 相等

原因:

比如对象 A 和 对象 B 有 id 和 name, hashCode 按照name 来计算, 但是 equal 按照 id来进行比较. 可能出现 name 相同, id 不同的情况. (公司员工同名同姓的情况). 这时候 hashCode 相同, equal 不同

java interface 接口 成员函数 可以是 private 吗

成员函数只有声明, 没有方法体, 自动都是 public 修饰的 (我们 code 时候 可以省去)

成员变量默认都是静态变量 static final

Collection和Collections的区别

java.util.Collection 和 java.util.Collections

Collection 是接口
The root interface in the collection hierarchy. A collection represents a group of objects,

Collections 里面包含了一些 处理 集合的静态方法
This class consists exclusively of static methods that operate on or return collections.

HashSet, TreeSet 和 LinkedHashSet 的区别

HashSet无序

LinkedHashSet 按照 插入顺序 排序
使用链表维护元素的次序。

TreeSet是SortedSet接口的唯一实现类,有序

TreeSet支持两种排序方式,自然排序 或者 定制排序

Comparable Comparator 区别

java.lang.Comparable 和 java.util.Comparator

从英文名字也可以看出, Comparable是一种 able, 表示该对象可以比较, 是 对象自身的属性

其中要Override的方法 compareTo

compareTo 是 同种对象 之间 比较

Comparator是一个名词, 如果一个对象没有实现 Comparable 时, 就要外部实现 一个 单独的 Comparator 接口, 传递给 sort 方法]

其中要Override的方法 是 compare

compare 像是 外部 对两个对象比较

sort(Object[]), 所有对象都必须实现Comparable接口,它用来确定对象之间的大小关系

sort(Object[], Comparator) 对象不必实现Comparable接口, 各个对象根据 Comparator 确定大小关系

你可能感兴趣的:(java,程序员,面试,计算机,笔试)