发表于: 2017-08-10 22:25:18

3 1050


【说明】今天上午有一个电话,问了问基本情况之后就猜到是培训公司,然后就回绝了,之后昨天的那家公司说是要再面试一下,具体情况未知

一:今日完成

想起来了,昨天提问的 是测试用例还有 内存溢出

 1,测试用例

是测试人员根据需求和相关文档做出来的测试覆盖文件

这个可能设计到黑盒测试和白盒测试,按照边界值和一定的覆盖范围 做出足够多的 测试用例,然后验证系统的正确性。

2,内存溢出和内存泄漏是不一样的

内存泄漏是指对象实例在新建和使用完毕后,仍然被引用,没能被垃圾回收释放,一直积累,直到没有剩余
内存可用

内存溢出是指当我们新建一个实力对象时,实例对象所需占用的内存空间大于堆的可用空间。

3,数组和集合的区别

数组只能存储一种数据类型,而集合能存储任意数据能行,不要把集合想得太复杂了,你就把集合看成是一种能装多种数据类型的数组就是了,集合的用法也跟数组差不多

有的集合是有顺序的(自动排序),有的是不可以放重复的。再说数组的长度是固定的,而集合的是动态的

数组 Object[] vs 集合 Collection<Object>
1.Collection 是接口,实现这个接口的类有很多,常用的有 List 接口下的 ArrayList,LinkedList 等;Map 接口下的有 HashMap 等,每个实现都是有最底层的链表、数组或其他实现。
2. 例如 ArrayList 的底层实现就是 Object[]。你可以通过打开 ArrayList 的类去看,有一些精妙的设计,比如 HashMap 的 index 的寻址算法等。
3. 记忆底层实现比较划的来。

int[] m = { 1, 2, 3};
String[] strings = { "aaa", "bbb"};
List<String> list = new ArrayList<String>();
List<Integer> lists = new ArrayList<Integer>();
List<Map<String, Object>> list2 = new ArrayList<Map<String,Object>>();
List<City> listcity = new ArrayList<City>();

4,Collection 和Map集合

1. 从纵向上看,Collection 集合是一个单列集合,Map 是一个双列集合

2. 从横向上看,Collection 一次存入一个值,而 Map 一次存入两个值,一个是键,一个是键所对应的值

总结:

Collection 存入的是单身汉,而 Map 存入的是夫妻

 1. 底层数据结构不尽相同   

  2.List 集合有序可重复,Set 无序不可重复

  3.List 集合取数据方式有三种,而 Set 集合只有一种

5,ArrayList、Vector 的一些区别

ArrayList、Vector 底层数据结构都是数组,都是一个默认长度为 10 的数组,ArrayList 是 50% 增长,而 Vector 是 100% 增长,LinkedList 底层数据结构是一个双向链表

2. 存取方式不尽相同

添加元素方面:ArrayList 和 Vector 只能是从后面追加,而 LinkedList 前后都可以

读取元素方面:三者都可以使用下标循环读取、普通迭代器、列表迭代器读取,但是 Vector 还可以通过枚举来取数据

3. 在数据的增删改查方面的效率不同

ArrayList 集合读取速度稍快,删除和添加速度慢,而 LinkedList 是双向链表数据结构添加、删除速度快,而读取稍慢

4. 安全性不一样

Vector 线程是安全的,而 ArrayList、LinedList 则不行

6,Hashset 和 Treeset 的区别

1. 底层存储的数据结构不同

HashSet 底层用的是 HashMap 哈希表结构存储,而 TreeSet 底层用的是 TreeMap 树结构存储

2. 存储时保证数据唯一性依据不同

HashSet 是通过复写 hashCode() 方法和 equals() 方法来保证的,而 HashSet 通过 Compareable 接口的 compareTo() 方法来保证的

3. 有序性不一样

HashSet 无序,TreeSet 有序

7,HashTable 和HashMap 的区别

不同点:

1. 底层数据结构不尽相同

HashTable 和 HashMap 底层都是哈希表结构,TreeMap 底层是二叉树数据结构

2. 保证元素唯一性依据不一样

HashMap、HashTable 依赖的是元素的 hashCode() 方法和 equals() 方法,而 TreeMap 依赖的是 Comareable 结构的 comparTo() 方法

3. 有序性不一样

HashTable、HashMap 是无序的,TreeMap 是可排序的

8,遍历List接口的几种形式

List 继承自 Collection 接口,又有 ArrayList 和 LinkedList 两种实现类。
ArrayList 使用数组实现,适合读取,但不适合频繁的插入和删除
LinkedList 使用链表实现,适合插入和删除操作,但是不适合读取。

对于 List 接口来说,对于集合元素的遍历有三种方法:
1 使用 list 下标+for 循环的方式;
2 使用 iterator 迭代器迭代;
3 使用增强型 for 循环。

package iterator2;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IteratorTest {

public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> list=new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
System.out.println("----------------for循环输出----------------");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println("----------------iterator方法输出------------------");
Iterator<String> it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println("----------------增强for输出----------------------");
for(String l:list){
System.out.println(l);
}
}

}

------------------

二:明日计划

明天因为时间充足(or 有限),打算完成

①看看智能家居软件的一些东西

------------------

②计划好时间

------------------

再去面试

------------------

三:疑难问题

------------------

四:思考总结

Ⅰ 对自己今天的进度满意吗

------------------一般般

Ⅱ 那些困扰自己的问题所在

------------------生活and工作

Ⅲ 暗示自己为明天加油打劲

------------------Graduation From Abbey

进度: 做完复盘了

禅道:http://task.ptteng.com/zentao/my-task.html



返回列表 返回列表
评论

    分享到