java工程师

2024-10-21

java工程师(精选10篇)

1.java工程师 篇一

【岗位职责】

1.从事公司核心业务系统的开发、调试,参与产品的分析,设计、开发以及测试几个阶段;

2.编写系统开发文档、技术手册。

【任职资格】

1.计算机或相关专业本科以上学历,2年以上J2EE开发经验,有J2EE项目管理与项目设计经验优先;

2.精通Java编程,熟悉J2EE、MVC架构和UML建模语言等相关技术,熟练掌握面向对象的程序设计方法,熟悉或了解各种数据结构和算法模型;

3.能熟练使用开发框架:SpringMVC、myBatis、Spring;

4.熟练掌握Html、Css、Javascript、JSP、Servlet、XML、JDBC、SOA、AOP等J2EE常用技术;

5.能熟练使用MySql、Oracle等数据库产品,并能熟练编写SQL语句.6.能熟练使用Eclipse,IDEA等开发工具进行项目开发。

6.熟悉JBOSS、Tomcat等服务器产品,熟悉安装、调试、发布配置应用,熟悉Linux操作系统更佳;

7.有源码研究爱好者优先,如有参与开源项目请附上github或项目地址;

8.能承受一定的工作压力,有责任心、上进心,具备良好的自学能力和独立解决问题能力。

基本待遇:

富有竞争力的基本薪资+实际工资作为基数缴纳的五险一金+商业保险+工作日补助+加班补贴+各类国家规定的福利+公司内部特有员工福利等

2.java工程师 篇二

1 对目前软件工程实训教学现状的分析与思考

实训是一种实践教学形式,它是为了提高学生专业实践能力和综合能力。它区别于实验,更区别于实习。虽然目前个高校软件工程专业基本都开设实训课程,鉴于教学计划的制定、教学过程的实施、教学理念的传达没有企业的参与指导,许多教师对实训教学理解不够,对实训教学要求不高,和平时实验一样对待,是一种依附理论教学的模式,完全达不到工程要求,与社会需求差距甚大。有教师则认为实训就是实习,学生毕业前到企业里锻炼锻炼,由于没有接触过实际工程的案例,没有规范编写文档的及编程的经验,短期内不能适应企业环境,实训难以提高专业综合技能,难以达到理想的实训效果。

Java实训教学在软件工程专业学生技能培养有着极其重要的作用。是实训体系的一个重要分支。目前国内许多培训机构都有一些比较成型的实训体系,在社会上都有极大地影响。面对培训机构过高的培训费用,多数学生只能望而却步。学校的教学计划,课程安排又侧重学生的综合能力培养,因此急需高校自主研发适合自己学生情况的实训体系。

2 校企结合的Java实训教学体系构建与实践

实训教学资源是我们人才培养的基础和保障,包括基础理论资料、专用技术资料、工程项目及相关文档、模版等,它们都来源于企业,是可教学化实训的核心。实训教学离不开企业的参与,必须坚持校企合作。通过企业人员的参与,我们对一些己经完成的项目、案例进行分析,对其进行可教学化改造,完成了可教学化实训教学资源的建设。通过对软件工程专业反复的调研、分析,我们选定Java语言作为技能目标的主要载体。并围绕此目标建设了课程群,包括《Java程序设计基础》、《J2ME》、《Java Script》《Java CMS》、《Java框架》、《J2EE》、《Java Web》等课程。对学生要求也相应提高,学生必须熟练掌握Java语言,开发能力达到项目级要求。

2.1 将企业理念引进学校

企业理念是培养软件人才“职业素养”的重要环节,良好的“职业素养”需要长时间的培养,校企结合的实训教学体系,企业理念贯穿于学习的整个过程,学生在起步时就了解产业背景和服务行业背景,促使学生的专业知识朝着专业综合技能转化。

将企业理念引进学校后,学生在实训教学阶段的管理模式也进行了调整,比如作息制度、项目经理制度、分组管理等这种实训教学方法,在不同的阶段都要进行考核。对经常迟到的学生、代码质量差的学生等一并记录,列入考核成绩当中。这种模式使企业管理理念提前注入到学生的学习过程当中,从而就业后能够很好的适应企业工作环境。

2.2 制定校企结合的实训大纲和实训教材

引进企业理念后,大纲和教材也必须跟着调整,编写工作应由学校和企业来共同完成,他们都有各自的优势:学校教师熟悉本校的教学情况和学生情况,而企业教师则熟悉行业的新标准和新技术,他们有大量已经完成的项目案例,校企教师联合编写实训大纲和实训教材,既能使学生容易接受,又能反映项目设计要求。把企业项目设计内容融入到教学中,二者互相补充,使理论学习与实训操作紧密结合,学生受益匪浅。学生在学习过程中参与软件项目开发,充分体现了我院

将企业理念引进学校后,学生在实训教学阶段的管理模式也进行了调整,比如作息制度、项目经理制度、分组管理等这种实训教学方法,使学生在学校就提前感受到企业管理理念,为将来毕业后尽快适应企业工作环境打下了良好的基础。

2.3 制定校企结合的实训大纲和实训教材

