- 浏览: 80181 次
- 性别:
- 来自: 北京
最新评论
-
boingboi:
请问为什么把th2换成(cs1)之后,th2打印出来的不是 a ...
java线程《三》关于synchronized,对象锁的理解
文章列表
今天 是2015年了,转眼自己也快而立之年了,可关于事业爱情对我而言似乎还遥遥无期,本来程序员的发展就需要一个平静的心态,脚踏实地的去做一件事,但目前的某些状况使我无法调整好状态慢慢来,突然会用有点心急,有点浮躁的心态去做一件事,而这种心态总感觉会让事情做得不是很好。 所以 思考良久还是觉得
一方面坚持脚踏实地,另一方面决定不固步自封,不保守,有机会 就会去闯闯。 2015,一定要好好把握,争取实现自己的愿望,也同时希望老爸老妈身体健康,开开心心。
回头看看2014,决定还是写写,虽然过得不是很好,但需要从这些事情中看到自己的不足,自己的缺陷。
...
2013 个人总结:
工作上:
1.涉及技术:log4j,异常,设计模式,远程调用,httpclinet,webservice,xstl,weblogic服务部署,liunx命令
集群负载均衡共享两套源代码,F5,初步jvm性能优化,jmap查看内存泄露,初步网络层架构
2.独立完成后台+接口服务器开发工作,能力提升一般
反省:
1.工作态度不太端正,认为项目很简单没用心把项目做好,对客户有不耐烦的举动,没有从客户角度出发,
这点很欠缺。以后工作要有加强责任心,坚信付出一定会有回报
2.胆子太小,处理第3方问题做法不成熟,做 ...
eclpise 不能编译
- 博客分类:
- 错误备忘
ps:这段时间做项目时发现ecps 不能即时编译了。 检查了一下 发现问题所在 了
原因是我前段时间在工程中引用了一些jar 包,这些jar包放在我的桌面上了,今天我清理了桌面把jar包干掉了,同时remove掉了工程中的jar包,但是发现工程目录下.classpath文件中还是引用了这个jar包,于是把该引用去掉,顺利解决。
深度解析java异常
- 博客分类:
- java
原文出处:http://www.yeeyan.com/articles/view/2091/976Java开发人员可以做出的最重要的架构性决策之一就是如何使用Java异常模型。Java异常一直以来就是社群中许多争议的靶子。有人争论到,在Java语言中的异常检查已是一场失败的试验。本文将辨析,失败的原因不在于Java异常模型,而在于Java类库的设计者未能充分了解到方法失败的两个基本原因。本文倡导一种对异常条件本质的思考方式,并描述一些有助于设计的模式。最后,本文还将在AOP模型中,作为相互渗透的问题,来讨论异常的处理。当你能正确使用异常时,它们会有极大的好处。本文将帮助你做到这一点。
为何 ...
servlet 实例化深度解析
- 博客分类:
- java
本文转载:http://www.ibm.com/developerworks/cn/java/j-lo-servlet/
Servlet 工作原理解析
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技 ...
Java类加载原理解析
1 基本信息
摘要:
每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对理解java虚拟机的连接模型和java语言的动态性都有很大帮助。
由于关于java类加载的内容较多,所以打算分三篇文章简述一下:
4.2 解决方案
4.2.1 适配器模式来解决
用来解决上述问题的一个合理的解决方案就是适配器模式。那么什么是适配器模式呢?
(1)适配器模式定义
(2)应用适配器模式来解决的思路
仔细分析上面的问题,问 ...
4.1 场景问题
4.1.1 装配电脑的例子
1:旧的硬盘和电源
小李有一台老的台式电脑,硬盘实在是太小了,仅仅40GB,但是除了这个问题外,整机性能还不错,废弃不用太可惜了,于是决定去加装一块新的硬盘。
在装机公司为小李的电脑加装新硬盘的时候,小李也在边上观看,顺便了解点硬件知识。很快的,装机人员把两块硬盘都安装好了,细心的小李发现,这两块硬盘的连接方式是不一样的。
经过装机人员的耐心讲解,小李搞清楚了它们的不同。以前的硬盘是串口的,如图4.1,电脑电源如图4.2,那么连接电源的时候是直接连接。
2:加入新的硬盘
但是现在的新硬盘是并口的,如图4.3, ...
3.3 模式讲解
3.3.1 认识外观模式
(1)外观模式的目的
外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单的使用子系统。
这点要特别注意 ...
3.2 解决方案
3.2.1 外观模式来解决
用来解决上述问题的一个合理的解决方案就是外观模式。那么什么是外观模式呢?
(1)外观模式定义
这里先对两个词进行一下说明,一个是界面,一个是接口。
界面
一提到界面,估计很多朋友的第一反应就是图形界面(GUI)。其实在这里提到的界面,主要指的是从一个组件外部来看这个组件,能够看到什么,这就是这个组件的界面,也就是所说的外观。
比如:你从一个类外部来看这个类,那么这个类的public方法就是这个类的外观,因为你从类外部来看这个类,就能看到这些。
再比如:你从一个模块外部来看这个模块,那么这个模块对外的接口就是这个模块的外 ...
3.1 场景问题
3.1.1 生活中的示例
外观模式在现实生活中的示例很多,比如:组装电脑,通常会有两种方案。
一个方案是去电子市场把自己需要的配件都买回来,然后自己组装,绝对DIY(Do It Yourself)。这个方案好是好,但是需要对各种配件都要比较熟悉,这样才能选择最合适的配件,而且还要考虑配件之间的兼容性。如图3.1所示:
图3.1 客户完全自己组装电脑
另外一个方案,就是到电子市场,找一家专业装机的公司,把具体的要求一讲,然后就等着拿电脑就好了。当然价格会比自己全部DIY贵一些,但综合起来这还算是个不错的选择,估计也是大多数人的选择。如图3.2所示:
...
14.3 模式讲解
14.3.1 认识迭代器模式
(1)迭代器模式的功能
迭代器模式的功能主要在于提供对聚合对象的迭代访问。迭代器就围绕着这个“访问”做文章,延伸出很多的功能来。比如:
以不同的方式遍历聚合对象,比如向前、向后等
对同一个聚合同时进行多个遍历
以不同的遍历策略来遍历聚合,比如是否需要过滤等
多态迭代,含义是:为不同的聚合结构,提供统一的迭代接口,也就是说通过一个迭代接口可以访问不同的聚合结构,这就叫做多态迭代。上面的示例就已经实现了多态迭代,事实上,标准的迭代模式实现基本上都是支持多态迭代的。
但是请注意:多态迭代可能会带来类型安全的问题,可以考虑使用泛 ...
14.2 解决方案
14.2.1 迭代器模式来解决
用来解决上述问题的一个合理的解决方案就是迭代器模式。那么什么是迭代器模式呢?
(1)迭代器模式定义
所谓聚合是:指一组对象的组合结构,比如:Java中的集合、数组等。
(2)应用迭代器模式来解决的思路
仔细分析上面的问题,要以一个统一的方式来访问内部实现不同的聚合对象,那么首先就需要把这个统一的访问方式定义出来,按照这个统一的访问方式定义出来的接口,在迭代器模式中对应的就是Iterator接口。
14.1 场景问题
14.1.1 工资表数据的整合
考虑这样一个实际应用:整合工资表数据。
这个项目的背景是这样的,项目的客户方收购了一家小公司,这家小公司有自己的工资系统,现在需要整合到客户方已有的工资系统上。
客户方已有的工资系统,在内部是采用的List来记录工资列表;而新收购的这家公司的工资系统,在内部是采用的数组来记录工资列表;但是幸运的是,两个系统用来描述工资的数据模型是差不多的。
要整合这两个工资系统的工资数据,当然最简单的方式是考虑直接把新收购的这家公司的工资系统,也改成内部使用List来记录工资列表,但是经过 ...
16.3 模式讲解
16.3.1 认识模板方法模式
(1)模式的功能
模板方法的功能在于固定算法骨架,而让具体算法实现可扩展。
这在实际应用中非常广泛,尤其是在设计框架级功能的时候非常有用。框架定义好了算法的 ...