平时的积累很重要,所以我每隔十天给自己一些小任务,小目标,当有一天小目标做完了,我会考虑花更多的时间,来完成一个大目标,写了几年的代码,我现在不喜欢用写代码的方式去学习,那种情况,只有在工作的时候才会出现,平时,更多的,其实是看书,看优秀代码,以及思考。
第一个十天,我给自己定的目标有四个:
1. 关于 java 的集合类,要有一个明晰的结构,要清楚各自的用法
2.java 桌面应用程序入门,会写 java application
3. 深入学习监听器、定时器、过滤器。
4. spring 当中的重要概念
为什么选这四个呢,跟我当前的工作情况也有一定的关系。现在的项目,突然用到了 spring mvc和spring webflow 这两个东西促使我必须去学习 spring ,关于java应用,我想有的时候可能还是会需要写一些辅助类工具,还是应该要会一点。监听器、定时器、过滤器,这些都是开发中很重要的环节,必须要有一个清晰的认识。集合类应该也是很常见的类,所以就选了这四个,十天的时间来学,还是比较充分的。
下面再详细记录一些笔记
java 集合: 集合分为 Collection 和 Map ,Collection 是一组同类型的对象的集合,而 Map是以键值对来进行存储的集合。Collection 分为List 和 Set ,List和 Set的区别在于 List是有序的,而Set不是,List允许重复的元素,而 Set 不是。
List 派生了 LinkedList ArrayList Vector 而 Vector又派生了 Stack , 他们之间的区别在于 LinkedList可被当做堆栈、队列或是双向队列,非同步;ArrayList实现了可变长度的数组,非同步;Vector类似ArrayList,但它是同步的。Stack 继承Vector实现一个后进先出的堆栈。
Map 派生了 HashMap 、HashTable、WeakHashMap, HashTable 是同步的,不允许空元素。HashMap 是非同步的,并且允许有null 。WeakHashMap是一个改进后的HashMap ,可以对key进行“弱引用”, 对于不需要使用的key可以进行垃圾回收。
java桌面应用,我看了一个图书管理系统,然后自己写了一个简单的小界面,基本上已经可以构建一个app了。已了解了JWindow JFrame JPanel JMenuBar 等控件的使用,并且通过自己写配置来控制菜单的展示。其他的部分还需要再进一步探索和研究。
监听器、定时器、过滤器
监听器,主要用来监听一些过程处理,web app中主要可以监听servletContext 、HttpSession、servletRequest对象以及 servletContextAttribute、HttpSessionAttribute、servletRequestAttribute对象
定时器 可以使用Timer 和 TimerTask 也可以用ScheduledExecutorService 还可以使用 quartz 框架 和配置cron来实现。
过滤器:java web 的servlet中对资源访问权限进行过滤,通过改写 dofilter 方法来实现业务逻辑
Spring 重要概念
重点:1 AOP 面向切面编程,通过实例,AOP可以指定切点和切面,通过正则表达式匹配,来达到在同类方法的前后注入相同代码的目的,从立体的感觉来说,是在上层或者下层切面植入代码段。
2 IOC 可以理解为通过工厂模式生成代理类,而这些代理类由Spring容器来管理,把类的管理交给了容器,而不需要人为的去管理类。
3 Spring 注解,这部分暂不解释,下一步再深入研究。
这里四点说得都比较模糊,对于新手来说可能还不能理解。今后我会找机会一点点详细解释。这里是这段时间学习内容的总结,主要针对我自己,记录一些笔记,也希望能够帮助你去理解一些概念,如果有不对的请大家多指正,谢谢!
下一节 我将学习
1.JSP JSLT 前端技术
2.关于 MVC 以及struts1 struts2 springMVC 的实现方式和差异
3.spring 注解
4.多线程开发
5. 深入spring
6.加密算法
有兴趣的朋友,敬请关注,谢谢大家!