引进企业理念后,大纲教材也应跟着调整,编写工作应由学校和企业共同完成,学校教师熟悉本校的教学情况和学生情况,而企业教师则熟悉行业的新标准和新技术,有大量项目设计实例,校企教师联合编写实训大纲和实训教材,既能使学生容易接受,又能反映项目设计要求。把企业项目设计内容融入到教学中,二者互相补充,使理论学习与实训操作紧密结合,学生受益匪浅。学生在学习过程中参与软件项目开发,充分体现了我院培养应用型人才教育特色。

为了将实训教学落到实处,我们聘请企业工程技术人员为兼职教师,进行项目实训和课程综合技能实训,实训质量得到提高。让企业教师参与授课,还可解决实训师资不足问题。紧密跟踪IT行业主流应用技术及企业岗位技能要求,及时调整计划,期间完成了java课程的实训教学大纲、教学日志、教学安排、实训项目开发等一批实训教学指导性文件。对java实训教学体系起到了很好的作用。

2.4 增设项目实训和案例实训

项目和案例是软件工程专业学生学习的重要资源。学生毕就业后之所以不能很好适应企业环境,一个重要的原因就是在校期间没有规范的做过项目和案例,或者所练做项目和案例针对性不强。通过和企业合作,我们从企业引入了大量的项目和案例,并把它们做成可教学化的资源供学生练习使用。学生在不同的学习阶段选取合适的项目和案例,这样学生在学习期间就接触到了大量的项目和案例,并且能够完成它们,从而使专业技能和沟通、协调能力都有较大提高。

2.5 建设校内外实训教学基地

实训教学基地是培养学生专业技能实践教学单位,教学基地的工作环境及教学设施对教学质量有极大影响。因此,一定要大力建设实训教学基地。实训教学基地分校内实训教学基地和校外实训教学基地。校内实训教学基地的建设,可对原有机房进行改造,提高机房教学设备水准。校外实训教学基地建设,需要我们挖掘更多能满足高校应用教育的企业,争取企业的支持与合作。

3 结束语

校企结合的软件实训教学体系,是培养工程应用型软件人才的有效手段,符合我院一直秉承的培养应用型人才的教学理念,学校文化与企文化有机结合,取长补短,优势互补。第一、改变了以前教学内容滞后现象,教学内容能够紧跟市场需求;第二、学生提前接受企业理念和足够的实际项目和案例,缩短学校知识与企业需求的距离;第三、学校充分利用企业环境优势,解决了教学资源严重不足问题。实践证明,校企结合的实训教学模式,培养出的学生课直接为企业所用,减少了企业对员工培训成本,得到了社会和企业的广眨认同。

参考文献

[1]杨国军,陈亚林.软件工程专业实训教学体系的构建与实践[J].内江师范学院学报,2009(6).

[2]段丽英.基于软件工程专业课程群组建设的Java实训体系改革实践[J].现代企业教育,2011(11).

[3]张永强,王嘉.王维坤培养工程应用型软件人才的可教学化实训体系建设探索与实践[J].计算机教育,2007(12).

[4]孙伟《.Java程序设计》课程的教学改革与实践[J].计算机时代,2005(11).

[5]陈玉华.构建“基于技能培养、面向岗位群集”的课程模式[J].中国高等教育,2005(12).

[6]胡坚.高职《Java语言程序设计》实践教学的设计与探索[J].科技信息,2010(14).

3.Java小游戏 篇三

关键词:Java;小游戏;魔方;Java语言

中图分类号:TP311.52

现代社会,电脑游戏爱好者云集,并且越来越多的人加入到这个行列中来,这一现象表明电脑游戏成绩斐然,成为IT产业中增长最快的部分之一。纵观IT产业的历史,计算机游戏已经成为技术创新背后的动力,玩者渴望更加强大的硬件计算能力;渴望游戏不受不同的软件的限制,即游戏玩家希望游戏可以运行在不同的操作系统之上,无论他们的操作系统是Windows还是Unix或者其他,无论是将图形强制在人工智能上还是网络安全性上,都希望可以畅通无阻。游戏开发者和玩家常常是前沿计算机技术的最早采用者。

1 游戏开发的基本概念和理论

1.1 游戏开发的背景和意义。本游戏开发的背景是出于小时候对小游戏的喜爱,以及现在社会的要求,对小游戏的开发就成为了我的毕业设计。小游戏开发的意义是:首先,这个游戏的开发能够增长Java水平,其次,就是游戏开发可以促使计算机业的技术提高,使中国计算机水平有所提高。再次,用Java编写程序可以使减少不必要的麻烦,即Java语言可以运行在不同的操作系统之上。

1.2 游戏开发的理论和概念。传统的游戏由于使用的语言只能运行在单一的环境下,没有可移植性,当游戏从一种操作系统放到另外一种操作系统下的时候,游戏就失去了他的功能,不可能在给人们带来乐趣,使许多游戏玩家感到苦恼,玩游戏的乐趣突然没有了。因此,处于玩者的需要,本游戏运用的是可以在不同环境下运行的JAVA语言编写而成的。游戏一旦生成,随处可玩。

电脑小游戏应举具备的特点:(1)易于学习。既然小游戏面向的是普通的电脑用户而不是计算机高手,那么他们不可能深入的学习小游戏的技巧;(2)可中断性。多任务处理是电脑的基本特征。电脑用户常常希望一心多用,他们希望上网时能听音乐,聊天或者更多的其他事情。而小游戏、音乐、聊天是使用的同一台计算机;(3)丰富的社会交互。不管一个小游戏设计得多好,只要玩家找到了它的根本模式或者玩完了所有的游戏路径很快就会厌烦这个小游戏;(4)无违法内容。既然所有年龄/性别的人群都玩游戏并且常常在公共/工作场合,你应该避免明显的暴力或者色情内容。

