java工程师技术总结.docx
- 文档编号:3353697
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:11
- 大小:25.52KB
java工程师技术总结.docx
《java工程师技术总结.docx》由会员分享,可在线阅读,更多相关《java工程师技术总结.docx(11页珍藏版)》请在冰豆网上搜索。
java工程师技术总结
java工程师技术总结
各位读友大家好,此文档由网络收集而来,欢迎您下载,谢谢
篇一:
研发部java开发工程师2015年工作总结
2015年年度总结
尊敬的领导:
您好!
在2015年11月我很荣幸地进入公司,加入了研发部Java技术开发团队,认识了友善严谨的领导、热心和睦且技术优秀的同事,很是开心。
在这一年里通过自身的努力,不断完善自己的知识结构,向同事虚心请教开发技术上的问题,较快地熟悉了公司采用的技术框架和业务知识。
通过公司日常培训学习和工作积累我对公司业务也有了一定的了解,在各方面也有了进步。
目前在参与项目开发的工作中,我负责XXX功能模块开发。
新年伊始,特向过去的一年2015年工作总结汇报如下:
根据公司的安排,项目的需要,通过在XXX项目开发中的锻炼,我成长了,也认识到了自己的不足之处。
在自身的努力、领导的帮助,团队的合作下,克服重重技术困难,增长了工作经验,收获颇多。
从入公司以来我就开始学习基于代码生成器免费开源的开发框架以及Maven项目管理工具的使用,曾经接触过的框架比较熟悉的有SSH,表现层的实现技术freemaker、JSP。
个人优势就是曾在XXX行业针对XXX业务用SpringMVC框架开发管理系统,缺点是没有用过Activity工作流技术。
Hibernate框架,没有用到过多表关联动态查询和hql查询。
印象较深刻的就是多对多关联表查询需要用到构造函数的方法来查。
新接触的项目中我主要涉及到的开发模块有(具体描述功能模块)XXX等功能。
工作中的经验总结如下:
1.对业务流程的梳理上,最全面的范文参考写作网站代码没有写活,考虑的问题不全面。
后来在讨论时经过同事的指点进行了改造,代码质量和规范才有了明显提高。
2.知识面还不够广博。
在开发中遇到不少以前没学过的技术,一个模块功能中,涉及的技术往往有多种,知识多了,就会灵活变通,以后一定要加强这方面的学习。
3.需要加强总结。
在工作中,发现因为流程或业务需求的问题而不知道如何下手的情况有点多,包括错误与缺漏还有当时设计考虑不到位的地方,对于这块的控制力度显然不够。
平时总是在开发,但说到底对业务很熟悉才是项目很好完成的前提,所以要到遇到过的问题需要进行总结,以便以后能快速定位和解决。
今后的计划:
通过今年的实践和学习,明年又是一个新的开始,立足当前的优缺点,肩负起应有的工作和性质。
为公司明年的发展尽自己最大的努力,也希望自己明年有更大的收获。
随着大数据时代的到来,数据已渗透到各行各业领域,希望明年可以学习到云数据库方面的知识技能。
在当前已有关系型数据库方面经验的基础上提升自己。
明年自己给自己定的目标是,达到理想的工作状态,顺利的开展公司的工作,掌握更多的技术点。
编写高效率的代码。
对公司的小建议:
1.部门管理方面:
作为研发部的一员,我觉得公司应该要有OA系统。
范文写作实现员工考勤统计、绩效管理、个人通讯录等办公自动化管理,不仅仅是提高个人的办公效率,也提高公司整体的办公效率,实现资源共享,强化部门管理以及部门之间的沟通。
这样就不需要每次都是人工来统计考勤数据。
也不必要走线下流程打印补卡单浪费资源和减少不必要的费用支出。
2.企业文化方面:
如果条件允许,每周三下午四时可以设立下午茶时间,时间可以是十五分钟,再忙也要学会适当放松自己。
也是提高工作效率的另一种方式。
工作计划、今后规划做出以下几点规划:
1.工作要注重实效、注重结果,一切工作围绕着目标的完成;2立足大局,勤于沟通,分工合作,提高工作效率;
3.把握一切机会提高专业能力,加强平时知识总结工作;
4.精细化工作方式的思考和实践。
以上为本人粗略的个人工作小结,请领导审阅,如工作上有不到之处,请领导多多包涵,不吝指出,以便本人及时改正,从而能更好地工
作。
展望2016年,我会更加努力、工作上认真负责,再接再厉,更上一层楼。
相信自己会完成新的任务,能迎接新的挑战!
研发部Java开发工程师XX2015年12月31日
篇二:
java工程师2010年度工作总结
2010年度工作总结
2010年对于我来说是非常重要的一年XX,在这一年中我有了很多的进步,也在在很多地方留下了一些遗憾。
古人云:
“前事不忘,后事之师”,亦云:
“一日而三省吾身”。
我虽然不能做到“一日三省”但是年终总结是万万不能再少的。
希望可以通过对过去的总结,找到自己在技术发展上的缺陷,发现自己不好的那些习惯并在未来的日子中可以不断的修正。
9月份入职到现在有4个多月了,在公司领导同事的关心和帮助下,本人认真负责的完成了各项工作任务,技术水平有了明显提高。
工作情况如下:
1、熟悉了解公司各项规章制度
我于2010年9月进入公司,为了更快更好地融入公司这个团队,为以后的工作打好铺垫,在入职培训中,我认真对公司的各项规章制度进行了解,熟悉公司的企业文化,熟悉公司编程风格,熟悉公司编码规范,熟悉办公环境,以及人文交流,通过了解和熟悉,我为能进入公司这个团队感到自豪,同时也感到自身的压力。
在以后的工作中,我将以公司的各项规章制度为准则,思想汇报专题严格要求自己,踏实工作,在坚持原则的情况下敢于创新,更快更好地完成工作任务。
2、学习新技术
由于客户对产品的要求越来越高,要求产品更人性化,多样化,交互性强,公司在
今后的项目中将用到extjs技术,所以我对这门技术进行了详细,深入的学习,现在已经能够灵活运用,并编码实现了大量常用组件的开发,为公司的以后的项目需求做好了准备。
3、熟悉并参与修改现有项目
熟悉并参与修改佛山招投标项目和司法厅项目。
存在的不足以及改进情况如下:
1、技术水平有待继续提高
在工作中遇到一些技术问题无法解决,最后通过网上搜索以及请教同事领导帮忙得以解决,我将归纳整理常见问题,做到下次遇见能够快速解决,积累经验,提高工作效率,继续学习新知识新技术,翻新技术知识。
2、缺乏计划性
在工作过程中,常常因为缺乏计划,导致工作目的不够明确,主次矛盾不清,造成事倍功半的效果,在以后的工作过程中,我要认真制订工作计划,做事加强目的认识,分清主次矛盾,争取能达到事半功倍的效果。
3、缺乏沟通,不能充分利用资源
在工作的过程中,范文TOP100由于碍于面子,不积极向其他同事求教,造成工作效率降低甚至出现错误,不能达到优势资源充分利用。
俗话说的好“三人行必有我师”,在以后的工作中,我要主动加强和其他部门同事的沟通,通过公司这个平台达到资源共享,
从而提高自己的技术水平,更好的完成工作。
在2011年我将继续坚持认真的工作态度,刻苦的学习态度,愉快的生活态度投入工作,
希望在2011年取得新的进步与成就。
篇三:
java工程师面试总结
一.@autowired和@resource的区别
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按byName自动注入罢了。
@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。
所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。
如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
@Resource装配顺序
1.如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2.如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3.如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4.如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
final可用来修饰类,变量,方法。
修饰变量:
final修饰变量时,表示该变量一旦获得了初始值之后就不可改变。
1.修饰成员变量:
与普通成员变量不同的是,final成员变量(实例属性和类属性)必须由程序员显示初始化,系统不会对final成员变量进行隐式初始化。
非final修饰的成员变量初始化过程:
当进行静态初始化时,可对类属性初始化,当执行普通初始化块,构造器时可对实例属性初始化,因此:
非final成员变量的初始值,可以在定义该变量时指定初始值,可以在初始化块,构造器中执行初始化值,否则成员变量的初始值是由系统自动分配的初始值。
final修饰的类属性,实例属性指定初始值的地方:
类属性:
静态初始化块,声明该属性时指定初始值。
实例属性:
非静态初始化块,构造器,声明该属性时指定初始化值。
二.final修饰局部变量:
1.系统不会对局部变量进行初始化,必须由程序员显示初始化。
如果在定义final变量时没有指定初始值,则可以在后面代码中进行对final变量赋初始值,但只能一次,不能重复赋值,,如果final修饰的局部变量在定义时已经指定默认值,则后面的代码中不能再对该变量赋值。
修饰形参不能被赋值,因为形参在调用该方法时,有系统传入的参数来完成初始化。
修饰基本类型变量与引用类型变量的区别:
修饰基本类型变量时,不能对基本变量重新赋值,因为基本类型变量不能被改变。
修饰引用类型变量时,仅仅保持的是这个引用所引用的地址不会改变,既一直引用同一个对象。
但这个对象完全可以改变(对象的属性)
例如:
finalpersonp=newperson();
//改变person对象的age属性,合法。
(23);
//对p引用重新赋值,不合法。
p=null;
注意:
如果final修饰变量是基本数据类型,且在编译时就可以确定该变量的值,于是把该变量当做常量来处理:
常量命名规则:
多个有意义的单词连接,所有字符大写,单词之间用下划线分割。
如果final修饰变量是引用类型,final变量无法在编译时就获得值,而必须在运行时才能得到值如:
final TestClasst=newTestClass();编译时系统不会创建一个TestClass对象赋给t变量,所以t不需要当做常量来处理,无需使用常量命名规则。
方法:
修饰的方法不可被重写。
提供的Object类有一个final方法:
getClass(),因为java不希望任何一个类重写这个方法。
3.对于private方法,仅在当前类中可见,子类无法访问,所以也就无法重写该方法,如果子类中定义了一个与父类private方法有相同方法名,相同形参列表,相同返回值类项的方法,也不是方法重写,只是重新定义了一个方法,因此使用final修饰的一个private访问权限的方法,依然可以在其子类中定义与该方法有相同方法名,相同形参列表,相同返回值类型的方法。
修饰的方法不能被重写但完全可以被重载。
类:
修饰的类不可有子类,类就是一个final类,它不可以有子类。
三JQuery绑定事件的方法
.bind()
$(‘a’).bind(‘click’,function(){alert(“Thattickles!
”)});
这是最直接的绑定方法。
jQuery扫描文档找到所有$(‘a’)元素,然后给每一个找到的元素的click事件绑定处理函数。
.live()
$(‘a’).live(‘click’,function(){alert(“Thattickles!
”)});
Query绑定处理函数到$(document)元素,并把‘click’和‘a’作为函数的参数。
有事件冒泡到document节点的时候,检查这个事件是不是click事件,targetelement能不能匹配‘a’css选择器,如果两个条件都是true,处理函数执行。
.delegate()
$(‘#container’).delegate(‘a’,’click’,function(){alert(“Thattickles!
”)});jQuery扫描文档找到$(‘#container’),绑定处理函数到他的click事件,’a’css选择器作为函数的参数。
当有事件冒泡到$(‘#container’),检查事件是不是click,并检查targetelement是不是匹配css选择器,如果两者都符合,执行函数。
注意这次和.live()方法很相似,除了把事件绑定到特定元素与跟元素的区别。
精明的JS’er或许会总结成$(‘a’).live()==$(document).delegate(‘a’),真的是这样吗?
不,不全是。
四。
spring事务管理
Spring+Hibernate的实质:
就是把Hibernate用到的数据源Datasource,Hibernate的SessionFactory实例,事务管理器HibernateTransactionManager,
都交给Spring管理。
那么再没整合之前Hibernate是如何实现事务管理的呢?
通过ServletFilter实现数据库事务的管理,这样就避免了在数据库操作中每次都要进行数据库事务处理。
一.事务的4个特性:
原子性:
一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做,要么全部做。
一致性:
数据不会因为事务的执行而遭到破坏。
隔离性:
一个事务的执行,不受其他事务(进程)的干扰。
既并发执行的个事务之间互不干扰。
持久性:
一个事务一旦提交,它对数据库的改变将是永久的。
二.事务的实现方式:
实现方式共有两种:
编码方式;声明式事务管理方式。
基于AOP技术实现的声明式事务管理,实质就是:
在方法执行前后进行拦截,然后在目标方法开始之
前创建并加入事务,执行完目标方法后根据执行情况提交或回滚事务。
声明式事务管理又有两种方式:
基于XML配置文件的方式;另一个是在业务方法上进行@Transactional注解,将事务规则应用到业务逻辑中。
三.创建事务的时机:
是否需要创建事务,是由事务传播行为控制的。
读数据不需要或只为其指定只读事务,而数据的插入,修改,删除就需要事务管理了。
一种常见的事务管理配置:
事务拦截器TransactionInterceptor和事务自动代理BeanNameAutoProxyCreator相结合的方式。
五。
oracle通用函数
sum(),max(),min(),count(),decode(),case,avg(),to_date(),
如nvl(字段,‘x’)字段值等于null就这个函数得到的结果就是’x’,
ABS(x)函数,此函数用来返回一个数的绝对值。
CEIL(x)函数,用来返回大于或等于X的最小整数。
FLOOR(x)函数,用来返回小于或等于X的最大整数。
ROUND(x[,y])函数,返回舍入到小数点右边Y位的X值。
Y缺省为0,这将X舍入为最接近的整数。
如果Y是负数,那么舍入到小数点左边相应的位上,Y必须为整数。
SelectCONVERT(varchar(100),GETDATE(),23):
2006-05-16
CONVERT(data_type(length),data_to_be_converted,style)data_type(length)规定目标数据类型(带有可选的长度)。
data_to_be_converted含有需要转换的值。
style规定日期/时间的输出格式。
六.oracle存储过程
1.存储过程异常处理
createorreplaceprocedurepeace_insert(c_ninvarchar2)
is
errorEXCEPTION;
begin
ifc_n=‘OK’
then
insertintocourse(course_name)values(c_n);
elsifc_n=‘NG’then
insertintocourse(course_name)values(c_n);
raiseerror;
else
Dbms__line(‘c_n’||c_n);
endif;
commit;
exception
whenerrorthen
rollback;
Dbms__line(‘ERRO’);
end;
关于游标if,for的例子
createorreplaceprocedurepeace_if
is
cursorvar_cisselect*fromgrade;
begin
fortempinvar_cloop
if_name=‘OS’then
dbms__line(‘Stu_name=‘||_name);
elsif_name=‘DB’then
dbms__line(‘DB’);
else
dbms__line(‘fenglafengla‘);
endif;
endloop;
end;
---关于游标for,case的例子1
createorreplaceprocedurepeace_case1
is
cursorvar_cisselect*fromtest_case;
begin
fortempinvar_cloop
case
when1then
dbms__line(‘haha1’);
when2then
dbms__line(‘haha2’);
when3then
dbms__line(‘haha3’);
when4then
dbms__line(‘haha4’);
else
dbms__line(‘qita’);
endcase;
endloop
;
end;
七。
java对象作用范围
Java对象的生命周期大致包括三个阶段:
对象的创建,对象的使用,对象的清除。
因此,对象的生命周期长度可用如下的表达式表示:
T=T1+T2+T3。
其中T1表示对象的创建时间,T2表示对象的使用时间,而T3则表示其清除时间。
由此,我们可以看出,只有T2是真正有效的时间,而T1、T3则是对象本身的开销。
下面再看看T1、T3在对象的整个生命周期中所占的比例。
我们知道,Java对象是通过构造函数来创建的,在这一过程中,该构造函数链中的所有构造函数也都会被自动调用。
另外,默认情况下,调用类的构造函数时,Java会把变量初始化成确定的值:
所有的对象被设置成null,整数变量(byte、short、int、long)设置成0,float和double变量设置成,逻辑值设置成false。
所以用new关键字来新建一个对象的时间开销是很大的,如表1所示。
表1一些操作所耗费时间的对照表
运算操作示例标准化时间
本地赋值i=n
实例赋值 =n
方法调用Funct()
新建对象NewObject()980
新建数组Newint[10]3100
从表1可以看出,新建一个对象需要980个单位的时间,是本地赋值时间的980倍,是方法调用时间的166倍,而若新建一个数组所花费的时间就更多了。
再看清除对象的过程。
我们知道,Java语言的一个优势,就是Java程序员勿需再像C/C++程序员那样,显式地释放对象,而由称为垃圾收集器(GarbageCollector)的自动内存管理系统,定时或在内存凸现出不足时,自动回收垃圾对象所占的内存。
凡事有利总也有弊,这虽然为Java程序设计者提供了极大的方便,但同时它也带来了较大的性能开销。
这种开销包括两方面,首先是对象管理开销,GC为了能够正确释放对象,它必须监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等。
其次,在GC开始回收“垃圾”对象时,系统会暂停应用程序的执行,而独自占用CPU。
因此,如果要改善应用程序的性能,一方面应尽量减少创建新对象的次数;同时,还应尽量减少T1、T3的时间,而这些均可以通过对象池技术来实现。
实现一个对象池,一般会涉及到如下的类:
1)对象池工厂(ObjectPoolFactory)类
该类主要用于管理相同类型和设置的对象池(ObjectPool),它一般包含如下两个方法:
createPool:
用于创建特定类型和设置的对象池;
destroyPool:
用于释放指定的对象池;
同时为保证ObjectPoolFactory的单一实例,可以采用Singleton设计模式,见下述getInstance方法的实现:
publicstaticObjectPoolFactorygetInstance(){if(poolFactory==null)
篇四:
总结关于JAVA工程师的一些技术面试问题
总结关于JAVA工程师的一些技术面试问题
?
Xml相关的DTD和XSD有什么区别,用DTD如何定义attribute和sub-elements?
JSP和Serlvet的区别
?
JSPinclude有哪几种方式,有什么区别
?
作用域public,private,protected,以及不写时的区别?
?
读取xml文件的方法有几种
?
hashcode和equals方法的区别,分别在什么情况下用,在什么情况下override?
?
HashSet和HashTable的区别
?
JVM中classloader如何加载class
?
switch语句可以处理的数据类型
?
ArrayList,LinkedList,Victor区别?
?
HashMap和HashTable的区别?
?
Servlet中doGet()和doView()方法的区别?
?
说说什么是UrlPatten?
?
sql左连接右连接
?
说说spring的应用
?
jdk 区别
?
说说JMS
?
线程notifynotifyall
?
Anintroductionoftheprojectsyouhavebeeninvolved.
?
Inyourexperience,howdoyouhandlesituationswhenyourcolleaguesaren’tlisteningtoyou?
?
TalkaboutCVS
?
java面向对象特性
?
java中对象序列化方法以及注意几点
?
重写和覆盖
?
用过的ApplicationServer
?
当webservice的返回数据很多导致程序效率低下的时候,你怎么处理。
?
Hibernate
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 工程师 技术 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)