java面试2

2019-01-17  本文已影响0人  Coding_Wolf

1.成员变量和局部变量区别

2.构造方法的作用

主要作用是完成对类对象的初始化工作。

3.构造方法有哪些特性

4.静态方法和实例方法

5.对象的相等与指向他们的引用相等,两者有什么不同?

6.老生常谈的 == 和 equals

  1. ==:是判断两个对象的地址是不是相等。'基本数据类型==比较的是值,引用数据类型==比较的是内存地'
  2. equals:也是判断两个对象是否相等。但一般两种类型:
    1.没有覆盖equals() <==> '=='
    2.覆盖了equals():比较的是内容

7.hashCode()和equals()

  • hashCode(): 获取哈希码,也称为散列码,这个哈希码的作用是确定该对象在哈希表中的索引位置。

为什么要有hashCode():
'我们以HashSet 如何检查重复为例子来说明为什么要有 hashCode
当你把对象加入 HashSet 时,HashSet 会先计算对象的 hashcode 值来判断对象加入的位置,同时也会与其他已经加入的对象的 hashcode 值作比较,如果没有相符的hashcode,HashSet会假设对象没有重复出现。但是如果发现有相同 hashcode 值的对象,这时会调用 equals()方法来检查 hashcode 相等的对象是否真的相同。如果两者相同,HashSet 就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。

结论:

8.程序、线程、进程

  • 程序: 含有指令和数据的文件,被存储在磁盘或其他的数据存储设备中,也就是说程序是静态的代码。
  • 线程: 线程是一个比进程更小的执行单位。
  • 进程: 程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。

9.线程有哪些基本状态?

新建、就绪、运行、阻塞、死亡

10.final关键字

11.异常处理

在以下4种特殊情况下,finally块不会被执行:
1.在finally语句块中发生了异常。
2.在前面的代码中用了System.exit()退出程序。
3.程序所在的线程死亡。
4.关闭CPU。

12.获取键盘输入

'Scanner方法'

 Scanner input = new Scanner(System.in);
 String s  = input.nextLine();
 input.close();

'BufferedReader方法'
 BufferedReader input = new BufferedReader(new
 InputStreamReader(System.in)); 
 String s = input.readLine(); 

2019.1.25集合补充

1.List,Set,Map三者的区别及总结

2.Arraylist与LinkedList 区别

3.ArrayList与Vector区别
Vector类的所有方法都是同步的。可以由两个线程安全地访问一个Vector对象、但是一个线程访问Vector,代码要在同步操作上耗费大量的时间。Arraylist不是同步的,所以在不需要同步时建议使用Arraylist。

4.HashMap和Hashtable的区别

5.HashSet和HashMap区别

6.使用多线程常见的三种方式

上一篇 下一篇

猜你喜欢

热点阅读