1.3 游戏语言介绍。本游戏应用的是Java语言,Java是一个由SUN公司开发成功的新一代编程语言,它的最大特点就是:使用它可在各式各样不同种机器,不同种操作平台的网络环境中开发软件,即SUN公司所宣扬的“一次编写,到处运行”。

在SUN公司的“Java白皮书”中对Java有如下的定义:Java:一种简单的,面向对象的,分布式的,健壮的,安全的,结构中立的,可移植的,高效性的,多线程和动态的语言。

这个定义充分地表现了Java语言的特点:(1)简单性。Java是一种简单的语言。Java取消了其它的许多编程语言中十分繁琐的和难以理解的内容,例如C/C++中的指针,C++中类的多重继承等。Java语言在外观上让大多数程序员都感到很熟悉,这样程序员不需要经过长时间训练就能够学会使用这种新型的程序开发工具;(2)面向对象。Java是一种面向对象的语言。这里的“对象”是指应用程序的数据及其操作方法。Java程序的设计思想不同于C语言基于过程的程序设计思想。设计面向对象的程序需要将编程重点放在资料和接口上;(3)分布式特性。Java是一種分布式的语言。Java有一个很周全的程序库,且很容易与HTTP和TCP/IP通信协议相配合。Java应用程序能在网络上开启并连结使用对象,就如同透过URL链接使用一个本地文件系统;(4)健壮性。用Java编写的程序在多种情况下都能稳定地执行。Java与C/C++最大的不同点是在于Java有一个专门的指针模型,它的作用是排除内存中的数据被覆盖和毁损的可能性;(5)安全性。Java是一种安全的网络编程语言。Java是被设计用于网络及分布的环境中的,所以Java程序的安全性自然是非常重要的。Java拥有数个阶层的互锁保护措施,能有效地防止病毒的侵入和破坏行为的发生;(6)结构中立性。众所周知,网络是由很多不同机型的计算机组合而成的。这些计算机的CPU和操作系统体系结构均有所不同。

2 游戏功能的实现和基本操作方法

2.1 游戏的功能实现。游戏的功能是:通过编程,使其出现一个正方体,这个正方体是有着不同颜色的六个面,并且它的每个面被分成九个小的正方形,排列规则是中间一个小正方形,四周围着其余的八个,外观效果是和我们小时侯玩的魔方是一个样子的,这个功能的实现必须是要使图形化界面是一个三维立体空间,否则是不会出现正方体的效果的,在编程中通过定义坐标的方法使其有着边长为1cm的小正方形。

2.2 游戏的基本操作方法

(1)游戏的开始。游戏的开始设置为S键,是Start的首字母,很容易理解的。在程序运行后就会出现游戏界面,这里在编写游戏时考虑到玩家的感受,所以游戏界面中有提示的,会告诉你开始按S。然后你就可以玩了,当你玩了好半天但还是没有成功的话,你会觉得你这局不行了,这就要使游戏重新开始了,那就要通过键盘的操作使游戏重新开始;(2)游戏的玩法。在程序执行以后就可以发挥你的才智来玩这个游戏了,不要小看了这个游戏,这与现实中的魔方有着旗鼓相当的水平,如果你小的时候就没有玩好魔方,那你玩这个游戏一样的玩不转。这个游戏只需要用鼠标就可以做到了。在你按下S键后就开始了。首先呢,你要先打乱模仿的次序,使的魔方的六个面中的每个面上不在是相同的颜色,这时考验你智力的时候到了,你要想办法使魔方的各个面重新回到相同的颜色,你就成功了。

3 游戏的发展前景

3.1 电脑小游戏的现状。每个人都对过去、未来和未知事物有幻想和期盼。每个人也都有自己想要做而不一定能够完成的事情。电脑游戏营造的虚拟空间和身份模拟则成了实现或释放这些情绪的途径之一。游戏者能在游戏中扮演与现实中的自己截然不同的角色,置身于任何一个时间和空间,完成自己潜意识中或童年的梦想。

3.2 电脑小游戏的未来。凡是玩过电脑小游戏的人都会感觉到,电脑小游戏给他们的生活带来了很多的乐趣,所以它很有发展前途。

(1)电脑小游戏对电脑的要求不高;(2)这个游戏简单;(3)当这个小游戏充分得到人们的认可时,可以发展成手机游戏,因为现在手机游戏更有发展潜力,这就需要更多的Java小游戏,只有Java小游戏能运行在手机之上,所以,它的商业存在价值更不能忽略,并且会成为Java小游戏开发的主要动力;(4)要实现Java小游戏的技术要求并不难。只要有好的游戏,就会有更广的使用量。

4 结束语

从整个游戏的设计过程来看,本游戏具有稳定性,可扩展性的,但是由于时间的关系使游戏的性能没有得到更深的设计,性能不是很高,如果有想对本游戏进一步开发的读者可以对此游戏进行修改从而建立功能更强大的游戏。

参考文献:

[1]张基温,朱嘉钢,张景莉.Java程序开发教程[M].北京:清华大学出版社,2002.

[2]张基温,陶利民.Java程序开发例题与习题[M].北京:清华大学出版社,2002.

[3]陈炜,张晓蕾,侯燕萍等.Java软件开发技术[M].北京:人民邮电出版社 2005.

[4]孙印杰,刘斌,孙玉强.Java编程案例精解[M].北京:电子工业出版社,2005.

4.java工程师面试 篇四

精通 jsp语言 html语言 javascript脚本以及css 样式

熟练掌握sqlserver oracle 数据库

熟练使用Spring+Hibernate+Struts 以及 Spring+JDBC+Struts开发

精通Struts+jdbc开发 精通MVC框架开发

精通tomcat运用服务器 熟悉weblogic运用服务器 并可配合eclipse进行开发 熟练使用ant log4j junit 等辅助开发工具

熟练使用CVS/VSS项目同步工具

对factory DAO singleton 等软件设计模式有很好的理解

对oracle数据库性能及oracle代码的规范性和java代码执行效率以及java缺陷有很好的理解与掌握

熟悉大型项目的开发流程 对业务需求能很好的细致理解,熟练书写概要设计 需求分析 详细设计等文档

2年多累积java代码30000行 数据库代码10000行 具有实际大型项目(江苏电信)开发经验和个人独自完成小项目的能力

具备强烈的学习欲望,工作认真负责,且具有很强的责任心和进取心,与人为善善于沟通,有很好的团队合作精有神。

江苏移动秘书 12580 负责个人电话本和呼叫信息增删查改的开发

5.java工程师 篇五

Java笔试可能出现问题及答案之J2EE,MVC方面(转载)(连载)

J2EE,MVC方面

114、MVC的各个部分都有那些技术来实现?如何实现?

答:MVC是Model-View-Controller的简写。“Model” 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),“View” 是应用的表示面(由JSP页面产生),“Controller” 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

115、J2EE是什么?

答:Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。

116、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。答:Web Service描述语言WSDL

SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

117、J2EE是技术还是平台还是框架?

答:J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。

J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。

118、STRUTS的应用(如STRUTS架构)

答:Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。Struts有如下的主要功能:

一.包含一个controller servlet,能将用户的请求发送到相应的Action对象。

二.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。

三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。

119、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。答:Web ServiceWeb Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。

JAXP(Java API for XML Parsing)定义了在Java中使用DOM, SAX, XSLT的通用的接口。这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码。

JAXM(Java API for XML Messaging)是为SOAP通信提供访问方法和传输机制的API。

WSDL是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。

SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

120、C/S 与 B/S 区别:

答:有如下八个方面的不同:

1.硬件环境不同:

C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备.信息自己管理.有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行

2.对安全要求不同

C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强.一般高度机密的信息系统采用C/S 结构适宜.可以通过B/S发布部分可公开信息.B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。

3.对程序架构不同

C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上.比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统.SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.4.软件重用不同

C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.B/S 对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子

5.系统维护不同

C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级.升级难.可能是再做一个全新的系统

B/S 构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.6.处理问题不同

C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关.应该都是相同的系统

B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的.与操作系统平台关系最小.7.用户接口不同

C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高

B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流.并且大部分难度减低,减低开发成本.8.信息流不同

C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低

B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更像交易中心。

121、什么是web容器

答:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接**互,不必关注其它系统问题。主要有WEB服务器来实现。例如:

TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。122、什么是EJB容器

答:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理

123、什么是JNDI

答:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。124、什么是JMS

答:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。125、什么是JTA

答:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

126、什么是JAF

答:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。

RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。

127、MVC的各个部分都有那些技术来实现?如何实现?

答:MVC是Model-View-Controller的简写。“Model” 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),“View” 是应用的表示面(由JSP页面产生),“Controller” 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

6.java软件工程师介绍 篇六

职业概述:

Java的应用可以说是无处不在,从桌面办公应用到网络数据库等应用,从PC到嵌入式移动平台,从Java小应用程序(Applet)到架构庞大的J2EE企业级解决方案,处处都有Java的身影,就连美国大型太空项目当中,也使用了Java来开发控制系统和相关软件。用途如此之广的Java造就了Java工程师的辉煌,使其在软件工程师的领域里独占鳌头!Java软件工程师运用Java这个开发工具去完成软件产品的软件程序设计、开发、测试、维护升级等工作。

工作内容:

1.完成软件的设计、开发、测试、修改bug等工作,包括业务需求的沟通,功能模块详细设计,业务功能实现与单元测试,系统维护;

2.参与产品构思和架构设计;

3.撰写相关的技术文档;

4.支持售前技术服务;

5.支持项目对产品的应用服务。

职业要求:

1.教育培训:

计算机相关专业,大专及以上学历。相关专业证书有:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD)认证。

2.工作经验:

有一定的软件分析设计能力;熟悉Java、Servlet、JSP、EJB等开发技术;熟练使用Eclipse或jbuilder等java开发工具;熟悉JAVA+STRUTS体系结构和开发工具;熟悉至少一种数据库的开发和设计;具有良好的学习能力,具有强烈的工作责任心、有良好的沟通能力和团队合作精神。薪资行情:

根据IDC的统计数字,在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70%。同时,Java工程师的薪水相对较高。Java软件工程师一般月薪范围在4000-10000元,远远超过了应届毕业生月薪2500元的平均水平。通常来说,有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—13万左右。

职业发展路径:

目前,虽然Java人才的薪水很高,但是对该类人才需求旺盛的IT企业却很难招聘到合格的Java软件工程师。其中,最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人要求有较大的差距。因此,计算机专业的大学生欲成为Java软件工程师,最便捷的一条路就是参加以实战项目为主要教学方法的Java职业技能培训,从而有效地缩短同企业具体用人要求之间的差距。

Java软件工程师的未来发展方向大致分为两类:

一是成为管理人员,例如产品研发经理,技术经理,项目经理等;二是继续他的技术工作之路,成为高级软件工程师、需求工程师等。培训机构参考:

7.JAVA的代理模式 篇七

代理模式一般涉及到三个角色:

抽象角色:声明真实对象和代理对象的共同接口;

代理角色:代理角色内部含有对真实对象的引用, 从而可以操作真实对象, 同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。代理对象可以在执行真实对象操作时, 附加其他的操作, 相当于对真实对象进行封装。

真实角色:代理角色所代表的真实对象, 是我们最终要引用的对象。

以下以《Java与模式》中的示例为例:

抽象角色:

由以上代码可以看出, 客户实际需要调用的是Real Subject类的request () 方法, 现在用Proxy Subject来代理Real Subject类, 同样达到目的, 同时还封装了其他方法 (pre Request () , post Request () ) , 可以处理一些其他问题。

如果要按照上述的方法使用代理模式, 那么真实角色必须是事先已经存在的, 并将其作为代理对象的内部属性。但是实际使用时, 一个真实角色必须对应一个代理角色, 如果大量使用会导致类的急剧膨胀;此外, 如果事先并不知道真实角色, 该如何使用代理呢?这个问题可以通过动态代理类来解决。

2 动态代理类

Java动态代理类主要涉及到以下两个类:

2.1 Interface Invocation Handler:该接口中仅定义了一个方法Object:invoke (Object obj, Method method, Object[]args) 。在实际使用时, 参数obj一般是指代理类, method是被代理的方法, 如上例中的request () , args为该方法的参数数组。这个抽象方法在代理类中动态实现。

2.2 Proxy:该类即为动态代理类, 作用类似于上例中的Proxy Subject, 其中主要包含以下内容:Protected Proxy (Invocation Handler h) :构造函数, 估计用于给内部的h赋值。

Static Class get Proxy Class (Class Loader loader, Class[]interfaces) :获得一个代理类, 其中loader是类装载器, interfaces是真实类所拥有的全部接口的数组。

Static Object new Proxy Instance (Class Loader loader, Class[]interfaces, Invocation Handler h) :返回代理类的一个实例, 返回后的代理类可以当作被代理类使用 (可使用被代理类的在Subject接口中声明过的方法) 。

所谓Dynamic Proxy是这样一种class, 它是在运行时生成的class, 在生成它时必须提供一组interface给它, 然后该class就宣称它实现了这些interface。当然可以把该class的实例当作这些interface中的任何一个来用。当然啦, 这个Dynamic Proxy其实就是一个Proxy, 它不会替你作实质性的工作, 在生成它的实例时你必须提供一个handler, 由它接管实际的工作。

在使用动态代理类时, 必须实现Invocation Handler接口, 以下示例为例:抽象角色 (此处应改为接口) :

该代理类的内部属性为Object类, 实际使用时通过该类的构造函数Dynamic Subject (Object obj) 对其赋值;此外, 在该类还实现了invoke方法, 该方法中的method.invoke (sub, args) 其实就是调用被代理对象将要被执行的方法, 方法参数sub是实际的被代理对象, args为执行被代理对象相应操作所需的参数。通过动态代理类, 我们可以在调用之前或之后执行一些相关操作。

客户端:

程序运行结果:

通过这种方式, 被代理的对象 (Real Subject) 可以在运行时动态改变, 需要控制的接口 (Subject接口) 可以在运行时改变, 控制的方式 (Dynamic Subject类) 也可以动态改变, 从而实现了非常灵活的动态代理关系。

3给大家举个例子:

假如你买一台IBM的笔记本, IBM产家是不提供鼠标的。但是我们如果从代理商的手里买就有鼠标送。

我们写几个类来实现一下吧。

运行结果如下:

获得笔记本电脑:IBMT60一台获得鼠标一个。

以上就是代理功能的实现, 由代理商销售笔记本, 并赠送鼠标。但是这样的程序只适合是销售IBM笔记本。那么如果要是其它品牌呢?所以我们来更改一个代理类, 来实现动态的代理。

建立一个类代码如下: (Computer Proxy2.java)

描述是谁的代理, 也就是与那个类有关系

然后在主函数中加上:

就可以实现动态代理了。

摘要:为其他对象提供一种代理以控制对这个对象的访问。也就是在某些情况下客户不想或不能直接引一个对象, 而代理对象可以在客户和目标对象之间起到中介作用, 去掉客户不能看到的内容和服务或都增添客户需要的额外服务。

8.Java代码混淆技术研究 篇八

关键词:混淆技术;Java;编程;算法

中图分类号:TP312 文献标识码:A 文章编号:1674-7712 (2012) 18-0038-01

一、前言

