java程序员招聘

2024-08-01

java程序员招聘(共8篇)

java程序员招聘 篇1

职位描述:

1、参加基于 JAVA 技术的门户网站的开发;

2、负责公司的网站开发维护及新产品的研发;

3、书写技术文档和制定开发规范;

4、从系统层面去合理析网站产品,并提供开发工程师构架建议;

任职资格:

1、计算机相关专业大专或以上学历; 2、2年以上电子商务平台开发经验;

3、精通Java、JSP开发;熟悉Eclipse开发工具,熟悉J2EE架构以及servlet、javaBean等相关技术;

4、熟悉Weblogic、Tomcat等WEB应用服务器,有相关应用部署经验;

5、熟悉Mysql、Sqlserver数据库;

6、精通Linux环境WEB服务器开发与部署;

7、熟悉HTML、css等;

8、头脑灵活、思维敏捷、性格开朗。

具体要求:

熟悉J2EE架构,有Java开发经验二年以上.透彻理解MVC模式,能熟练运用Spring做项目。熟悉Jsp,JavaScript开发,有B/S开发经验.熟悉SQLServer,Oracle,MySql,任何一种.有应用软件开发背景或对抽像思想有深刻认识或有MVC框架开发经历优先.有良好的沟通能力和独立的工作能力,能出差。有数据库方面专长优先。

工作职责:负责产品的设计、开发、测试和维护工作,并进行相关文档的编写。职位要求:

1.具有使用Java开发项目的经验,工作经验1-2年;

2.熟悉面向对象编程原理,熟悉J2EE、Servlet,JavaBean、JSP、javascript、XML、Spring、ibatis、Struts、WebService等技术; 3.熟悉Struts、ibatis等MVC架构; 4.熟悉并能熟练使用CORBA; 5.熟练掌握Oracle等数据库应用;

6.熟悉三层架构并熟练应用Apache,Tomcat等;

7.工作认真,细心,有条理;积极性高,求知欲强;具有较强的责任心,沟通能力及团队合作精神。

注:可年后到岗

岗位职责

1、进行产品需求分析;

2、负责公司新产品的研发和设计;

3、负责公司现有产品的维护和升级;

4、负责对软件进行单元测试、集成测试;

5、负责解决开发过程中的技术问题;

6、负责对系统测试和验收测试报告的问题进行回复;

7、负责软件更改说明、功能特性说明等开发文档编写工作;

任职资格

1、计算机及相关专业毕业,大学本科以上学历

2、一年以上相关工作经验;

3、熟悉软件技术文档的编写;具备良好的文档编制习惯和代码书写规范;

4、熟悉Visual C++开发环境;精通C/C++语言编程;良好的C/C++功底;

5、积极上进,善于学习,具备良好的分析、解决问题的能力

6、英语听、说、读、写能力强;

7、良好的沟通能力和团队协作精神;

基本要求

(1)学历要求:专科以上学历,计算机及其相关专业,2年以上相关岗位经验;

(2)工作经验要求:一年以上java开发工作经验;B/S项目开发经验1年以上;1年以上的Java, J2EE, XML等开发经验,1年以上架构设计经验(Windows环境);

(3)项目开发要求:具有一定规模的项目开发经验; 其它要求:

(1)有较强的学习能力。

(2)具有良好的表达和交流能力,较强的沟通能力,富有进取心;

(3)具有阅读相关技术需求文档能力;具有一定的软件设计及文档编写能力。

Java硬性技术要求:

(1)精通JAVA开发语言、熟练掌握Eclipse开发工具;熟悉HTML、精通Apache、JSP、Servlet等Web开发相关技术;熟悉主流数据库,熟练掌握SQL。

(2)熟悉使用struts、spring、hibernate等常用开发框架;查看、分析前述和其它Java开源项目源代码者优先。

(3)熟练使用JavaScript和Ajax技术;具有一年及以上Ajax开发经验或熟悉Javascript。

应用过UML、重构、软件设计模式者优先……

工作职责:

参与系统设计,进行产品开发

岗位要求:

1.具备Web开发技能,精通JSP、HTML、JAVA语言开发;

2.熟悉TOMCAT安装与Web应用程序部署;

3.会使用数据库中间件:JDBC,Hibernate;

4.大学本科以上,至少2年以上的相关工作经验;

5.有基于GIS系统开发WEB应用经验者优先。

注:工作地点在北四环保福寺桥

职位描述:

要求:

1、有2年以上J2EE相关技术架构的中小型项目开发经验;

2、精通IBM WebSphere或Bea Weblogic平台下的J2EE开发。最好是用IBM WebSphere5.0进行过为期一年以上的J2EE应用开发。并且在开发过程中,大量运用了JSP、JSTL、JNDI、JDBC、XML、AJAX技术和Spring、Struts、Hibernate框架以及Web Services;

3、熟息Web程序开发流程,包括对架构设计、模块设置、代码编写、页面制作、调试、测 试和布署;

4、精通Web Services体系和Web服务体系,能熟练运用在开发过程之中;

5、JS面向对象

pvototype.js,精通JAVA script

6、至少精通Oracle、SQLServer、Sybase数据库中的一种,能熟练编写存储过程和综合查询 视图;

7、有丰富的团队协作开发经验,熟悉CVS管理等团队协作工具。

8、熟悉民航机务维修业务或有类似行业经验者优先。

1.一年以上Web开发开发经验,熟练使用JAVA开发语言,熟悉B/S结构网站开发流程,熟悉HTML,JAVASCRIPT,JQUERY;

2.良好的编程能力,掌握J2EE平台JAVA编程技术,有开源项目hibernate、struts,spring中的两种以上使用经验;

3.熟悉Grails开发有相关经验者优先;

4.熟练掌握主流的应用服务器,如TomcatWeblogicApache等的使用和管理;

5.熟悉SQL语言,熟悉MySQL数据库,熟悉SQL脚本;有ORACLE、SQLSERVER等大型数据库开发经验优先;

6.有WAP网站开发经验者优先;

7.有较强的学习与自学能力; 有良好的合作性和沟通能力,高度的奉献精神及敬业精神;

职位描述:

基本要求

1、年龄 22-33岁

2、计算机应用等相关专业

职位要求

1、精通JAVA开发,熟悉JSP,有一年以上JAVA开发经验,熟练JBuilder等开发工具;

2、熟悉BJB规范、J2EE体系,Weblogic,WebSphere等主流的中间件产品;

3、对MVC模式有较深入的理解,熟悉Struts架构;

4、熟悉XML技术;

5、熟悉数据库技术;

6、能够适应外地出差;

7、有BIP/EAI方面经验者优先;

8、逻辑表达能力强;

9、具备独立开发和运维能力;

10、熟悉电子商务与网上交易研发的JAVA工程师优先(1名)。岗位职责:

1、参加开发和实施公司各类软件项目;

2、参加负责项目后期运行维护;

3、服从软件经理的其他开发任务安排。

职位描述: 岗位职责: 1.程序开发 2.网站的日常维护 任职要求: 1.精通J2EE技术;

2.熟练使用java,JSP,JavaScript等开发语言,熟悉AJAX;

3.精通SQL语法及mysql数据库应用开发;

4.精通HTML,XML,CSS等超文本标记语言;

5.精通B/S三层结构开发模式,熟练各种中间件;

6.精通spring,hibernate;

7.精通Apache、Tomcat;

8.精通Eclipse、JBuilder、Ant等开发工具; 9.重视实践能力。

1、大专或者本科以上学历 2、1年以上大型B/S结构应用软件系统(J2EE架构)开发经验。

3、熟悉一些知名开源项目的框架,如Structs、Spring、Hibernate;并且有实际运用其开发的经验。

4、熟悉Oracle/MYSQL/SQLServer等主流数据库管理系统、相关技术及工具。

5、熟悉B/S模式的应用开发,能灵活使用HTML/DHTML、XML、JavaScript;

