发表于: 2017-07-18 23:06:28
4 1061
【说明】今天主要是看了apache shiro 的一些东西,刚看接触起来还是有点问题的,demo好几个都没有跑起来
一:今日完成
⒈ task1—1 :每天来点面试题【自己总结自己总结自己总结】
(1)LIst 接口有那些实现类,有什么区别,应用场景有什么区别?
有三个 ArrayLIst , LinkedLIst , 还有 Vector
底层数据结构不一样
ArrayList 是 动态数组实现的,
LinkedList 是链表实现的
Vector 和 ArrayLIst 实现方式类似,但是 是线程安全的(也就是有 加锁解锁 的操作,然后就会有额外开销)
对于查找数据和少量的增删改 完全可以用 ArrayLIst,因为数组的查找可以直接根据下标(索引)查找,速度特别快
而 LinkedListt 适合大量的增删改 ,因为是链表数据结构 ,所以数据不需要像数组那样同步移动,只需要修改链表节点的头尾节点即可
而 Vector 就应用比较少了,适合那些对多线程操作要求比较高的,保证线程的同步(同一时刻只有一个线程在操作,线程之间通信有花销)
(2)遍历 Map 的几种方式,以及响应适用场景
有四种
增强 for 循环
for (String key : map.keySet()) {
System.out.println(key+map.get(key));
}
迭代器
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println(entry.getKey() + entry.getValue());
}
entrySet
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + entry.getValue());
}
keySet
Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
String key = iterator.next();
System.out.println(key + map.get(key));
}
知道了有这四种方式之后是不是需要了解一下到底那个速度快点,经常用的又是哪个
网上找了找
发现有人做了测试
增强 for 循环使用方便,但是大数据处理起来会慢点
迭代大概是 for 循环的 1.5 倍
entrySet 比 KeySet 快很多,1.5 倍左右
二:明日计划
明天因为时间充足(or 有限),打算完成
①后台端到端
------------------
②shiro demo
------------------
③了解萝卜多的权限管理模块
------------------
三:疑难问题
四:思考总结
Ⅰ 对自己今天的进度满意吗
------------------一般般
Ⅱ 那些困扰自己的问题所在
------------------shiro 的demo 跑不起来
Ⅲ 暗示自己为明天加油打劲
------------------老大也提建议说多看看权限管理
评论