Java作为一种新一代的编程语言,其因编程简单、跨平台性可操作性强被许多的开发人员和公司喜爱,而且如今已经成为应用程序的主流开发软件。然而,Java编译器在编译时是将代码引用到的变量和方法符号保留在字节码文件中,并且这些符号都有语义信息,因此使得开发的程序很容易被反编译,导致软件被破解。最终将使得开发者的知识产权受到侵害。为了保护开发者的权益,代码混淆技术变应运而生。

二、混淆技术的发展

早在1997年Collberg便开始了对代码混淆的研究,在他发表的文章中提出了代码混淆变换的各种类型,他将其分为四类:代码外形混淆、控制命令混淆、内部数据混淆以及预防混淆。随后Kelly等人构造了一种用来实现构造代码的混淆算法机制。在国内,近些年了也有一些学者逐渐意识到了代码混淆技术在进行程序编写中的重要性,大量研究之后取得了较大的成果。比较有代表的有李永祥的多分语句控制迷惑技术,李长春的执行重整混淆算法等。由于混淆技术具有非常重要的软件保护作用,相信未来肯定会有更多的人和组织加入到代码混淆技术的相关研究课题中来。

三、混淆技术介绍

(一)混淆变换原理

作为一种非常实用的软件保护策略,代码混淆技术的基本思想是将应用程序在保持语句含义不变的前提下实现P到P’的变换。此变换中必须满足条件:P‘和P具有相同的运行结果;若P‘出错终止或终止失败,P也必须出错地终止或终止失败;P‘产生与P一样的输出。两个程序唯一不同的只是P‘比P更难去进行反编译,并且P‘可读性差以及相关工具难以解析。因此经过这种变换可以到达混淆的目的,使软件不易被攻击。

(二)混淆的应用领域

代码混淆的应用范围很广,归纳起来主要有一下几种领域:⑴分布式计算和软件保护;⑵法保护和DRM;⑶同形加密;

(三)混淆的分类

代码混淆技术根据混淆对象的不同可以分为四种:代码外形混淆、控制命令混淆、内部数据混淆和预防混淆。

1.代码外形混淆。Java混淆器使用到的混淆方法中代码外形混淆最为典型,该算法可以将Java所有源代码中包含的类的功能隐藏。如果最初的格式信息被除去后代码将不能恢复,因此称这种混淆为单向变换。程序经过这种变换后时间和空间复杂度不会受影响,因为它并没有额外执行代价。

代码外形混淆主要使用的技术有删除(删除程序和中的注释、调试信息、未被调用的方法和類等)和改名(程序中的变量名、常量名、类名、方法名等)。此变换可以使程序的理解变难。

2.控制命令混淆。控制命令混淆能增加程序的复杂度和程序的反编译时间,它是通过改变程序的判断条件或添加可控判断条件以及对程序的结构和流程进行调整来实现的。常常用到的控制命令混淆主要有排序、聚集和计算变换。

3.内部数据混淆。内部数据混淆技术将会利用数据流中的难点问题,向程序中引入使程序精度降低或难度增加的因素,进而可以影响反编译器对程序的分析结果。内部数据混淆只会变换代码中的数据结构,而不修改软件代码。

进行内部数据混淆的主要方法有四种:变量分裂与变量合并、数据结构变换、静态数据动态生成、类继承转换。

4.预防变换。预防变换是利用某些专用反汇编工具的弱点而设计的。具体混淆可以分为针对特定目标实施的预防变换或者是依据已知的反编译算法实现的混淆。

5.四种混淆技术的分析和比较。代码外形混淆使攻击者解读程序造成不便,同时也能针对反编译工具的算法使之反编译难以实施。内部数据混淆改变逻辑变量。控制命令混淆使程序变得更加复杂从而增强程序的抵抗性能。预防混淆较多时候都是具有一定的针对性。内部数据混淆和控制混淆都会在增加程序复杂度的同时造成程序执行效率的下降,而代码外形混淆则不会影响执行效率。

四、标示符重命名混淆算法

标示符重命名混淆属于代码外形混淆的范畴。它是将字节码文件中的一些类名、接口名、方法名等替换为其他无意义的名字。这并没有造成程序的额外开销,抗攻击能力也不强。

重命名是因为进行内部数据混淆和控制混淆时都会增加程序的开销,而这并不是我们想要的。有时候我们经常需要一种可以抵抗攻击并且不会造成程序执行效率下降的算法,而重命名混淆正是这样的。当一些名字被毫无意义的字符替换后,攻击者很难从中读出该名字所代表的意义,这便使得攻击者在反编译是造成了困难。

当程序中一个实体被重命名后,所有与其相关的内容必须更新,否则会引起运行出错。但是有一些是不能被重命名的。这便有了代码混淆范围的提出。以下三种标示符是不在范围内的:(1)子类中一个超类或接口中抽象方法的实体方法;(2)超类中继承方法的重写;(3)特殊属性明确规定不可进行替换。

标示符重名算法可以分为四种:静态方法重写、替换非法提示符、无关联方法重载、部分标识符滥用。

五、算法分析

衡量一个混淆算法性能好坏的重要指标是对程序执行开销的影响。内部数据混淆和控制命令混淆都增加了程序的二外执行开销从而影响了程序的运行效率。重命名混淆只是将名字替换,很多时候都会将名字缩短,使文件变得更小,不会造成执行效率的下降,同时也使攻击者将花费更长的时间来理解和反编译程序。