6、精力充沛,能承受工作压力,有团队开发经验者优先考虑。

任职要求:

1、本科以上学历,理工科相关专业;

2、精通面向对象设计方法,逻辑能力佳;

3、精通J2EE,掌握XML、HTML、JSP、AJAX等技术; 4、2年以上J2EE开发经验,至少熟悉MySQL、Oracle、SQL Server中的一种数据库开发;

5、有Websphere开发经验者优先;

6、具备极强的团队精神和合作精神,对工作有热情。

上海沃克软件有限公司成立于2001年,是由中外专业人士创立的软件服务公司。公司面向银行领域,为国内银行提供一流的IT咨询和产品解决方案。

目前公司能够提供的解决方案包括: 1.银行核心业务系统解决方案。2.银行EAI/ESB解决方案。3.银行综合前端解决方案。4.银行卡系统解决方案。5.银行现代化支付解决方案。6.银行统一应用系统监控解决方案。7.银行信贷管理系统解决方案。

“ 应用为本,专注行业 ”的发展战略,使上海沃克软件有限公司形成了 “以行业用户为中心” 的

管理体制,将解决方案、市场销售、技术支持等业务,进行一体化整合。尤其在金融领域,形成了银行应用系列及开发工具系列等,为用户提供了完善的解决方案和优质服务,同时公司成立了一个相对独立的技术服务中心,为客户提供全面的技术支持。

上海沃克软件有限公司致力于成为银行业信息化建设的咨询专家、应用软件解决方案及相关软件产品的优秀提供商及服务商,成为国内这一领域最有价值的企业。

基本要求:

1、一年以上工作经验;

2、专业要求:计算机,通信,自动化;

3、踏实、勤奋、开朗、富有责任心、注重细节; 岗位要求:

1、至少参与过两个基于J2EE的WEB项目的开发;

2、能够基于详细设计文档独立完成模块的编码实现;

3、熟悉基于B/S架构的应用软件开发流程;

4、扎实的JAVA基础功底;

5、熟悉J2EE基于开源框架的开发;

6、webwork、spring、ibatis、struts、hibernate等主流框架至少使用过三种;

7、熟练应用Eclipse、svn等常用开发平台和版本控制工具;

8、熟悉ORACLE,能够熟练编写常用SQL语句;

9、熟悉WEBLOGIC、webspere、tomcat等应用服务器;

10、熟悉常用JAVASCRIPT;

11、熟悉公安业务者优先; 报道时间要求:一个月内。

欢迎有项目经验的优秀毕业生加入!

注:本公司检查学历,执假学历者请勿浪费时间

工作要求

1.有两年软件开发经验。

2.熟练掌握Oracle+Java开发技术,熟练掌握Eclipse开发工具。3.熟悉Spring+Hibernate+Struts+Ibatis等Java开源框架。4.熟悉JavaScript、HTML、JSP、CSS等页面相关技术。5.熟悉Linux操作系统。

6.能独立完成数据库和程序设计。工作内容

1.负责公司业务系统的编写和修改 2.负责公司网站开发及设计 3.公司数据分析

岗位职责

1、参与新项目整体开发和计划;

2、参与项目系统架构设计,负责系统模块分析和系统接口设计;

3、核心代码与组件编写,共享重用代码库开发;

4、项目代码审查与确认,制定代码编写的规范;

5、负责系统性能优化和技术攻关;

任职资格

1、计算机相关专业,本科以上学历;

2、3年以上软件开发工作经历;

3、精通JAVA语言,熟练使用组件技术,数据库,相关开发工具,能独立承担项目的模块开发任务;

4、熟悉相关框架知识,熟练应用服务器配置;

5、有良好的编码习惯和技术文档编写能力;熟练阅读英文技术文档,具有很强的沟通、组织和协调能力;

6、能够承受较强的工作压力和强度,有极强的工作责任心。

1.一年以上Web开发开发经验,熟练使用JAVA开发语言,熟悉B/S结构网站开发流程,熟悉HTML,JAVASCRIPT,JQUERY;

2.良好的编程能力,掌握J2EE平台JAVA编程技术,有开源项目hibernate、struts,spring中的两种以上使用经验;

3.熟悉Grails开发有相关经验者优先;

4.熟练掌握主流的应用服务器,如TomcatWeblogicApache等的使用和管理;

5.熟悉SQL语言,熟悉MySQL数据库,熟悉SQL脚本;有ORACLE、SQLSERVER等大型数据库开发经验优先;

6.有WAP网站开发经验者优先;

7.有较强的学习与自学能力; 有良好的合作性和沟通能力,高度的奉献精神及敬业精神;

软件工程师(java)

职位描述

1、B/S项目开发经验2年以上

2、熟悉使用struts、spring、hibernate

3、查看、分析上述活其它Java开源项目源代码者优先

职位要求:

3年以上的Java, J2EE, XML等开发经验,1年以上架构设计经验(Windows环境);

熟练掌握Structs、Spring、Hibernate,等常用开发框架; 精通Transaction、Security、Persistence等机制及实现,IOC、AOP、SOA等理念及实现 熟悉主流数据库系统、应用服务器和开发工具,如SQLServer, Oracle、WebLogic、WebSphere、JBoss、Tomcat、JBuilder、Eclipse, 熟悉 HTML/JAVASCRIPT/CSS 等WEB技术;

熟练掌握面向对象的分析设计技术和工具,包括UML等。两年以上大型J2EE架构的门户网站项目经验者优先;良好的表达和交流能力,富有进取心;

了解Web应用的性能瓶颈和调优方式 专业: 计算机相关专业本科以上

公司介绍

1997年,一个人才的摇篮在上海诞生—新世界教育,这个由海外资金注入,国内精英支持的教育集团,正式扬起了航行的风帆。新世界教育旗下已拥有新世界进修中心、樱花国际日语、新贝青少儿教育、爱马德汉语培训、智赢国际雅思等数家知名专业培训机构,在不同的教育领域取得了非凡的成绩。

新世界教育集团立足于上海,走向全国。经过十年发展,在上海已经建立了46个学习中心,遍布沪上繁华商圈的涉外办公楼。在北京、广州、深圳、大连、青岛、杭州、南京、苏州、绍兴、无锡、常州、南通、温州等18个城市建立了98个学习中心,扩展了外地教育市场,成为全国闻名的培训学校。

现在全国范围内诚聘英才。

我们将提供完善的培训,和良好的职业发展机会。

1.要求计算机软件、通信及相关专业的本科或硕士毕业; 2.具有二年以上在J2EE架构下开发大型项目的经验;

3.精通java开发工具,熟悉Oracle、Informix等数据库的使用和开发;

4.精通J2EE技术架构,具备较强的独立开发能力;

5.具备较强的沟通能力以及团队协作精神,具有出色的分析判断能力。

工作职责:

1、依据项目要求和相关规范,完成系统的详细设计和相应文档的编写

2、根据项目要求和编码规范,完成基于J2EE平台的相应编码(Java、JSP、Servlet、EJB、XML等)任务

3、根据项目要求和单体测试规范,完成系统的单体测试Case设计、实施和总结

4、根据项目要求,配合项目人员完成结合测试、系统测试和系统交付等工作

职位要求:

1、计算机相关专业,重点大学本科以上学历,精通Java,3年以上编程开发经验,有较好的面向对象的程序设计思想和应用经验;

2、熟悉Flex,熟悉IBM Websphere、Eclipse、Jboss、Tomcat等系列产品;

3、熟悉Oracle,SQLServe、DB2数据库开发,精通SQL语言;

4、对J2EE开发体系架构有较深的理解和丰富的项目实践经验,熟练掌握Web Service、Web组件、EJB组件的相关开发

5、熟悉和精通用于Java Web开发的各种流行的开发框架、数据库框架及其设计思想,比如:Struts、Spring、Hibernate等;

