词条 | Java软件工程师 |
释义 | 职业概述Java的应用可以说是无处不在,从桌面办公应用到网络数据库等应用,从PC到嵌入式移动平台,从Java小应用程序(Applet)到架构庞大的J2EE企业级解决方案,处处都有Java的身影,就连美国大型太空项目当中,也使用了Java来开发控制系统和相关软件。用途如此之广的Java造就了Java工程师的辉煌,使其在软件工程师的领域里独占鳌头!Java软件工程师运用Java这个开发工具去完成软件产品的软件程序设计、开发、测试、维护升级等工作。 工作内容完成软件的设计、开发、测试、修改bug等工作,包括业务需求的沟通,功能模块详细设计,业务功能实现与单元测试,系统维护; 参与产品构思和架构设计; 撰写相关的技术文档; 支持售前技术服务; 支持项目对产品的应用服务。 职业要求教育培训计算机相关专业,大专及以上学历。相关专业证书有:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD) 认证。目前国内在java软件工程师培训中有名的是NIIT,达内科技,北大青鸟等,这些都是拥有很多年的办学经验,在java软件培训上拥有其独特的优势。 工作经验有一定的软件分析设计能力;熟悉Java、Servlet、JSP、EJB等开发技术;熟练使用Eclipse或jbuilder等java开发工具;熟悉JAVA+STRUTS体系结构和开发工具;熟悉至少一种数据库的开发和设计;具有良好的学习能力,具有强烈的工作责任心、有良好的沟通能力和团队合作精神。 学习内容初级部分Java OO程序设计基础,包括 J2sdk基础、Java 面向对象基础、Java API使用、数据结构及算法基础、Java AWT图形界面程序开发; J2SE平台Java程序设计,包括Swing图形程序设计, Socket网络应用程序设计,对象序列化,Java 常用数据结构,Applet,流和文件,多线程程序设计; Java桌面系统项目开发,4~5人组成一个项目组,项目大小为(15人*工作日); Linux的基本操作,Linux下的Java程序开发,Linux系统的简单管理; Oracle数据库,包括SQL/PLSQL;数据库和数据库设计;简单掌握ORACLE9i 数据库的管理; 中级部分Java Web应用编程,包括 Java Oracle 编程,即JDBC;Java Web编程,包括JSP、Servlet,JavaBean;Java应用编程,包括Weblogic、Websphere、Tomcat;以及利用Jbuilder开发Java程序; MVC与Struts,学习业界通用的MVC设计模式和Struts架构; Java B/S商务项目开发,4~5人一个项目组,项目大小为(25人*工作日左右) 高级部分J2ME程序设计,包括J2EE程序、J2ME;Java高级程序设计(J2EE),包括J2EE体系结构和J2EE技术、EJB;Weblogic使用、 JBuilder开发; Java和XML,包括Java Web Service,Java XML, 业界主流XML解析器程序设计; 软件企业规范和软件工程,包括UML系统建模型和设计(Rational Rose 200x)软件工程和业界开发规范;CVS版本控制、Java Code书写规范; J2EE商务应用系统项目开发,4~5人一个项目组,项目大小为(25人*工作日左右) 薪资行情根据IDC的统计数字,在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70%。同时,Java工程师的薪水相对较高。Java软件工程师一般月薪范围在4000-10000元,远远超过了应届毕业生月薪2500元的平均水平。通常来说,有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—13万左右。 发展路径目前,虽然Java人才的薪水很高,但是对该类人才需求旺盛的IT企业却很难招聘到合格的Java软件工程师。其中,最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人要求有较大的差距。因此,计算机专业的大学生欲成为Java软件工程师,最便捷的一条路就是参加以实战项目为主要教学方法的Java职业技能培训,从而有效地缩短同企业具体用人要求之间的差距。 Java软件工程师的未来发展方向大致分为两类: 一是成为管理人员,例如产品研发经理,技术经理,项目经理等; 二是继续他的技术工作之路,成为高级软件工程师、需求工程师等。 发展前景自从sun被甲骨文收购以后,java的发展前景就变得扑朔迷离起来,很多程序开发者都感到很迷惑。2010年4月9日,被称为Java之父的JamesGosling又在个人博客上宣布离开Oracle,这一事件更为Java的前景增加了一层迷雾。但是在进入5月份之后,一切开始变得明朗起来。 首先是Oracle在Java的后续支持方面,宣布了一些列关于Java的相关计划。然后是Java之父JamesGosling继声明Java不会死去之后又盛赞Oracle对Java所做的贡献。在Oracle的活动发布网站上,连续发布了多个关于Java的推广活动。 5月12日,Oracle主要产品负责人DaveHofert将大谈对JavaSE商业应用的改进和革新。根据宣传资料,在这次演讲中,DaveHofert将提到以下问题: 商业版与社区版本之间平台支持的差异。 如何获得专家帮助,以帮助企业增强其Java应用。 对于旧版本的安全修补问题。 可使用的发布工具和更新。 6月18、19、20、27日,将分别在赫尔辛基、斯图加特、布达佩斯、伦敦举行Oracle、Sun专家与用户见面会,在见面会上与用户一起探讨Java的发展路线。主要讨论的问题包括Oracle将如何继续投资和改进Java技术,并且还会向用户通报JavaSE、JavaME专家团队的最新消息、JavaFX和JDK7最新的消息,以及OracleBerkeley DB的相关信息。 5月3日,已经离开Oracle近一个月的Java之父JamesGosling在他的博客上表达了对NetBeans 6.9 和 FX1.3发布的关心。这两个项目最新版本的发布,可以证明Oracle已经开始兑现当初的承诺。JamesGosling在其早期的博客中,也透露了不会放弃Java事业,只是需要解决一些与Oracle之间的法律问题。 这一切迹象表明,Oracle绝对不会轻易放弃Java这块巨大的蛋糕,并且Oracle也开始逐渐学会了对开源社区的尊重。首先在JDK的商业版本方面,Oracle将会继续深入挖掘Java的商业利益,与其固有产品进行更深入的整合。在社区版本方面,Oracle将与Java开发者一起探讨和研发Java的技术。这里需要特别提到的一个产品是Oracle BerkeleyDB,该产品是Oracle一直支持的一个开源非关系数据库产品,在NOSQL大行其道的今天,如果Oracle能够将BerkeleyDB与Java进行深入整合,将会为Java带来更多的活力和生命。从JamesGosling的表现来看,他似乎与Oracle之间已经达成某种谅解,并且有进一步合作的可能性。 java发展目前已经有15岁的Java在日新月异的IT技术领域内不算年轻,在过去的15年中,Java曾凭借开放和跨平台等特性、借助互联网蓬勃发展的东风,改变了C/C++称霸天下的局面,形成Java、C、C++三足鼎立的格局。特别是Java在编程语言排名榜上独占鳌头长达10年之久,并帮助Sun奠定了其在IT技术和开源领域的地位,都说明Java在开发领域中的重要性。 在未来发展方向上,Java在Web、移动设备以及云计算方面前景非常广阔。虽然面对来自网络的类似于Ruby on Rails这样编程平台的挑战,Java依然还是事实上的企业Web开发标准。在Java对新开发者吸引力方面,这么多年以来,Java一直都在面对那些不成熟的,基于脚本的程序语言的挑战。比如PHP和Ruby,虽然经过多年努力,但是并没有看到他们相具有比Java更强的竞争力。另一方面,随着云计算以及移动领域的扩张,更多的企业在考虑将其应用部署在Java平台上,无论是本地主机,公共云,Java都是目前最合适的选择。 事实上Java技术的开放性、安全性和庞大的社会已有资源,以及其跨平台性,即“编写一次,到处运行”的特点,也使Java技术成为智能手机软件平台的事实标准。采用Java技术后,编写应用程序和提供服务的人就不必关心接受其服务的手机采用的是什么操作系统和芯片,只要按照Java的要求去写程序就好了;同样,生产手机的厂商也不必顾虑将来谁来提供增值服务。同时在Oracle的技术投资担保下,Java也将是企业在云应用方面回避微软平台、在移动应用方面回避苹果公司的一个最佳选择。比如VMware就宣布了一个称为VMforce的服务,该服务将在云计算机中布置Java应用,Google应用引擎也将一如既往的支持Java。他们都是微软提供的,基于.Net和开源PHP语言基础上的Azure云平台的竞争对手。此外,进军传统的桌面应用仍是Java未来一个努力的方向之一。 JAVA作为主流的商业应用的语言在3G、物联网时代下焕发出新的生机! 在互联网时代,JAVA语言已经是使用最广泛的服务器端语言。随着3G、物联网时代的到来,JAVA语言并不会“过时”,相反,JAVA语言会在新的业务领域有着更辉煌的发展前景。 3G、物联网的发展不仅仅带动了“智能手机制造业”、“电信运营业”、“RFID产业”、“嵌入式设备”等硬件或系统软件行业的发展;更重要的是:3G、物联网开创了更多、更新的商业领域应用,而这些领域的核心编程语言仍然是JAVA! 在TTS4.0 课程体系中的基于智能手机平台的“航空公司移动服务门户”项目和基于全球定位、实时订单跟踪、RFID仓储管理等诸多物联网新技术的“新一代物流管理系统”都是这些新商业应用领域的典型代表。 未来趋势对Java来说,2010年是不平凡的一年,从Oracle在年初完成对Sun的收购,使大家对Java的未来充满了关注,而12月份在北京进行的JavaOne大会,可以说是Oracle在收购Sun之后的第一次正式大会,大家可以从 JavaOne上更多了解了Java未来的发展。而2011年,将成为Java新的开始。 Java走过了它15年的历程,在日新月异的IT技术领域不算年轻,但它一直没有停下变革、创新的脚步。Java已经不单单是一种计算机语言,很多情况下,我们称它是一个平台,一个社区。下面从Java SE、Java EE、Java ME、JavaFX几个方面,展望Java技术在2011年的发展。 Java SE 从Oracle公布的Java未来战略我们可以看到,Oracle目标是加强和继续扩大Java在新领域的应用,并将Java平台纳入新的部署架构,加大对 Java社区的投资,允许社区更多地参与。开发人员比较关注的Java SE 7将会在2011年夏天就绪,其中JCP已经批准了JSR 334、JSR 335、JSR 336和JSR 337等,支持改进Java语言和API规范,比如switch in string、multi-catch、泛型实例创建中的precise rethrow、Lambda表达式(闭包)等。而Java SE 8也将在SE 7发布之后的一年到一年半的时间就绪。 模块化的VM:可以将VM拆分成小块由应用程序使用,并按需推向Internet,这样的结果是Java应用程序的启动时间更短了,当VM不在目标机器上时,下载的时间也更短了。 额外的语言支持:Java平台支持用不同语言编写的应用程序,未来将会添加更多的语言支持,当然也包括对动态语言的支持,这就是所谓的达芬奇机或多语言虚拟机,请参考JSR-292。 增强的多核支持:需要借助工具、库和内置设施帮助新的和现有的Java应用程序更有效地利用多核硬件的优势,Java的线程模型可以轻松地创建并行执行任务的线程,但你如何将一个单一的任务拆分成多片进行并行执行呢? 其它改进包括持续的性能改进,以及许多语言方面的增强,包括增加的闭包,在switch语句中对Strings的支持,以及多块异常捕获,闭包是一个有争议的功能,它是通过使用匿名的Java内部类实现的。 Java EE Oracle长期以来一直都是Java的支持者,也是最大的JCP成员之一,10多年前就开始参与Java EE规范的编制,因此对Oracle成为Java中间件市场的大鳄不应该感到意外。 Java EE展望 模块化,开发标准:Java EE 6通过配置文件(Profile)定义实现了模块化Java EE,允许厂商根据特定需求创建更小的Java EE堆栈子集,解决成本和Java EE使用复杂问题。通过模块化设计和定义标准,有助于简化Java EE,让它的应用领域更广泛。 Java EE 6规定了两种配置文件:Web配置文件(Servlet,JSP和JSF)和Java EE企业配置文件。显然还可以定义更多的配置文件种类,例如,为支持会话初始化协议(SIP)定义电信服务器配置文件。 UI和RIA:HTML仍然是Java EE应用程序隐含的UI协议,通常有Java Servlet,JSP和JSF生成,考虑到生产的Web页面是静态的,可以使用Ajax技术,不过它已经超出了Java EE的范畴。 虽然Oracle没有明确这方面的具体计划,但未来Java EE和JavaFX集成时将会解决Ajax问题。 Java ME 作为 Oracle 首选的移动环境的 Java,这个堆栈未来默认的呈现方式将会是 HTML, CSS 和 Javascript。Java ME 将包含 WebKit 引擎,JavaScript. 引擎,和 Java/JavaScript. 桥,换言之,未来运行新版 Java ME 的手机,将能够访问浏览器以外的 Web 服务,而不会有任何性能问题。这些引擎将直接插入 Java ME 虚拟机和插入 Java FX。 Oracle 的 Java ME 引擎,将利用当代图形硬件加速器所擅长的(60 frames/秒)二维和三维渲染(在 Windows 环境下,微软的 Direct X,还有 OpenGL 或未来“更好”的技术)。 Java ME 将会针对 ARM7 和 ARM9 芯片组进行优化,包括 Broadcom,三星,NEC,德州仪器,以及其他取得授权的手机部件制造商,还将内置充分利用手机装置的支付,通话,和定位等功能的 API。 JavaFX 随着 JavaFX 和 Java 的整合,并运行于 JVM 之上,它的富媒体处理及二维和三维渲染功能,也将能提供给任何在 JVM 上运行的其他编程语言,这意味着,例如 Groovy, Scala 和 JRuby 等也都能用来整合 JavaFX 的能力。 JavaFX展望: 基于可视化组件创建一个设计范式 为JavaFX应用程序创建一个丰富的UI扩展库 提升所有平台的JavaFX性能 增强跨设备移植JavaFX应用程序的能力 与Java,JavaScript和HTML 5无缝集成 支持新兴设备和UI范式(如多点触摸) 架构设计软件架构作为一个概念,体现在技术和业务两个方面。 从技术角度来说:软件架构随着技术的革新不断地更新其内容,软件架构建立于当前技术和一些基本原则的基础之上。 先说一些基本原则: 分层原则:分层是为了降低软件深度复杂性而使用的关键思想,就像社会有了阶级一样,软件有了层次结构。 模块化原则:模块化是化解软件广度复杂的必然手段,模块化的目的就是让软件分工。 接口实现分离原则随着软件模块化的不断深入改进,面向接口编程而不是面向实现编程可以让复杂度日趋增高的软件降低模块之间的耦合度,从而让各模块更轻松改进。从这个原则出发,软件也从微观进行了细致的规范化。 还有两个比较小但很重要的原则: 细节隐藏原则很显然把复杂问题简化,把难看的细节隐去,能让软件结构更清晰。其实这个原则使用很普遍,java/c++语言中的封装原则以及设计模式中的Facade(外观)模式就很能体现这个原则的精神。 依赖倒置原则随着软件结构的进一步发展,层与层之间、模块与模块之间的依赖逐渐加深,而层、模块的动态可插拔要求不端增大。依赖倒置原则可看视为接口实现分离原则的深化,根据此原则的精神,软件进入了工具时代。这个原则有点类似于知名的好莱坞法则:Don't call us, we'll call you。 以上这些原则奠定了我们的软件架构的价值指标。但软件架构毕竟是建立在当前技术之上的。而每一代技术都有架构模式。过去的不再说了,让我们现在就来看一下当前流行的技术,以及当前我们能采用的架构。 因为面向对象是当前最流行开发技术,且设计模式的大量使用使面向对象的走向成熟,而数据库是当前最有效的存储结构、web界面是当前最流行的用户接口,所以当前最典型的三层次架构就架构在以上几项技术的基础之上,用数据库作存储层、用面向对象来实现业务层、用web来作为用户接口层。我们从三层次架构谈起: 因为面向对象技术和数据库技术不适配,所以在标准三层次架构的基础上,我们增加了数据持久层,来管理O-R双向映射,但目前一直没有最理想的实现技术。cmp和entity bean技术因为其实现复杂,功能前景有限,已接近被淘汰的边缘。JDO及hibernate作为o-r映射的后期之秀,尤其是hibernate,功能相当完备。推荐作为持久层的首选 在业务层,因为当前业务日趋负载,且变动频繁,所以我们必须有足够敏捷的技术来保证我们的适应变化的能力,在标准j2ee系统中session bean负责业务处理,且有不错的性能表现,但采用ejb系统对业务架构模式改变太大,且其复杂而昂贵,业务代码移植性差。而spring 作为一个bean配置的轻量级架构,漂亮的IOC模式实现,对业务架构影响小,所以推荐作为中间层业务框架。 在用户结构层,虽然servlet/jsp/jstl/javaBean 能够实现MVC架构,但终究过于粗糙。struts对MVC架构的实现就比较完美,Taperstry也极好地实现MVC架构,且采用基于事件的方式,非常诱人,惜其不够成熟,我们仍旧推荐struts作为用户接口层基础架构。 因为业务层是三层次架构中最有决定意义的,所以让我们回到业务层细致地分析一下,在复杂的业务我们常常需要以下基础服务的一种或几种:事务一致 性服务acid(tool:jta/jts)、并发加锁服务concurrent&&lock、池化管理服务cache、访问控制服务(tool:jaas)、流程控制服务workflow、动态实现服务IOC,串行化消息服务(tool:jms)、负载平衡服务blance等。如果我们不采用重量级应用服务器(如weblogic,websphere,jboss等)及重量级组件(EJB),我们必须自己实现其中一些服务。虽然我们大 多情况下,不需要所有这些服务,但实现起来却非易事。幸运的是我们有大量的开源实现代码,但采用开源代码却常常是件不轻松的事。 随着xml作为结构化信息传输和存储地位日渐重要,一些xml文档操作工具(DOM,Digester,SAX等)的使用愈发重要,而随着 xml schema的java binding工具(jaxb,xmlbean等)工具的成熟,采用xml schema来设计xml文档格式,然后采用java binding来生成java bean 会成为主要编程模式,而这又进一步使数据中心向xml转移,使在中小数据量上,愈发倾向于以xquery为查询语言的xml数据库。最近还有一个趋势, microsoft,ibm等纷纷大量开发中间软件如(microsoft office之infopath),可以直接从xml schema 生成录入页面等非常实用的功能。还有web service 的广泛应用,都将对软件的架构有非常重大的影响。至于面向服务架构(SOA)前景如何,三层次架构什么时候走入历史,现在还很难定论。 aop的发展也会对软件架构有很深的影响,但在面向对象架构里,无论aspectJ还是jboss-aop抑是aspectWerks、 nanning都有其自身的严重问题:维护性很差,所以说它将很难走远。也许作为一个很好的思想,它将在web service里大展身手。 rdf,owl作为w3c语义模型的标志性的语言,也很难想象能在当前业务架构发挥太大影响。但如果真如它所声称那样,广泛地改变着信息的结构。那么对软件架构也会有深远影响。 培训机构国内目前比较大的培训机构有:青大实训(南京鼓楼)校区、北大青鸟连锁加盟学校、安博教育郑州志远IT学院、新华电脑学校、牛耳软件教育、昂立慧桥软件学院、华奥方舟网络工程师培训基地、NIIT全国连锁、杭州北大青鸟公办校区、东方标准、汇众益智、 江苏万和计算机培训中心等! |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。