六、总结

代码混淆技术是时下最常用的,同时也是最有效的保护Java软件的方法,新型的混淆算法一定会随着技术的发展而被发现。虽然代码混淆技术在一定程度上保护了软件的安全以及开发者的权益,但只有我们杜绝使用盗版软件同时不去侵犯他人的知识产权才能切实的保护好开发者的权益。

参考文献:

[1]魏会生.基于JAVA类文件保护的探讨[J].工会博览·理论研究,2011,3:25-26.

[2]魏衍君,王应战.Java语言混淆器模型研究[J].科技信息,2012,4:61-62.

9.java软件工程师简历 篇九

☆个人基本信息

姓名:***

出生年月: 1984/12/09 学历:本科 籍贯:四川成都

毕业院校:重庆工学院 专业:计算机科学与技术专业

毕业时间: /07

☆联系方式: 15008****** 028-87535*** email : qinju****@***.***

☆个人评价

熟练掌握 java 语言;了解面向对象的思想;熟悉软件开发流程;具有良好的编码风格;有良好的团队合作精神和良好的沟通能力;做事积极主动能吃苦耐劳、能至始至终把工作放在首位;具有上进心、责任心、感恩心。

☆工作经历

时间: 2007-03 至 2007-07

公司:东软股份有限公司 部门:东软商用事业部

工作职责:软件工程师

项目名称: *** 投信系统

开发语言: java 、vb 开发工具: eclipse

项目总结:

在 *** 投信系统中 , 我的主要职责是通过客户讲解需求,写详细设计、编码、写测试书、测试。这是我的第一个项目,所以在这个项目中我学到了很多的大学里没有接触到的知识 . 例如 : 自动测试( junit )、log4j 等等。在这个项目过程中,我发现自己的编码风格、命名风格等有欠缺,所以我自学了《代码大全 2 》中的第二、第三部分。

时间: 2007-07 至 -03

公司:东软股份有限公司 部门:东软商用事业部

工作职责:软件工程师

项目名称: *** 航空系统

开发语言: java orcal 开发工具: pl/sql eclipse

项目总结:

在 *** 航空系统中 , 我的`任务是对多个客户端发送过来的电文进行接收和解析,然后把电文传给存储过程,在存储过程中把电文转化为记录存入数据库。在这个系统中我学习到了如何把一种特殊的的日志从一般的日志中分离出来(把电文的日志与其他日志分离)、如何使用 dbunit 测试、如何使用游标,批处理,对 orcal 有了更深的理解等。我不仅学习到了以上专业的知识 , 而且让我知道了团队合作的重要性 , 让我明白了要及时的与你的队员一起探讨式样、一起研究解决方案。让我明白了发现问题时,一定要及时的与领导或客户沟通。做这个项目过程中,我发现自己对 java 的继承,接口,设计模式方面理解的太肤浅,所以我报名培训了《 thinkingjava 》、《设计模式》。

时间: 2008-03 至 2008-07

公司:东软股份有限公司 部门:东软商用事业部

工作职责:软件工程师

项目名称: *** 百货店系统

开发语言: java 、jsf 开发工具: eclipse activereport

项目总结:

在 *** 百货店系统中 , 我的任务是做几个 jsp 画面和画水晶报表。做这个项目我学习了样式表 (css) 、jsp 、ajax 。利用 activereport 画水晶报表是一个既费时又费劲的事,但它使我养成了做事要细心要有耐心的习惯。在这个项目中我发现自己 jsp 用的不太熟悉,所以我现在自学 jsp. 做完这个项目后,我的 web 开发能力有很大的提高。

时间: 2008-08 至 -03

公司:东软股份有限公司 部门:东软商用事业部

工作职责:软件工程师

项目名称: *** 汽车系统

开发语言: java 开发工具: eclipse

项目总结:

在 *** 汽车系统中 , 我的主要任务是对文件(汽车公司运送汽车后产生的输送结果书)进行解析,并且把文件中的内容解析成单条的记录,然后把记录插入到多个关联的表中 . 这个系统要针对多个公司,所以我在详细设计时利用了模板方法模式。在这个项目中,对我学习的设计模式得到了应用 , 是我更加深入的理解了设计模式的各个模式。

☆专业能力

编程方面 :本人 熟悉 java 语言,精通软件工程思想, 熟悉使用 js 、jsp 、css, 掌握 c 语言 , 数据结构,操作系统,计算机网络、计算机组成原理,编译原理等基础知识,能熟练使用 vc++ 集成开发环境,熟悉软件开发的流程。

数据库方面 :熟练掌握基本数据库理论知识,能熟练使用 orcal;

☆培训经历

/12—/01 华迪实训基地 《社区管理系统》 职责:需求分析、编码、测试

2007/03—2007/06 东软集团 培训内容: java 、软件工程等。

2007/07 — 2007/09 东软集团 培训内容: thinkingjava 、设计模式。

☆个人证书

全国计算机软件水平考试 获程序员证书;

10.浅谈Java语言教学方法 篇十

关键词:Java 语言 教学

Java语言是目前最为流行编程语言之一.Java 程序设计已经成为各类高等院校计算机及其相关专业的一门重要的主干课程。 与其它课程相比, 本课程更要求理论与实践的统一, 更强调学生综合素质的培养。

一.当前Java教学现状

笔者发现传统高职Java语言教学中存在以下问题,

1.课程内容缺乏实用性学生学习兴趣不浓

Java语言课是实践性较强一门课程,但各种参考教材都偏重基础理论知识讲解实验内容大都是验证型且与实际应用脱节严重学习起来枯燥乏味.因此学生在学习过程中渐渐失去兴趣.

2.课程授课计划安排不合理,目前学校一般是安排一次理论一次实训,甚至多数教师上机实验的内容往往局限于课本上简单例子,这样缺乏连贯性和系统性,学生虽能完成老师布置的任务,但对于项目开发流程不是很了解,达不到企业对软件开发人才的要求。

3.传统的Java程序设计教学孤立了程序设计课程与其他计算机软件课程间的联系,往往讲课的教师只讲授Java课程中的内容,缺少讲解该课程与数据结构,软件工程数据库等课程之间的有机联系,这样的结果使学生所学的知识,都是一些孤立的知识,学生很难搞清各门课程间的衔接点,因此就很难想到综合所学知识去解决实际问题。

二 加强改进Java语言教学的建议

在 Java 语言的教学过程中, 一方面要求教师具有良好的教学水平和教学方法, 另一方面也要求学生具有良好的逻辑设计能力,因此, 教师在教学过程中必须找到适合学生学习特点的教学方法, 使学生能通过短暂的课堂学习, 理解并掌握更多的 Java 语言概念和编程技巧。由于 Java 语言内容繁杂、教材众多, 内容不统一, 使初学者产生了不少困难。笔者在 Java 语言的教学工作中总结了如下一些经验:

1 培养学生兴趣

程序设计语言学习起来相对来说比较枯燥,但是如何来摆脱这种困境呢?首先,可以通过比较成功的项目进行演示,这样可以充分调动其学习的积极性。其次,可以通过一些图形用户界面来使程序输入输出变得更容易观察和接近实际。最后,可以通过教学内容设计出相应的情景和问题,然后给出一些 Java 小程序,演示其运行结果,通过这些小程序,调动同学们学习的兴趣和探索精神。

2.确定教学内容, 选择合适的教材

Java 语言在 Web、多媒体、网络、图形用户界面、数据库、动画等多个方面均具有良好的编程优势, 这很难在有限的学时内面面俱到。同时, 学生一般在学习 Java 语言之前, 均已学过 C 语言, 甚至学过 C++, 具有一定的程序设计基础。基于这些, 首先确定以下教学内容: 基本语法、面向对象( 类、继承、接口等相关内容) 、图形用户界面、输入/输出(I/O) 流、多线程、基础网络编程、数据库连接 7个主要内容。其中 Java 基本语法与 C 语言的基本语法比较接近, 在教学中可将相同部分简要带过, 主要强调两者不同之处。如 C 中无 boolean 类型, 是用 0、1 来表示逻辑真和假的; 而 Java 中有 boolean 类型, 其值为 True 和 False, 与 0、1 并无关联。众所周知, Java 所提供的功能强大的类库, 奠定了 Java 编程的基础。Java 学习的大部分内容, 如图形用户界面、网络、JDBC 等其实都是 Java 提供的能够实现相应功能的类, 通过学习这些类, 来进行不同内容的编程。类是面向对象技术的重要内容, 因此在教学过程中, 面向对象应成为 Java 教学过程的核心, 并始终贯穿整个教学过程。在教学中, 首先帮助学生理解并掌握面向对象编程的思想, 并能够熟练掌握类、对象、继承、接口等知识点的概念及应用技巧, 再在此基础上展开各个其它应用知识点的教学.

3.推行项目递进驱动教学

在教学活动中, 教师可以将大的情景任务划分为逐一的子项目,使学生置身于提出问题、思考问题、解决问题的动态过程中进行学习。以“创建带有菜单的窗口”为例, 对演示实例引导学生对其任务进行分析和分解:

通过对“创建带有菜单的窗口”实例的分析和分解, 我们引入了菜单的三个要素 MenuBar(菜单条)、Menu(菜单)、MenuItem(菜单项)以及上些简单的方法的基本概念, 使学生在用的过程中去掌握和理解, 做到以用带学的目的。

4.通过协作学习,培养学生的创新能力

协作学习是指学生通过互相合作来解决问题,并发现隐含于问题背后的科学知识的过程,在这一过程中学生间利用互相交流,来实现优势互补,从而促进知识的建构,充分唤起学生的主体意识,建立起探索性的个性化主体学习方式,形成解决问题的技能和自主学习的能力,从而培养学生的创新能力。与此同时,可以通过该方法可以使学生更好地适应社会的人才需求。

三。结束语

总之 Java语言程序设计是一门实践性很强课程重点培养学生面向对象编程技巧和动手实践能力Java教师要把握教学过程实践各个环节理论与实践相结合坚持以实践教学为主教学原则进行教学;从提高自身教学技能出发在培养学生对Java语言学习兴趣和主动性多下工夫不断优化Java教学效果。

参考文献:

[1] 任侠. Java 语言程序设计教学改革探讨[J]. 2007.

上一篇:隐患整改通知书房下一篇:建筑与装饰材料总结