6、具备较强的逻辑思维能力和学习能力;或许会有项目出差。

7、对工作认真负责,肯吃苦;积极主动;具备较好的语言表达和沟通能力;

8、有HIS系统开发经验优先。

工作职责:

1、依据项目要求和相关规范,完成系统的详细设计和相应文档的编写

2、根据项目要求和编码规范,完成基于J2EE平台的相应编码(Java、JSP、Servlet、EJB、XML等)任务

3、根据项目要求和单体测试规范,完成系统的单体测试Case设计、实施和总结

4、根据项目要求,配合项目人员完成结合测试、系统测试和系统交付等工作

职位要求:

1、计算机相关专业,重点大学本科以上学历,精通Java,3年以上编程开发经验,有较好的面向对象的程序设计思想和应用经验;

2、熟悉Flex,熟悉IBM Websphere、Eclipse、Jboss、Tomcat等系列产品;

3、熟悉Oracle,SQLServe、DB2数据库开发,精通SQL语言;

4、对J2EE开发体系架构有较深的理解和丰富的项目实践经验,熟练掌握Web Service、Web组件、EJB组件的相关开发

5、熟悉和精通用于Java Web开发的各种流行的开发框架、数据库框架及其设计思想,比如:Struts、Spring、Hibernate等;

6、具备较强的逻辑思维能力和学习能力;或许会有项目出差。

7、对工作认真负责,肯吃苦;积极主动;具备较好的语言表达和沟通能力;

8、有HIS系统开发经验优先。

java程序员招聘 篇2

1.1 市场需求分析

目前互联网已经渗透到人们生活的各个角落。随着社会经济的快速发展, 人才流动变得愈加频繁, “跳槽”、“猎头”等也搭上了互联网这列快车, 网络人才招聘服务正以高速的发展势头适应着快节奏的现代生活。

目前, 网络招聘行业正向专业化、地域化、高质量趋势发展。人才网站提供的不仅仅是简单的在线求职、招聘、发布信息这些功能, 还要做到以客户需求、人才需求的变化来改进服务, 做到更加专业、更有特色、更高质量。

1.2 可行性分析

可行性分析也称为可行性研究, 是在系统调查的基础上, 针对新系统的开发是否具备必要性和可能性, 对新系统从技术、经济、社会各方面进行分析和研究, 以避免投资失误, 保证新系统开发成功。可行性研究的目的就是以最小的代价在尽可能短的时间内确定项目是否能够成功。

(1) 经济可行性分析。本系统是网络招聘系统, 利用计算机和网络, 很多工作在网上进行, 可以明显减少管理人员工作量、提高工作效率, 能方便快捷地查询和统计就业信息, 节省大量人力、物力, 所带来的效益远远大于系统软件的开发成本, 在经济上完全可行。

(2) 法律可行性分析。法律可行性是考虑系统是否存在任何侵犯、妨碍和责任问题, 本系统所有软件都选用正版, 所有技术资料都由开发方保管, 提出方拥有使用权, 以合同形式确定违约责任。由于本系统开发有合同作为双方合作的基础, 所以不存在任何侵犯、妨碍和责任问题, 即使存在, 也可以根据合同条款追责。

(3) 操作可行性分析。界面设计充分考虑了管理人员的习惯, 操作简单;数据录入迅速、规范、可靠;统计准确;适应力强容易扩充;具有易用性、灵活性、开放性与可视性。

1.3 功能需求分析

根据对求职就业信息及渠道分析, 将其划分为求职方、招聘方和运营商3部分, 其主要功能如图1所示。

从图1中可以看出, 前台分为招聘方和求职方两大部分, 每个部分又细分为不同的子模块。以求职人员为例, “简历模块”是对本人简历的管理, 包括简历的添加、修改、删除及简历投递;“应聘模块”是向公司投递简历;“搜索模块”可以按照不同的条件搜索出相对应的工作;“招聘列表页”指应聘方进入工作列表页, 选择具体工作进入工作详情页。

后台功能主要是管理员对整个网站进行管理, 包括求职人员管理、企业管理、资讯管理3个模块。其中, 求职人员管理和企业管理的功能类似, 用来管理求职人员和企业的基本信息;咨讯栏可以输入最新动态, 非管理员不能登录。

2 总体设计

2.1 系统功能模块

本平台将系统功能划分为运营商管理模块、招聘方管理模块、求职方管理模块、资讯管理模块[1], 如图2所示。

2.2 数据库设计

本系统由于没有超大规模的数据处理和高并发的需求, 因此采用性价比高的MySql5作为系统的数据库服务器。经过需求分析及实体关系图, 得到系统所含数据表[2,3]。

(1) 分类表 (Category) :分类表主要存储工作的分类, 其字段有分类ID、分类名称、分类级别。

(2) 简历表 (Resume) :简历表主要用来存储求职者简历信息, 其中字段包括ID、期望工作、自我介绍、教育经历、工作经验、备注、状态等, 具体设计如表1所示。

(3) 简历投递记录表 (RJ) :建立求职者简历表, 主要记录简历投递情况, 其字段有ID、jobid、resumeid、state。

(4) 求职者表 (Student) :求职者表主要存储求职人员的基本信息, 其字段有ID、用户名、密码、真实姓名、性别、出生年月、住址、身份证号、家庭地址、电话号码、邮箱、照片等。

3 系统实现

本系统设计分为视图层、控制层和持久层, 用户在视图层输入或者查看需要的数据, 向控制层传递数据, 由持久层进行数据底层的操作。系统实现部分展示相应功能的实现效果和核心代码。

3.1 简历模块

(1) 简历添加。用户登录成功后, 便可以根据不同工作需要创建不同的简历。用户在客户端输入简历的基本信息, 数据提交给控制层, 控制层提取数据, 利用实体将该数据传递给持久层, 持久层将该简历与用户注册表比对确定简历关系, 以此判断该简历所属用户。

(2) 简历修改。用户可以修改简历的基本信息, 根据简历的ID, 持久层提取该简历数据, 经控制层传递给客户端, 客户端处于编辑状态, 修改基本信息后, 客户端将修改的基本信息传递给控制层, 再由持久层进行更新。

(3) 简历列表。根据用户名显示该用户的所有简历, 在简历列表页显示。用户可以点击相应的按钮进行简历的修改、删除、查看操作。

(4) 简历查看。根据简历的ID, 可以查找到该简历的所有信息, 通过持久层的数据传递到客户端, 然后显示在游览器中。核心代码[4]具体如下:

3.2 简历投递信息

点击简历投递记录即可查看该用户投递的所有信息。进入投递简历的列表页, 点击工作可进入投递简历的工作详情页, 点击公司名称, 进入该公司网站。

4 结语

本文对求职招聘系统进行了研究, 从需求分析、功能设计、数据库设计、具体实现几方面进行了详细的分析和描述。对系统实现部分, 由于篇幅所限, 无法对所有模块进行描述, 只给出了部分模块的核心代码, 相关人员可以在此基础上作进一步的详细研究。

参考文献

[1]单东林, 张晓菲, 魏然.锋利的jQuery[M].第2版.北京:人民邮电出版社, 2012.

[2]李刚.疯狂Java讲义[M].北京:电子工业出版社, 2012.

[3]明日科技.Java经典编程300例[M].北京:清华大学出版社, 2012.

Java程序混淆技术综述 篇3

关键词:Java程序;混淆技术;软件水印;防篡改;软件版权保护

中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 09-0000-02

