Integer i1 = new Integer(97);
Integer i2 = new Integer(97);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
System.out.println("-----------");
Integer i3 = new Integer(197);
Integer i4 = new Integer(197);
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
System.out.println("-----------");
Integer i5 = 97;
Integer i6 = 97;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));
System.out.println("-----------");
Integer i7 = 197;
Integer i8 = 197;
System.out.println(i7 == i8);
System.out.println(i7.equals(i8));
}
方法重写的面试题
Override和Overload的区别?Overload能改变返回值类型吗?
overload可以改变返回值类型,只看参数列表
方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致(或者是子父类)的
方法重载:本类中出现的方法名一样,参数列表不同的方法。与返回值类型无关。
冒泡排序:
相邻元素两两比较,大的往后走,第一次比较完毕后,最大值就在最大索引处。
24 57 80 69 13
第一轮:
比较4次,比较完后,结果是: 24 57 69 13 80
第二轮:
比较3次,比较完后,结果是: 24 57 13 69 80
第三轮:
比较2次,比较完后,结果是: 24 13 57 69 80
第四轮:
比较1次,比较完后,结果是: 13 24 57 69 80
总结;
总共比较了4轮,每轮的比较次数为数组的长度-1-i
int[] arr = {24, 57, 80, 69, 13};
for(int i= 0; i<arr.length-1; i++) {
for(int j=0; j<arr.length-1-i; j++) { //-1是为了防止索引越界,-i是为了提高效率
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
集合体系:
分为单列集合:
顶层接口Collection:
Lsit体系:有序(元素的存,取顺序是一致的)可重复的
ArrayList:底层结构是数组,查询快,增删慢,线程不安全的效率高.
Vector:底层结构是数组,查询快,增删慢,线程安全的效率低.
Linked:底层结构是链表,查询慢,增删快,线程不安全的效率高.
双列集合
set体系:无序(元素的存储是无序的,) 唯一.
HashSet:底层结构是哈希算法.
TreeSet:底层结构是二叉树算法
这是我总结的比较重要的希望大家一起学习一起交流. |