张先生E-mail:[email protected]具有坚韧的意志和持之以恒的决心,具有敏锐的观察力和较强的分析能力。北京西安西城源科技公司
软件工程师2006年8月-2007年8月工作地点:西安项目管理经验某文件管理系统2007年3月 - 2007年6月项目描述:
使用Java语言开发,采用struts+hibernate+spring架构,系统结构成熟,性能良好,运行稳定。
项目中职责:
负责底层核心模块编码工作。熟悉ActionServlet类内部流程,并熟悉如何扩展ActionServlet类功能。某人力资源管理系统2006年11月 - 2007年1月项目描述:
使用Java语言开发,采用struts+hibernate+spring架构,系统结构成熟,性能良好,运行稳定。
项目中职责:
负责一般模块编码工作。能熟练进行业务逻辑的编码工作。中国人民解放军装备指挥技术学院 2004年9月-2006年6月 计算机科学与技术 本科
    
熟悉JVM,能够利用JVM知识对常见技术问题进行分析,确保所开发系统安全,稳定,尽量减少各种隐患。用JVM知识解释一个常见的技术问题     假如当一个用户去点击一个提交按钮后,将产生一个线程,每一个用户去点击这个提交按钮就相当于这个线程多次去调用同一个Java方法,这就相当于每次在Java栈中压入一个新帧,而帧是用来存储参数、局部变量和中间运算结果的,因此,每次方法调用都不会相同,得到的结果,如果保存在对象中将放在堆上,如果保存在类变量中将放在方法区上,此时,无论是句柄池和对象池都属于堆还是实例数据和“指向类数据的指针”放在一起,都是一个对象指针去访问一个堆,再通过被访问的堆中指向类数据的指针去访问类数据,因此,有可能就会出现多线程下访问同一个堆的同步问题,一般采取对象锁机制去解决这样的问题,对象锁就相当于给同一个房子里的十个人只一把钥匙,而任意一个时刻只有一个人才能拥有这把钥匙进入房子,而其他人只能等待直到有钥匙的这个人将钥匙交给了下一人为止,对象锁正是通过这种将时间进行线性控制的方法来解决“多线程下访问同一个堆的同步问题”的,之所以要采用这种排队方式那是因为每当线程调用一个Java方法时虚拟机都会在该线程的Java栈中压入一个新帧,而Java栈只支持出栈和压栈操作。