人们对于计算机的依赖性随着软件技术的不断给人们带来便利和乐趣,使工作更富有主动性和操作性,但是任何事物在发展过程中都会有其负面效应与之相对,随着计算机软件应用量和种类的不断扩展,其使用安全问题便开始影响到人们的正确使用,并开始逐渐打击使用计算机的积极性,以及对于安全问题的无奈。主要攻击形式是通过对软件备份的破坏而直接将软件彻底摧毁,根据现有问题,当前的软件已经经过改良,重新调试,但是攻击则换角度也将攻击破解方式进行重组,使改良的部分无法发挥其作用,这样软件就不会得到应有的保护,依旧能够以非正规途径得到软件的任何数据,从而进行大面积的传播,这也就是为何当今软件盗版现象严重的途径之一。Java程序的出现,首先能够在网络上加快传播速度并且无客观條件可以轻松普及,但同时却能够通过无关性对产权进行有效的保护,不会轻易的被人盗用。

一、软件混淆技术基本原理

(一)基本释义

软件混淆技术是为了能够在软件受到侵害或是盗用时可以被保护的一种现代技术,软件技术首先咋1977年新西兰首次被提出,其实是将原有的程序的语言转换成一种密码语言,不能被一般的软件所识破的一种转换,并且研制出能够对这种转换进行评估的理论计算。转换的形式未变,只是在形式上保留原有的运行根组成,添加一些其他能够扰乱破坏和读取的程序代码。如今混淆技术开始不断的发展,诸多的被应用于产权的保护中,所谓的混淆就是通过语词的转变但保持其语义依然与之前相同,这就能保证软件在使用时功能是不变的,却能够防止逆向工程攻击和被静态分析。

(二)软件混淆技术的分类

当Java文件经过处理,在原有的基础上添加了其他程序代码成为类文件,这种类文件包括魔数( magic number) 、版本( version) 、常量池( constant pool ) 、访问标识( access flag s) 、(this)类、(super)类、接口( interfaces) 、域( fields) 、方法(methods) 和属性(attributes) 。

软件混淆主要通过类内混淆和类间混淆来根据不同的使用对象进行划分,类内混淆主要是克服(methods)中的code字段,而类间混淆却是针对多种类文件的综合体进行混淆处理,其主要的方式是合并和拆分相对的过程处理。

下面分别介绍两种混淆。

(1)、类内混淆

能够支持类内混淆的途径有数据混淆、控制混淆、切片混淆以及针对特定工具混淆四种。数据混淆是对数据的结构组成元素原有的书写方式进行修改,使其不再成为能够被认知的程序。主要有:变量存储和编码混淆、变量聚合混淆、顺序调整混淆、词法混淆以及移除注释和调试信息混淆。控制混淆是在信息传输过程中的保护,主要采取追踪定位等方式实时监测信息的状态,从而对其他袭击系统进行抵御。切片混淆,正常在一般的软件中问了能够让计算机更好的识读软件,所以增加了切片以帮助更好的理解,降低难度,而混淆了切片则能够使其首先无法有助于难度的下降,另外会造成对于程序的误导可能降低了或是更改了某些其他的程序,达到了增加难度混淆的目的。针对特定工具混淆软件为了能够起到保护作用,本身具有一定的反编译和反混淆的功能,会在一定的紧急时刻自动启动,而针对特定工具就是抑制了自动的传导,对于能够使软件本身内部之间的反编译都可以正常的进行,但是对于外部的反编译就不会在自动启动,这就是混淆的高级之处。相区别与前三者人的行为,针对特定工具混淆具有自动的功能针对的是自动化。如果能够与以上三种任意搭配就能够达到防住人机的共同目的。

(2)、类间混淆

类间混淆是合并拆分类文件而造成混淆的目的其中又有三种表现形式:类合并、类拆分、隐形类间混淆。类合并是要面对多个文件的自身组成的函数变量,通过将函数、变量的名称进行更改,注意在更改过程中一定不能同时出现两个或以上的名子,如果在合并中有参数同系统提示无法进行更改,则要为其中一个虚拟一个参数。另外如果合并文件中有继承关系的则需要在合并成功后加入一个布尔型的私有变量用于区分标识符相同的函数。类拆分则是观察现有的文件是否进行拆分,同时并作出相应的调整。对于结果是可拆分的类就是将A拆分为A1与A2,为了能够使A的要素都能够实现所以应该是A2处于继承A1关系。类型隐藏是通过接口来实现混淆,并且能够保证原文件并不需要改变接口,所以被称为隐形。相比类合并,类拆分和隐形类间混淆所用的时间相对较短。

二、软件混淆算法的攻击模式

(一)混淆算法的理论研究

混淆技术的提出者曾经试图将整个运行过程当做是一个虚拟黑箱来看,也就是说对于其他程序来说这就完全是另外一个软件和原软件无任何联系,从它的输入和输出的方式内容和代码都不同,这种在理论中是可以站的住的,但是在实际操作中会受到很多因素的限制,但在相对宽松的要求下还是可以实现混淆技术的使用。后来又根据该理论研究通过点函数来实现虚拟黑箱,总而言之其未来的研究空间还有很大,期待它的日益成熟。

(二)混淆算法的攻击模式

1.针对数据混淆算法的攻击

假定T 是对程序P 的一个单向的混淆变换,当且仅当从原始程序P 除去某些信息后,无法通过混淆后的程序Pc恢复出P。词法变换是最典型的不可逆混淆算法。虽然对于经过词法变换的程序进行攻击不可能恢复程序的原貌,但只要理解程序各个模块的含义就可能对程序产生威胁。例如根据无法被混淆的系统API 名称等关键字,攻击者可以推测出该模块的大致功能。

2.针对控制流混淆算法的攻击

目前,针对控制流混淆算法的主要攻击方法是动态分析。动态分析对大部分混淆算法的攻击作用,并阐述攻击模型. 对于控制流混淆而言, 变换后生成的程序中若存在始终不执行的分支,通过动态分析就能找到对破解程序有用的信息.针对控制流混淆,还有黑盒测试攻击, 该方法通过对程序进行黑盒测试,了解各个类及其函数的功能, 从而获取攻击者需要的信息. 这种方法对大多数的混淆变换均能加以攻击。同时,该方法也存在着一定的局限性: 黑盒测试缺乏自动分析工具,需要依靠大量的人力来完成分析工作。

三、对于混淆技术的未来预估

混淆技术是一种可用于抵制逆向工程和重组工程、对软件知识产权进行保护的程序变换技术。使用混淆技术虽然会使代码的效率有一定程度的降低,但是它的实现代价相对较小, 因而在近年引起了广泛的关注.由于混淆技术不改变程序功能的特性, 并且有些词法混淆算法甚至可以减小原程序的体积, 因此混淆技术得以在保护移动代码方面得到广泛的应用. 受移动平台资源的限制,今后混淆技术的研究方向一方面要加大混淆的力度,增加攻击者反编译的难度,另一方面也要考虑降低混淆算法对目标程序的运行负担。文献探讨了混淆技术在移动代理上的应用。目前保护软件知识产权的新技术主要有3种:混淆技术、软件水印技术和防篡改技术。这3种技术各有特长,将它们互相结合使用,可以给予目标软件更为可靠的保护,这也是目前研究的一个重要方向。对于混淆算法的评估、正确性验证以及如何研制高效可靠的混淆算法, 也是将来的发展方向之一。

四、总结

混淆技术是对软件进行的基础产权保护,为了能够增加破译的难度和代价,从而使产权盗版的情况发生率降低,同时还能提高软件水银的鲁棒性,有人提出将程序的编译混淆, 而不是混淆程序本身。但是该方法还有若干问题需要考虑。使软件的安全度进一步提升,给人们的使用带来了更多的福音,虽然该技术已经广泛运用也颇收到好评,在技术上依旧有大的发展前景,需要投入更多的研究力量。

参考文献:

[1]霍建雷,范训礼,房鼎益.Java标识符重命名混淆算法及其实现[J].计算机工程,2010,第1期

[2]咸星海.面向对象代码混淆技术研究及软件实现[J].中国科技博览,2010,第19期

[3]刁俊峰.软件安全中的若干关键技术研究[D],北京:北京邮电大学,2007

[4]李新良,罗戈夕.基于Java的代码混淆算法研究[J].湖南文理学院学报:自然科学版,2010,第3期

[5]霍建雷,范训礼.房鼎益,Java标识符重命名混淆算法及其实现[J].计算机工程,2010,第1期

[6]李婧.基于控制流混淆轉换的代码保护技术[J].计算机安全,2009,第8期

[7]袁征,冯雁,温巧燕,张华.构造一种新的混淆Java程序的不透明谓词[J].北京邮电大学学报,2007,第6期

java程序员招聘 篇4

那么java程序员到底是一个什么类型的工作,他们需要掌握什么技能呢,而他们在企业面试中又会遇到什么考题呢?经欧泊泰克就业小编总结,在java程序员面试时经常会遇到String类问题,下面就让我们一起分析解决这些问题,让我们程序员们轻松应对。问题1:

String s1 = “abc”;

String s2 = “abc”;

System.out.println(s1 == s2);

这里的结果是true.由于字符串是常量(内存中创建对象后不能修改), 而且字符串在程序中经常使用.所以Java对其提供了缓冲区.缓冲区内的字符串会被共享.使用双引号的形式定义字符串常量就是存储在缓冲区中的.使用“abc”时会先在缓冲区中查找是否存在此字符串, 没有就创建一个, 有则直接使用.第一次使用“abc”时会在缓冲区中创建, 第二次则是直接引用之前创建好的了.问题2:

String s1 = new String(“abc”);

String s2 = new String(“abc”);

System.out.println(s1 == s2);

这里的结果是false.使用构造函数创建的字符串都是在缓冲区外面创建一个新的.所以只要是使用构造函数创建的字符串, 和任何字符串都不会相等.问题3:

String s1 = “abc”;

String s2 = “a”;

String s3 = “bc”;

String s4 = s2 + s3;

System.out.println(s1 == s4);

这里的结果是false.Java中字符串的相加其内部是使用StringBuilder类的append()方法和toString()方法来实现的.而StringBuilder类toString()方法返回的字符串是通过构造函数创建的.问题4:

String s1 = “abc”;

String s2 = “a” + “bc”;

System.out.println(s1 == s2);

这里的结果是true.其实这里的s2并没有进行字符串相加, 两个双引号形式的字符串常量相加, 在编译的时候直接会被转为一个字符串“abc”.问题5:

String str = “abc”;

str.substring(3);

str.concat(“123”);

System.out.println(str);

这里结果是“abc”.由于字符串是常量(内存中创建对象后不能修改), 该类中所有方法都不会改变字符串的值.如果希望使用一个可变的字符串, 可以使用StringBuilder或StringBuffer类。

java程序员招聘 篇5

程序员提高自我修养是为了什么?

程序写的好有人崇拜,有妹子喜欢?还是到博客、论坛、社区发表文章进行分享获得成就?我想这是少数人的追求,也是更高的追求,在这之前

我认为,在中国,程序员提高自我修养的目的,是为了:

1、更好的融入工作,减少困难,增加成就

2、稳步的提升能力,提高收入,达成财务自由

2、站在更高的层面看待自己的学习和工作,树立更加适合的人生观价值观,家庭幸福,生活愉快

说的更通俗一点,就是用更加合理的方式和方法,赚取到更多的收入

说了这么多废话,进入正题

何为程序员的自我修养?

正面论述很难说清楚,反向描述可能更通俗易懂一些,自我修养的对立面是“没有修养”,先说一说在这么多年的工作、学习、生活中,遇到的一些我认为“没有修养”的程序员形态:

1、程序员小张遇到了一个开发问题,很着急,想到了有几个群,于是到群里发了他的问题,坐等回答,发现没有人回答,就直接对话群主的QQ,群主也不回答,于是小张就搜索,突然搜到博客园有个帖子讲解了相关话题,他看完就给博主留言,我的邮箱是:XXXXX@qq.com,麻烦博主把源码发给我一下,谢谢。

2、程序员小张进公司3个月了,老板布置了很多任务,他觉得老板很没人性,工资给的不高,加班也不给钱,于是在写代码的时候能省就省,客户反馈有问题也不主动解决,敷衍为主,又过了一个月,跳槽了。

3、程序员小张正在写一个功能模块,需要进行某种加密,到百度搜到了一个编码模块,看不明白具体写了什么,但是放到程序里刚好适用,于是就这么原封不动放进去了。

4、程序员小张要对某个功能进行研发,项目经理对他说,这个功能应该能搜索到,你去搜搜看,小张就在百度搜啊搜,一天过去了啥都没找到,项目经理来到小张身边坐下,换了个关键词,1分钟就搜到了解决方案。

5、程序员小张学.NET已经工作3年了,工资还是10000,和公司提涨工资也没答应,想跳槽又犹豫,这时某个前辈对他说,你去看书吧,多看一些书,例如 《Visual C# 从入门到精通》,《CLR via C#》《Javascript权威指南》等等,于是小张买回来了,随手翻了翻发现有些东西是他已经会的,有些看不懂的好像又用不到,而且书这么厚,要不要浪费时间去看呢?小张就这样反复纠结了半年,依然每天上班工作,下班LOL,偶尔还抱怨一下工资低。

6、程序员小张到了一家新公司,在做一个项目实现某个功能时,想起来以前做过这样的功能,可是竟想不起怎么实现了,于是就到自己电脑上找文档,找了好久也没找到,只好放弃,最后又折腾了2天,终于还是把这个功能给实现了。

7、程序员小张某天非常不高兴,因为他的项目经理和项目组的产品人员又变更需求了,新的需求又要对整个结构进行大的调整,小张很郁闷,到一个QQ里发泄情绪,说了这个事,于是立马,QQ群里面炸开锅了,程序员小李说,对,产品就是狗日的!程序员小王说,对,他妈的项目经理整天高枕无忧,就知道压榨开发人员!程序员小孙说,是的是的,我上一家公司也是这样,压榨程序员,幸好我走了。就这样,在一片骂声中,几个程序员心情舒畅了,小张开心的去玩王者荣耀去了。

我想,有些人可能已经明白我要说什么,有些人可能还不明白,具体的话我也说不出来,只能用一句话来概括就是:

在编写代码的过程中,善于学习、掌握方法、勤加思考、勤奋努力、持之以恒,长此以往,在编程中,你会发现不一样的自己。

以上这些还是比较抽象,那么

提升自我修养的具体方法有哪些?

程序员具体如何达成“较高的修养”,每个人各有自己的办法,我无法说到很细,就和如何提高做人修养一样,一句两句话是说不清楚的,但是有些说法也通俗易懂,比如一个小孩,有教育良好的父母,父母彬彬有礼,小孩从小开始接受正规教育,小学、初中、高中、大学,然后文化课程和社会实践良好,那么这个小孩最终的做人修养,一定比没有经历过这个过程的小孩更好一些。

同样的,写程序也是如是,下面我就讲一些最基本的、最浅显易懂的学习方法和道理,我把它叫做:

程序员基础的基础

一个好的开发人员,应该能够全面、高效、严谨的去处理任何软件程序和业务问题,成为一个好的开发,是一个很有意思的话题,不过无论这个话题如何开展,基础两个字必不可少,虽然代码量是衡量开发能力的重要指标,但仅能够熟练的进行代码编写是不够的,更要能深刻的理解技术原理和业务逻辑,扎实的个人基础和技术基础往往会促进代码的编写,更游刃有余的解决问题。

下面说的一些基础,可能绝大部分开发人员都不会在意甚至忽略,但恰恰这些才是开发大厦的基石。

1、科学基础

成为开发人员的过程不尽相同,有的是科班出身,有的是兴趣爱好,还有的是专业机构的培训,在这个过程中,可能全面或者零散甚至没有学习过计算机基础学科,但无论是哪一种,想要成为更高层次的开发人员,写出更高质量的代码,计算机基础学科的学习,是非常非常非常(重要的事情说三遍)重要的。具体的来说,基础学科在实践应用中,有如下几门是一定需要的,按照学习顺序排列如下

1)数据结构 数据结构课程通俗的说就是告诉你如何用最基本的语言类型、变量,关键词语句等,去处理各式各样的逻辑问题,我们称之为算法,而日常编程中的各种问题,例如排序、文件夹遍历操作、数据库查询等,都可以在数据结构课程中,找到对应的数学原型。数据结构课程的理解能力,也是一个人数学能力的体现,数据结构学习的好坏,是程序员水平差异的一个重要分水岭,对于这一块内容的学习,有如下建议:使用VB、C、C++、Pascal等语言,买一本相关语言数据结构与算法的书,或者在网上下载相关的PDF电子书,完整的学习一边,并将书本中的所有案例亲自编写运行调试一遍,当能够领悟到某些日常编程中常见手法源于某些数据结构和算法时,就基本达到了学习效果。

2)操作系统

所有编程语言的开发以及应用的运行,都基于操作系统,桌面编程中的大部分场景包括内存、进程、文件系统、网络通讯、用户界面等,都源于操作系统的定义和概念,完整的了解操作系统的起源和组成以及运行逻辑,对多线程、复杂界面、文件管理以及一些难以正常理解编程思路等开发中遇到的场景,有非常大的帮助,不仅帮助理解,也能掌握更多有效的程序写法。具体可以买一本操作系统的书或者下载相关PDF电子书,完整的浏览一遍,做到能够结合实际编程场景来看待操作系统原理,就基本达到了学习效果。

3)数据库

传统的关系型数据库,入门简单,深入却难,往往开发人员能够较快的掌握增删改查、视图、索引、存储过程等基本数据库操作,却在编写复杂查询、设计主外键、优化字段、去除冗余等时,出现只会依葫芦画瓢却不能自主思考扩展的状况。究其原因还是没能了解关系数据库的根本原理,而数据库这一门课程,系统的阐述了关系型数据库的来龙去脉,了解其中的数学原理或逻辑基础所在,对提升数据库编程水平有质的影响。建议也是买一本数据库的相关书籍或者下载PDF电子书,能够把熟练的把第一范式、第二范式等数据库课程的基本知识点与数据库编程场景建立起关联,也基本达到了学习效果。

4)编译原理

编译原理是编程语言以及各类语言编译器的科学基础,可以说编译原理创造了世界上的几乎所有的IT应用,学习编译原理的基础是数据结构和算法,因此编译原理的学习要花费更多的时间和精力,由于现代高级编程语言的编译器,在代码优化、资源优化方面已经做的足够智能,因此,编译原理的学习对实战的影响越来越小,但是正所谓本盛末荣,如果认为自己对数据结构和算法的学习达到了一个较高的水平和状态,可以在编译原理学习上进一步深入,最终把自己和普通程序员拉开更大的差距。

2、英语能力

英语的天然特性和字母长度还有学科发展的历史因素,决定了编程语言一定是基于英语的,在编程过程中,从语言的关键词到文档的内容又或是搜索引擎的搜索结果,都不可避免的会遇到英文。大部分编程人员,都具备英语四级左右的英文基础,却由于非专业以及工作环境原因,逐渐疏远甚至完全淡忘了英语。而实际操作中,大部分编程语言资料都是英文,在线编程问答内容也是英文,因此,很有必要把英语能力重新恢复到一个不用太高但行之有效的水平,达到如下效果:

1)对自己所使用语言,每一个关键词都知道具体的英文翻译、逻辑含义以及读音。2)对于自己使用语言所涉及到的相关方法、类库、框架、工具等,能知道其中每一个方法、过程以及参数关键词等的英文翻译、逻辑含义以及读音。

3)对常见的编程逻辑和核心关键词,能够用英文组织问题的描述,最简答的也行,只要能被搜索引擎读懂就可以。比如如何在C#中把整形转换为字符串类型这个问题,最简易的英文描述就是 C# Integer Covert To String。

4)在自己技术知识范围内的任何的英文的技术手册、文档、文章或是问题描述,能够读懂8成的内容含义,能够读懂完整的技术含义。

3、搜索方法

任何一个开发人员,都应当具备搜索能力,甚至是一定要具备搜索能力,搜索引擎的宝藏,是无穷无尽的,同样具备搜索意识的不同程序员,却因为搜索技巧的差异最终在程序开发质量、项目实施效率、甚至是工程产品质量上出现数倍的差异,因此,掌握高效、先进、灵活的搜索方法和技巧,是非常非常非常(重要的事情说三遍)有用的。其中主要的方法介绍如下:

1)搜索源选择

 虽然英文的编程资料更为准确高效,但中文的编程资料数量上却占优,因此遇到问题第一搜索选择还是百度

 谷歌对于专业中文词汇的处理能力有时候甚至比百度还要强,而且谷歌能搜出大量的英文资源,因此谷歌也是首选之一,但是由于谷歌被封锁,因此需要进行VPN、SSH等FQ操作,或者在百度搜索“谷歌镜像”关键词,通过谷歌的镜像网站进行访问。

 除了搜索引擎,专业的技术网站、论坛、社区也是非常直接有效的搜索源,比如国外的StackOverFlow网站,国内的Cnblogs博客园、OSChina开源中国等,都具备搜索功能,将问题关键词输入其中,也许也会很快的得到相关答案。

 对于QQ群,建议不要使用,除非QQ群主或者成员是非常闲或者非常非常热心的人,否则在QQ群询问技术问题,是非常低效率的搜索方式。

2)关键词构造

搜索关键词的构造,直接影响搜索效率和正确结果的过滤,没有什么特别的技巧,关键在于搜索积累,但是总体遵循的原则是,准确和简洁,比如当出现一个描述,如何用C#对XML进行序列化和反序列化,非常愚蠢的关键词构造就是“如何用C#对XML进行序列化和反序列化”,而正确高效的关键词则是“C# XML 序列化 反序列化”,或者在谷歌里面搜索则是“C# XML Serialization”。在平时的编程中,一定要注意相关方法和经验的积累

3)联想搜索

联想搜索,不属于搜索引擎的范畴,却是在搜索中很有用的高级技巧,举一个通俗的例子,比如想使用C#,利用某个.NET类处理一种HTTP通讯,但是一直搜索不到完美的结果,不过换个思路,考虑到VB.NET也是.NET体系,和C#完全相通,那么也可以试着用VB.NET关键词进行搜索,搜索到完美代码后再临摹成C#代码。这样的联想搜索,不仅能够帮助搜索正确结果,也是对大脑思维的训练,值得多多尝试。4)资源搜索

开源的框架、产品、工具、控件等开发辅助类东西越来越多,稳健性和迭代性越来越强,去寻找一款成熟的工具或者插件,也成为了大量开发者的必备方法和技能,而如何高效的搜索出想要的资源,也成为了一门学问,其核心方法就在于知晓资源网站的地址,常见的例如有开源中国、Github、CSDN下载、pudn等。资源类网站需要平时多积累,到用到的时候会非常关键。

4、思维模式

开发人员,一定要养成业务思维的模式,所谓的业务思维,就是在做任何一个项目的时候,写任何代码前,需要对项目本身的业务概念和业务逻辑甚至业务流程都要有一个全面的学习和理解,这虽然不是一个项目的强制要求,却是一个很好的开发习惯,无论自己的觉得是开发者还是测试员又或是技术总监,掌握了业务原理,才能够更好的设计或阅读项目的数据结构和流程结构。程序员的思维往往和用户或者客户是不一致的,摆脱技术思维模式,习惯于用业务思维解决问题的程序员,不一定最优秀,但一定是一个很容易沟通的程序员

5、工作与编程习惯

有的人说爱干净浪费时间,所以不修边幅,但归根结底这还是习惯问题,当养成清洁卫生的习惯并使之成为生活惯性时,往往就不会耗费更多的时间,反而显得干净干练。写程序同样如是,有一些编程习惯,看似不足为道,看似浪费时间,可是如果坚持下去,最终都能收到意想不到的奇效。下面列举一些特别重要的习惯。1)快捷键的使用

无论是使用Windows、Linux操作系统,还是在IDE中,快捷键都是系统本身的标配,事实上,Ctrl+C、V这样的操作,大部分人都能尝到在节省时间上的甜头,把这个概念进一步扩散,如果在IDE中编写代码,除了代码本身,将其余所有的鼠标操作、键盘定位操作,都用快捷键来代替的话,在时间上将会有数量级的节省,然而看上去这么好的事情,真正坚持去执行并形成习惯的人屈指可数,因此,在初期的改变习惯,记住快捷键,会是一个长期的过程,需要不断的坚持。

2)代码注释

一个开发人员随着年龄和经验的增长,所参与的项目,再也不是靠一个人或者几个人就能完成的。系统的重构、代码的重构、工作的交接、对新进人员的培训等等类似的事情,会越来越多的遇到,这些事情无一例外都会把已经写过的代码重新或者重复阅读,如果在初始编写代码时,就做到完整、清晰明了的代码注释,对后续工作会有巨大的帮助。不仅提高工作效率,还能增强合作好感。事实上,就算只是自己看自己的代码,如果有注释,也能加深印象,缩短代码查找时间。因此,任何开发人员,都应该养成良好的代码注释习惯。

优秀的代码注释应该能做到:

  每一个函数、每一个属性甚至是变量的划分,都可以找到对应的解释。多使用越来越被IDE支持的XML注释方式,不仅有注释文字,更有详细的参数描述。 对程序结构、模块、组成部分划分等也加以注释

3)命名规则

具备一定规模的软件公司,在代码编写上都有一套自己的命名规则,涵盖项目、模块、函数、变量等等,标准化命名的好处不言而喻,然而被动、被迫去遵守命名规则和主动习惯于使用命名规则是完全不一样的。一个优秀的开发人员,应当发自内心的希望各种代码命名都是有规则的,易读的,而不是纠结于命名规则会增加码字长度。

4)不将就的编程逻辑

所谓不将就的编程逻辑,其对立面就是不讲究的编程逻辑,不讲究的编程,不仅是一种很坏的编程习惯,也体现了低下的生活品质,很多开发人员,因为个人习惯、赶工期、客户要求不高等多种原因,在编程时特别随意,体现在比如为了实现某个功能,百度出一段代码,直接套用,10行的代码只理解8行,有两行看不懂也放到程序里去使用,很多这样的小细节,就好比在项目中埋下了无数的定时炸弹,不仅有很大概率形成返工,更是为项目埋下了风险。编程人员,应当有担当有态度,养成不将就的编程逻辑,不勉强自己,也不轻视程序。

5)数据备份

误删、误操作、电脑断电、文件遗失等等状况是每一个开发按人员都可能遇到的问题,如果不希望辛勤的劳作被浪费,不希望偶然的意外影响工作,那做好备份是必不可少的,在较大规模的公司,会有完整的源代码管理以及信息安全防护,而无论是在大公司工作,还是身处较小公司或者在实现个人代码价值时,都要做好代码和文档的数据备份,备份方式的选择灵活多样,有使用在线的CVS、SVN、TFS、Git源代码管理,也可以手工拷贝文件至云空间或者本地硬盘,甚至可以在个人电脑上组成RAID磁盘阵列等等,养成周期性、规律性的备份习惯。

6)邮件工作方式

沟通是进步的源泉,如果说开发小组的热烈讨论是性格和激情的体现,那邮件的工作方式也是另一种稳重和高效。无论是公司层面的工作沟通,还是开发小组的问题交流,邮件的作用包括问题正规化描述、工作留档留痕、工作流程流转、责任分工明确等等,习惯于将重大问题、重要事项通过邮件的方式与同事、主管等进行沟通,将会非常有助于团队协作。

以上这些方法,是我这么多年来的感受和体会,也给了我很大的帮助,希望也能够帮助到大家,不能说一定可以“提升修养“,但也是”提升修养”的有效方式。

最后还想再说一说坚持的力量

Java程序员简历 篇6

*********************************************************************

基本信息

********************************************************************* 姓名:***

性别:男

年龄:25

电话:*** 邮箱:*******@163.com

2007.9——2011.7

****大学

专业:***

统招本科

求职目标:java开发工程师 掌握技能

1.熟练掌握JAVA面向对象编程语言,有良好的编码习惯; 2.熟练使用HTML,并了解Ajax;

3.熟练使用jsp、servlet、JavaBean进行web应用开发;

4.熟练掌握Struts2、Hibernate、Spring等开源框架技术,并能够用Struts2+Hibernate+Spring进行大型项目的开发;

5.熟练操作MySQL数据库,了解Oracle数据库,熟悉SQL语句; 6.能够熟练运用Eclipse和myEclipse等开发工具;

项目经验

项目名称:网上购物系统(当当网仿真)开发平台:Linux 开发工具:MyEclipse+tomcat+Mysql 技术实现:struts2+Hibernate+javascript+Jsp等

培训经历

2011.10——2012.3 北京达内科技公司

java+3G+物联网

所获证书

2012.2

高级软件工程师

国家工信部颁发 自我评价

    对待工作认真负责,善于沟通、协调,有较强的集体荣誉感与团队精神 兴趣广泛,积极上进,坚毅不拔,能够吃苦耐劳,勇于迎接新挑战。遇到不懂的问题,能耐心思考或者主动请教别人。

有问题不逃避,愿意虚心向他人学习,从学习和工作中锻炼了 持之以恒的精神

 为人真诚守信,做事坚定执着,自信,具有很强的责任感,较强的再学习能力和逻辑分析能力。

兴趣爱好

 对软件有浓厚的兴趣,做软件如同做艺术,希望通过自己的努力让软件变得更加完美;  喜欢外语,并通过看情景提高自己的外国文化积淀;

用JAVA编写网络通信程序 篇7

1 Java中输入/输出流概念

过滤流D a t a I n p u t S t r e a m和D a t a OutputStream除了分别作为FilterInput Stream和FilterOutputStream的子类外, 还分别实现了接口DataInput和DataOutput。接口DataInput中定义的方法主要包括从流中读取基本类型的数据、读取一行数据、或者读取指定长度的字节数。接口DataOutput中定义的方法主要是向流中写入基本类型的数据或者写入一定长度的字节数组, 如writeChar () 、writeDouble () DataInputStream可以从所连接的输入流中读取与机器无关的基本类型数据, 用以实现一种独立于具体平台的输入方式。

2 Socket机制

S o c k e t是面向客户/服务器模型设计的, 网络上的两个程序通过一个双向的通讯连接实现数据的交换, 这个双向链路的一端称为一个Socket。

Socket通信机制提供了两种通讯方式:有联接和无联接方式, 分别面向不同的应用需求。使用有联接方式时, 通信链路提供了可靠的, 全双工的字节流服务。在该方式下, 通信双方不必创建一个联接过程和建立一条通讯链路, 网络通信操作在不同的主机和进程之间转发进行。

3 Java语言

Java语言优点主要表现在:简单、面向对象、多线程、分布性、体系结构中立、安全性等方面。第一简单性。Java与C++语言非常相近, 但J a v a比C++简单, 它抛弃了C++中的一些不是绝对必要的功能, 如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。第二, 面向对象。J a v a提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法, 很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型, 通过继承和重载机制, 子类可以使用或重新定义父类或超类所提供的方法, 从而既实现了代码的复用, 又提供了一种动态的解决方案。第三, 多线程。Java程序可以有多个执行线程, 如可以让一个线程进行复杂的计算, 而让另一个线程与用户进行交互, 这样用户可以在不中断计算线程的前提下与系统进行交互。多线程保证了较高的执行效率。第四, 分布性。Java是面向网络的语言。通过它提供的类库可以处理T C P/I P协议, 用户可以通过U R L地址在网络上很方便的访问其他对象。第五, 体系结构中立。J a v a是一种网络语言, 为使J a v a程序能在网络的任何地方运行, J a v a解释器生成与体系结构无关的字节码结构的文件格式。J a v a为了做到结构中立, 除生成机器无关的字节码外, 还制定了完全统一的语言文本。第六, 安全性。用于网络、分布环境下的J a v a必须要防止病毒的入侵, J a v a不支持指针, 一切对内存的访问都必须通过对象的实例变量来实现, 这样就防止了程序员使用欺骗手段访问对象的私有成员, 同时也避免了指针操作中容易产生的错误。

4 JAVA工具

JDK, Java编译器, Java编译器将Java源代码文件编译成可执行的J a v a字节码。Java源代码文件的扩展名为.java, Java编译器把这种扩展名的文件编译成扩展名为.class的文件。

Java解释器, Java解释器对编译生成的字节码格式的可执行程序的运行提供支持, 它是运行非图形J a v a程序的命令行工具。

Appletviewer, 它是Java Applet的简单测试工具, 可使用它来测试Java Applet程序, 而不需要W W W浏览器的支持。

Visual J++, Visual J++集成了可视化界面设计、交互式调试、代码编辑、联机帮助信息和介绍如何快速掌握该开发环境的实用向导等多项功能, 同时具有能充分利用Active X和COM新技术的优势。利用Visual J++可创建交互性很强的Internet应用程序, 是难得的J a v a开发系统。

5 客户机/服务器通信的实现

Application同Applet的通信。两端通过S o c k e t机制进行连接:第一客户端的编程流程:打开Socket, 新建一个套接字;为套接字建立一个输入和输出流;根据服务器协议从套接字读入或向套接字写入;清除套接字和输入/输出流;第二服务器端的编程流程:打开Server Socket, 创建一个服务器型套接字和一个普通套接字, 服务器型套接字在指定端口为客户端请求的Socket服务;使用ServerSocket类的accept () 方法使服务器型套接字处于监听状态并把监听结果返回给普通套接字;为该普通套接字创建输入和输出流;从输入和输出流中读入或写入字节流, 进行相应的处理, 并将结果返回给客户端;在客户端和服务器工作结束后关闭所有的对象, 如服务器型的套接字, 普通套接字, 输入和输出流。

Applet之间的通信:Applet之间的通信使用Applet Context类的getApplet () 方法。

只要在程序中加入Applet o n e a p p l e t=getAppletContext () .getApplet (“first”) ;便可使用name为first的Applet中的方法了。

6 程序调试心得

java程序员招聘 篇8

摘要:目前,很多高校的软件学院都开设有《Java程序设计》这门课程,但都存在重理论,轻实践的问题。本文在深入分析该门课程目前存在问题的基础上,提出了相应的解决办法,并且通过一个学期的课程改革试验,证明了建议解决办法的可行性及有效性。

关键字:Java教学改革;应用型人才;软件学院

Abstract: At present, many university software schools have“Java programming” course, but there are pay attention to theory, light practice problems. Based on in-depth analysis of the course at present on the basis of existing problems, and puts forward the corresponding solutions, and through a semester course reform experiment, proved that the proposed solution is feasible and effective.

Keyword:Java teaching, Application type talents, School of software

一、Java课程概述

《Java程序设计》课程是软件学院学生的核心专业课程,它的内容是介绍J2SE相关知识,包括Java语法基础、面向对象理论知识、基本类库、图形用户界面及事件处理机制、异常处理机制、多线程程序设计、数据库的连接访问、输入输出流和网络编程等。本课程学习的效果不仅关系到后续课程的学习和毕业设计的效果,而且直接关系到学生程序设计水平的提高和专业素质的培养。

二、问题分析及建议

以下结合本人多年的Java开发及教学经历,对一些存在的问题进行分析并提出相应的建议。

1.加强实践训练及实践管理

问题分析:Java语言是一门实践性很强的计算机语言,但目前成了单一为考试而设置的一门课程,其结果是有的学生连最基本的实践操作也不会做。有的实践教学学生只是将书上的程序输入电脑运行一下,并没有去思考为什么会是这样的结果。学生只是机械地完成了程序的运行,过后就忘了,没有达到练习的目的,更不能做到学以致用。

建议:在条件许可的情况下,教师上课均应采用多媒体教学。在讲授Java理论的同时,在课堂上给学生进行使用演示,这样不仅使学生对所学的理论知识有直观的认识,而且能提高学生的学习兴趣,引发其好奇心,促使课后实际动手练习。另外,教师在讲授该门课程时,除了教材上既有的实例外,还应多找一些典型的实例,在课堂上给学生讲解和演示,加深学生的理解。

2.选择合适的教材

问题分析:传统的教学方法都是注重教学的系统性和完整性.按照一般教科书的编排顺序组织教学,想把Java语言讲透,至少得100课时以上。这样的教材内容,必然有大量的语法结构生涩且难以理解,使学生望而生畏,学习效果较差。

建议:尽量选择有较多实际例子的教材,或者选择有配套实验手册的教材,方便学生实践练习。

3.注重双师型教师的培养

问题分析:在指导学生使用Java程序设计实践教学方面,由于目前双师型教师的匮乏,师资队伍存在着知识结构、能力结构不合理问题,难以完成应用型人才Java程序设计的实践教学要求。

建议:教师在上课之余,应该多学习Java领域的最新技术,并且利用假期时间多去企业参观,学习企业用的最多的开发技术,才能教出符合企业需求的信息技术专业人才。

三、课程改革及成效

在对Java程序设计课程目前存在的问题深入分析后,本人上学期对第2部分中提到的各个建议解决办法进行了试验,以下简单予以介绍:

(1)关于加强实践方面。在讲述理论的同时,教材90%的代码均在上课时现场输入、现场演示、现场评讲。另外,除了教材上的实例,还通过查阅搜寻一些典型的实例,在相应的章节进行演示。

(2)关于教材选择方面。经过仔细对比研究后,上学期选用了机械工业出版社的《Java语言程序设计教程》一书作为上课的教材。本书由叶乃文主编,于2010年第一次出版,所讲Java技术和业界最新技术基本同步,而且综合性实例较多,非常方便学生进行课后练习。

(3)关于双师型教师培养方面。2010年暑期,去北京中关村一些知名IT企业进行学习参观,历时20余天。通过学习参观,了解到目前企业最新的Java应用人才需求,也学到了不少企业的开发经验,返回学校后对学生进行了相应的指导,学生反响强烈。

上学期,经过以上3点措施的实施,Java程序设计课程的教学效果相比以前明显改善,学生们普遍反映良好。具体表现为:因为实践动手多了,学生对学习Java的兴趣提升,实践动手能力快速提升,上机作业质量明显提升,教学效果持续改善。

四、小结

针对应用型高等学校人才的特点,作者依据多年从事Java技術开发的实际工作经验与理论教学实践经验,分析了企业对Java技术人才的需求及现今Java程序设计课程体系中存在的问题,提出了一些建议解决办法,并进行了相应的课程改革实践。实践结果证明了提出的建议解决办法的可行性和有效性。

【参考文献】

[1]朱剑锋,王冬,熊志斌,尹成国.《项目教学法在Java程序设计课程教学中的应用》[J].琼洲学院学报.2011,(2):82-84.

[2]张建东.《Java程序设计教学探讨》[J].科技信息.2009,(24):700.

上一篇:商务英语专业的大学课程有哪些?下一篇:小学游记作文:难忘的美国之旅