java程序员的自我介绍

2024-07-23

java程序员的自我介绍(通用14篇)

篇1:java程序员的自我介绍

姓 名:梁xx 性别:男

婚姻状况:已婚 民族:汉

户 籍:上海 年龄:33

现所在地:广州 身高:176

联系电话:156xxxxxxxx

电子邮箱:jy135.com

求职意向

希望岗位:JAVA程序员

工作年限: 职称:无职称

求职类型:全职

到岗时间:随时

项目经验

项目名称:《网络文件传输工具》 时期: /05

项目描述:采用C/S方式实现网络文件传输在服务器端和客户端之间进行传输。运用多线程方式建立客户端与服务器端的连接,通过对象流的方式传输文件;并且服务器端可以实现多线程接收来自多个客户端的文件以及服务器端状态和日志的维护。

开发语言:JAVA

开发工具:JCreator3.5

责任描述:系统分析与编码工作(独立开发)

项目名称:《企业管理信息系统》 时期: 2006/06-07

项目描述:以B/S方式实现管理网站的功能:企业员工通过企业分配的个人帐户可以搜索企业信息,查询企业所布置的任务;企业管理者可以通过注册系统帐户来搜索和布置任务,而且能对企业的员工进行权限限制等信息和功能。

开发语言:C#,ASP。NET

开发工具:Microsoft Visual Studio .NET

责任描述:系统维护和编码工作(5人小组,担任组长)

其他项目经验——

2006/07:用JSP编写个人通讯录结合小论坛应用程序

/12:用JAVA编写小应用程序——点灯游戏

2005/11:用JAVA编写小应用程序——拼图游戏

2005/11:用JAVA编写小应用程序——家庭缴费预算系统。

2005/08:用C++编写控制台程序《图书馆管理系统》。

2005/07:用VB和ACCESS数据库开发《股民信息管理系统》。

教育背景

毕业院校:xx大学

最高学历:大专

毕业日期:-07

专 业 :管理工程

教育历程

2005/05——-至今 北大青鸟上海科技中心 软件工程师(担任班长)

/06——-2004/06 海军指挥学院 管理工程

/06——-/06 上海市交通职业技术学校 船舶驾驶

1993/06——-1999/06 上海大桥中学

1987/06——-1993/06 上海市杭州路第一小学

语言能力

外语: 英语一般

国语水平: 精通

粤语水平: 一般

证书

1、北大青鸟APTECH认证的“软件工程师”证书;

2、国家劳动和社会保障部职业鉴定中心颁发的“软件工程师”资格证书

3、通用英语初级证书

4、交际英语初级证书

个人能力

1、可以熟练地掌握面向对象的分析和设计方法;对软件项目开发方面有了一定的了解,掌握基本的Microsoft SQL Server语言,熟悉ORACLE,ACCESS多种数据库开发工具;基本了解XML,Rational Rose业务建模和分析工具。

2、熟悉J2EE架构,对于J2EE实现企业级应用开发具有一定的掌握和了解,能灵活运用Jbuilder、Jcreater及DreamWaver等相关开发工具;熟练掌握HTML、VbScript、JavaScript、XML、UML等相关WEB技术;对基于Eclipse开发工具的Open Web Engineering有一定程度的掌握;能运用Structs框架进行基于MVC的Java Web设计与开发,对于Structs控制器组件、模型组件、视图组件有一定程度的掌握;对于面向对象的持久层设计与Hibernate有一定程度的了解;能掌握多种Java设计模式进行项目开发。

3、对于C#编程和。NET平台的应用开发也具有一定程度的掌握。

自我评价

本人性格开朗、为人忠诚老实, 对待工作认真负责、积极主动、善于团队工作;思维严谨。

篇2:java程序员的自我介绍

导读:再学了3年的Java之后,想从事Java开发行业,就必不可少的要经历面试阶段,如何做好面试的准备,和在面试过程中如何完美的应对面试呢?下面小编为大家推荐一篇java程序员面试自我介绍范例,希望能帮助到大家。

java程序员面试范例

面试是一个“简单”而又“复杂”的事情,正因为它具有“简单”和“复杂”的双重性质,才使我们对这个问题不敢掉以轻心。介绍如何面试,有时候甚至可以写一本书,而有时候,你什么都不准备却可以面试成功。

因为,面试的成功与否完全取决于主考官,因此,这门学问的主要科目就是研究主考官的招聘心理。

我们研究好主考官的招聘心理,自然就可以做到“知己知彼”了。

本小节只是说说面试的“心理战”,而想真正的能够对答如流,需要的是“真功夫”,要想具备“真功夫”还是需要真正的技术水平作为前提的,本小节的内容只是给那些已经具备相应技术水平的应聘者提供一定的应聘技巧而已,以避免没有把自己的“真功夫”完全展示出来从而丧失工作机会。

面试前对自己的心理暗示:

面试并不是考试,只是和未来的同事聊聊天。

“心理战”对象,可能出现的主考官如下几类:

人物1,人力部主管(HR)

人物2,你未来的主管

我们分别来分析遇到不同类型的主考官的不同情况。

人物1:人力部主管(HR)

“人物1”的出现往往是进行该职位的初审,给出一个概观定论,如果合格将会提交给“人物2”。“人物1”他们所要进行的是对人的心理和基本技能方面的一个判断。不过,也有一些公司,首次面试仍然是由业务主管来进行,然后再将初审合格的人交给人力部门来复试,如果,是这种情况,你应该就算90%入职成功了,因为,这个复试往往是走个形式,看看此人有没有被主管忽略的大问题,如果没有,基本就差不多了。那么,我们仅仅以第一种情况为例,看看“人物1”大多提出的是哪些问题。

常见提问1:请你自我介绍一下

这个问题,是人力部主考官必问的问题,这个问题的提问并不是真的想了解你的个人情况,因为,你的情况基本上在简历上都写着呢。他提出这个问题的主要目的是来考察你的语言表达能力,和你在表达过程中的一些细节表现。

所以,我们应该怎么回答呢?

看看如下对话:

HR:“请你自我介绍一下”

A君:“您看简历吧,基本上我都写在简历上了。”

HR:汗

HR:“请你自我介绍一下”

B君:“我叫XXX,年龄24,性别男,籍贯”

HR:倒

HR:“请你自我介绍一下”

C君:“这话从何说起呢?话说10年前”

HR:晕

首先,不要认为主考官没有认真的看你的简历,没有看你的简历就让你来面试,是在浪费他自己的时间,所以绝对是首先认为简历比较合适,才约你来的。

第二,自我介绍并不是让你重复一下你简历上的所有内容,那些内容简历上都有,主考官主要是想听听你如何表达和语言的逻辑能力。

第三,这个表达不要滔滔不绝,要有张有弛,有收有放,主要将自己的想说的优势部分分别道来,能够通过你的介绍让人感觉到你的“亲和力”为佳。

“语言表达能力”并非我们日常所说的“能侃”或者“口才”,这是片面的理解,在面试过程中,我们要展现的“语言表达能力”是指,“语言亲和力”,能够让人感受到你的“沟通”能力。

回答范例:

您好!我来自XXX大学,是应届毕业生,所学专业是计算机应用技术,我在校期间参加多项课余工作,参与了多个应用系统的开发与设计,熟练掌握Java开发工具和应用系统的各种开发方法。在学习与工作期间,总结与实践了各种技术实现手段,有了一些小的积累。

近期已经毕业,看到您公司的招聘信息,感觉自己的技术与能力非常合适,就投递了简历。希望能过了您这关,呵呵(注:最后的微笑最好不要太牵强,目的是缓和气氛)

大家看到了,这个回答范例的自我介绍非常简练,但是,什么也没有落下。既实事求是的说了自己是应届毕业生,又说明了自己虽然是应届毕业生,但是参加了很多的课余工作,并且具有实际的项目开发经验,而且有了一些小的积累。

既说了自己的对这份工作和自己能力之间的考量,又表达了自己对主考官的期望。意思表达时不卑不亢,言简意赅,让人听起来就感觉很舒服。

这时候你的目的就达到了,展现出自己的“语言表达能力”和“语言亲和力”,同时又能够让人感受到你的“沟通”能力。

常见提问2:你最大的优点是什么?

这个问题如果是HR问,则最好回答了。

回答这个问题的关键是“围绕自己的技术特长”展开话题,为什么这样?

因为,往往HR都不懂技术,围绕技术说自己的特长很容易给他说晕(当然,个别懂技术的HR除外)。这里要注意的是,在说技术问题的时候,不要让HR感觉自己什么都不懂,要注意说话的节奏,不要太快,不要太骄傲。

常见提问3:你最大的缺点是什么?

这个问题是HR的杀手锏,可以说这是HR的狠招,这个问题最难回答,一般应聘者都本着“扬长避短”的心态去面试,冷不防冒出这么一个问题,还真是挺棘手的。

需要清楚HR问这个问题的目的,其目的仍然不是要真的需要知道你的缺点是什么,还是看看你的表达能力,尤其是需要考察应聘者面对危机的时候的处理能力。

所以,我们不要用下列方式作答:

1、说出自己的真实缺点,尤其是在前面谈话中没有暴露出来的缺点

2、认为说说某些大众化的缺点即可,认为说一两个无妨

3、说自己没有缺点,强调自己比较完美

总之,HR心里想的是:需要了解他面前的这个人在面对困难的时候,是如何处理问题的,从处理危机的方法来判断此人的处理事情的灵活性。当然,如果此人自己暴露出自己的缺点当然更好,省得需要去想办法问更多的问题去发现了。

所以,在回答这个问题的时候,要看起来“真诚”、“坦白”,同时,说出来的并非自己的缺点,而是最好在别人看来是优点的那些方面。

这个问题问的概率很大,通常如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,肯定不会录用你。HR喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,目的还是突出自己优点的部分。

HR喜欢聪明的求职者。

这一点比较难掌握,我们也给出范例:

回答范例:

呵呵,这个问题好难回答啊!我想想(亲和力表现,也缓解了自己的紧张情绪)我的缺点是,比较执着,比如在技术方面比较爱钻研,有的时候会为一个技术问题加班到深夜。还有就是,工作比较按部就班,总是按照主管的要求完成任务。另外的缺点是,总在自己的工作范围内有创新意识,并没有扩展给其他同事。这些问题我想我可以进入公司以后以最短的时间来解决,我的学习能力很强,我相信可以很快融入公司的企业文化,进入工作状态。

嗯,我想就这些吧。

这个回答范例开头第一句话就让人觉得很自然,因为这个求职者所说的话恰恰表达了一般人听到这个问题后的心理状态,还有你一定会有一个思考的时间,因为,谁也不会立刻说出自己的缺点。

后面说出的几个缺点都是一环套一环的,说了自己“比较执着”,但又说自己其实是“比较爱钻研”,说自己总是“按部就班”,但又补充了其实那是“按照主管的要求完成任务”,这时候,如果用人单位觉得,此人是不是没有“创新思维”的时候,马上就补充道“在自己的范围内有创新意识”,至于“没有扩展给其他同事”这件事,其实无关紧要,干脆就卖给HR吧。

以上回答确实卖弄了些“技巧”,相信HR也一定能看的出来,但是,即使看出来了也无妨,HR也会心领神会,知道你是一个比较善于沟通并且善于表达的人。

人物2:你未来的主管

当见到未来主管的时候,往往是应聘者已经过了HR那一关,或者应聘者已经过了笔试的那一关,因此见到这位人物意味着距离成功已经向前进了一步。

“人物2”的面试也有他的目的,他是和你在日常工作中接触最多的人,作为你的直接上司,他需要在工作中经常给你分配任务,他需要对他的主管负责,因此,他招聘的这个人选必须是可以帮助他完成他整个Team的目标的人。

往往那个吸引你来面试的“招聘启示”就是这个人物所撰写的,因此,其实在你和他见面以前,早已经通过“招聘启示”和他有过交往了。因此,从“招聘启示”中就可以初显这位主管的端倪。

注意,主管同志并不是人事领域的高手,不会用各种语言技巧去发掘你身上的缺点或者优点,往往问题都是实打实的,或者比较一针见血的,而且,更偏重于日常工作。那么,我们下面和他过过招。

常见提问1:请你自我介绍一下

这个问题,HR也问过了,到他那里有可能还会问,主管问这个问题和HR虽然问的问题一致,但是,其目的并不是完全相同的。

他不仅仅想考察一下你的表达能力,同时还想考察一下你思路的清晰程度。

我们在回答他的问题前,一定要想清楚一件事:他是该技术领域的高手,就是我们“程序员修炼三境界”中描述的“第二层境界”的那个人物,如果还想更清楚的了解这个人物,可以去重新看看前面的那个章节。

这个自我介绍最好说的较为简洁,不要过分炫耀自己的技术如何如何强,免得引起这位主管的兴趣,引起他的技术兴趣没有什么好处,只会带来更多的技术问题的发问。

常见提问2:你最引以为自豪的项目是什么?

他问这个问题的意图是想考察你的成长路径和编程习惯,因为,最让你自豪的项目

往往是你成长最快的项目,那个成长最快的项目往往会给你今后的编程习惯留下很多痕迹。所以,通过你对那个引以为豪的项目的描述,有经验的他会很快锁定你技术成长中的缺陷和闪光点,从而判断是否能够“为我所用”。

你最好拿出一个自己最擅长技术的那个项目进行介绍,这个项目最好能够比较贴近招聘要求的那些指标。如果,没有做过什么有规模的正规项目,你就拿些自己非常擅长或者有创意的开发作品来说。这样做的好处是,他听完你的介绍后,会接下来进行提问,他所有发问,你都成竹在胸了。

切忌拿一个别人的项目,或者自己参与很少的项目来介绍,如果这样的话,一旦他深入的询问这个项目的问题,很可能你会所答非所问,反而造成更严重的影响。你大可以和他大谈特谈你在那个项目中获得的经验,那会引起此君的共鸣,有可能的话,说出一些你自己的小技巧,他会很高兴。

常见提问3:如果我录用你,你将怎样开展工作

他问这个问题的意图是,希望看看你对这个职位工作展开的一些设想,仍然是“实打实”从工作出发来提问的。所以,你在回答这个问题的时候也要“实打实”,切忌虚无缥缈的一通“高、大、全”。

一般要列出自己的入职之后的工作计划,而这些计划需要详尽,同时需要体现出你工作的严谨性,也不能是想当然的说出一些与工作无关的计划,这都有可能适得其反。

回答范例:

针对这个如何展开工作的问题,我目前仅仅是对咱们公司的大体情况有一个了解,因此,对这个职位的工作性质仅仅是自己的一个理解。

所以呢,我也不知道是否合适,我只能说一个大概。

作为这个职位而言,我想我首先要对本公司的主营业务要有一个相当的了解,了解我们公司的业务组成部分、业务的发展方向、我们面向的客户性质等等。

第二,我要了解所属部门在公司中的地位,以及部门的工作目标,从而确定自身的工作努力方向。

第三,了解我参与项目的开发方式,架构方式,紧密配合领导工作,尽快投入具体的开发工作。

这就是我开展工作的计划。

从大到小的方式进行了解,这么说可以让领导知道你不是一个盲目工作的人,而是一个按部就班,稳扎稳打的人,使人觉得和你合作很踏实。另外,一定要强调所属项目或部门的目标,因为这关系到面试你的主管的切身利益。最后,强调“尽快”投入开发工作,这样,领导就放心了,你不是一个“只了解,不工作”的人。

篇3:UDP的Java聊天程序

Java语言似乎专门为网络设计的,用其开发网络软件特别便利,在Internet时代,Java热遍及全球,学习和使用Java的人越来越多。在Java中进行网络编程是相对容易的,因为J2SE中的java.net包已经对各种通信协议很好地进行了封装。文中用Java来实现基于UDP的聊天程序,限于篇幅,只实现了基本的聊天功能。

首先,要介绍Java中封装UDP编程的类———DatagramSocket,这是用来发送和接收数据报的套接字。在程序启动后,可以在构造函数中提供端口参数用以在本地主机上绑定一个端口,以便接收和发送数据报。DatagramSocket类的send方法可以将参数对象的数据报发送到目的主机的目的端口;receive方法可以接收网络上其他主机发送过来的数据报并封装成对象。

其次,要介绍的就是承载数据报的对象DatagramPacket,这个对象封装了UDP的数据报数据,通过重载构造函数,提供不同的参数,可以把DatagramPacket构造成发送数据或接收数据的数据报对象。发送数据的对象将作为DatagramSocket类的send方法的参数;接收数据的对象将作为DatagramSocket类的receive方法的参数。

以上两个类,其实就基本可以实现UDP方式的网络聊天功能了,但是为了数据报能够正确发送,还得借助InetAddress类。InetAddress类表示互联网协议(IP)地址,通过调用静态方法getByName并提供字符串形式的IP地址参数就可以得到对应的IP地址对象,把它传给DatagramPacket,再用UDP套接字的send方法就可以向IP地址对应的主机发送数据了。

为了方便用户的使用,把程序分成两个类,主类为Chat,里面有主函数main,以便应用程序的运行;另一个类FrameMain,扩展了窗体类,方便用户输入及显示消息。主函数main中实例化了主窗体FrameMain。

接下来来看具体代码,为描述程序的方便,分块地来研究,先看代码片断1:

以上对象都是程序中要使用的主要对象,除了本地监听端口设了9000的值,其他对象都是空对象。recvPacket对象将在套接字调用完receive方法后实例化,而sendPacket对象和IP对象将在触发发送数据报的代码时创建。UDPSocket对象是核心,将在一个单独的初始化方法jbInit(JBuilder开发工具默认生成的方法)中对这个对象进行创建,并且在窗体构造函数中调用jbInit方法。请看以下jbInit方法的代码片断2:

以上代码在实例化UDPSocket对象时以9000的端口号作为监听端口。UDP套接字通过调用receive方法监听数据报并实例化recvPacket,但是由于该方法在接收到数据报前一直阻塞,所以为了与主界面功能互不影响,将这个会阻塞的方法放到一个单独的线程中,这样,主界面的发送和显示功能与接收数据报的功能可以认为是同时在进行,互不干扰。请看以下代码片断3:

以上代码中,run函数定义在主界面类FrameMain中,它实现了Runnable接口,然后在jbInit函数中创建了一个子线程recvThread,将主界面的实例传给子线程,意味着子线程在运行过程中要工作的代码写在主界面的run函数中,并且调用start方法启动子线程(参见代码片断2)。UDPSocket对象的receive方法返回后,recvPacket中就有了数据报的内容,通过调用getData方法获取字节数组,并组合成字符串显示。那么,recvPacket中的数据是谁发来的呢?答案就是网络中的其他主机,发送数据报的过程是,先得到用户的输入数据,然后得到用户输入的目标主机和端口,最后组合成数据报对象sendPacket,调用UDP套接字的send方法发送。请看以下代码片断4:

以上代码中,jtfSend是用户输入聊天信息的文本框,jtaReceive是显示接收信息的多行文本框。sendMessage函数可以由输入框(jtfSend对象)或发送按钮的Action事件调用,信息朝目标主机同端口(9000号端口,sendPacket构造函数的第四个参数)发送后,同时也显示在本机聊天窗体的信息框中。为了测试程序,我们用两台局域网内的主机做实验,A主机IP地址为172.16.10.166,B主机IP地址为172.16.10.222。分别在两台主机中运行聊天程序,并相互输入聊天信息,可见程序运行结果如图1所示。

由此可见,用Java语言实现简单的UDP聊天程序是相当容易的,核心的收发数据报功能只要借助DatagramSocket和DatagramPacket两个类就可以完成,如果再把其他功能完善一下,就可以编写出更有实际用途的网络聊天程序。

摘要:UDP是OSI参考模型中一种无连接的传输层协议,它提供了简单不可靠的信息传送服务。由于UDP比较简单,UDP头包含很少的字节,所以它在速度方面有很大优势。很多常用的即时通软件,如QQ程序,都会使用UDP实现很多基本功能。Java语言是当今流行的网络编程语言,它的API封装了UDP编程的类,用来实现UDP聊天程序很容易。

关键词:UDP,Java,聊天程序

参考文献

[1]UDP.用户数据报协议.http://www.networkdictionary.cn/pro-tocols/udp.php.

[2]方建文.Java UDP编程及应用.电脑学习,2005,1.

篇4:Java编程语言程序的认识误区

软件的生命性

软件是有生命的,这可能是老调重弹了,但是因为它事关分层架构,反复强调都不过分。

一个有生命的软件首先必须有一个灵活可扩展的基础架构,其次才是完整的功能。

目前,很多人对软件的思想焦点还是落在后者:完整的功能,觉得一个软件功能越完整越好,其实关键还是架构的灵活性,就是前者,基础架构好,功能添加只是时间和工作量问题,但是如果架构不好,功能再完整,也不可能包括未来所有功能,软件是有生命的,在未来成长时,更多功能需要加入,但是因为基础架构不灵活不能方便加入,死路一条。

正因为普通人对软件存在短视误区,对功能追求高于基础架构,很多吃了亏的老程序员就此离开软件行业,带走宝贵的失败经验,新的盲目的年轻程序员还是使用老的思维往前冲。其实很多国外免费开源框架如ofbiz compiere和slide也存在这方面陷阱,貌似非常符合胃口,其实类似国内那些几百元的盗版软件,扩展性以及持续发展性严重不足。

那么选择现在一些流行的框架如Hibernate、Spring/Jdonframework是否就表示基础架构打好了呢?其实还不尽然,关键还是取决于你如何使用这些框架来搭建你的业务系统。

存储过程和复杂SQL语句的陷阱

首先谈谈存储过程使用的误区,使用存储过程架构的人以为可以解决性能问题,其实它正是导致性能问题的罪魁祸首之一,打个比喻:如果一个人频临死亡,打一针可以让其延长半年,但是打了这针,其他所有医疗方案就全部失效,请问你会使用这种短视方案吗?

为什么这样说呢?如果存储过程都封装了业务过程,那么运行负载都集中在数据库端,要中间J2EE应用服务器干什么?要中间服务器的分布式计算和集群能力做什么?只能回到过去集中式数据库主机时代。现在软件都是面向互联网的,不象过去那样局限在一个小局域网,多用户并发访问量都是无法确定和衡量,依靠一台数据库主机显然是不能够承受这样恶劣的用户访问环境的。

从分层角度来看,现在三层架构:表现层、业务层和持久层,三个层次应该分割明显,职责分明,持久层职责持久化保存业务模型对象,业务层对持久层的调用只是帮助我们激活曾经委托其保管的对象。所以,不能因为持久层是保管者,我们就以其为核心围绕其编程,除了要求其归还模型对象外,还要求其做其复杂的业务组合。打个比喻:你在火车站将水果和盘子两个对象委托保管处保管,过了两天来取时,你还要求保管处将水果去皮切成块,放在盘子里,做成水果盘给你,合理吗?

上面是谈过分依赖持久层的一个现象,还有一个正好相反现象,持久层散发出来,开始挤占业务层,腐蚀业务层,整个业务层到处看见的是数据表的影子(包括数据表的字段),而不是业务对象。

当然适量使用存储过程,使用数据库优点也是允许的。按照Evans DDD理论,可以将SQL语句和存储过程作为规则Specification一部分。

Hibernate等ORM问题

现在使用Hibernate人也不少,但是他们发现Hibernate性能缓慢,所以寻求解决方案,其实并不是 Hibernate性能缓慢,而是我们使用方式发生错误:

“最近本人正搞一个项目,项目中我们用到了struts1.2+hibernate3,由于关系复杂表和表之间的关系很多,在很多地方把lazy都设置false,所以导致数据一加载很慢,而且查询一条数据更是非常的慢。”

Hibernate是一个基于对象模型持久化的技术,因此,关键是我们需要设计出高质量的对象模型,遵循DDD领域建模原则,减少降低关联,通过分层等有效办法处理关联。如果采取围绕数据表进行设计编程,加上表之间关系复杂(没有科学方法处理、侦察或减少这些关系),必然导致系统运行缓慢,其实同样问题也适用于当初对EJB的实体Bean的CMP抱怨上,实体Bean是Domain Model持久化,如果不首先设计Domain Model,而是设计数据表,和持久化工具设计目标背道而驰,能不出问题吗?关于这个问题N多年前就争论过。

这里同样延伸出另外一个问题:数据库设计问题,数据库是否需要在项目开始设计?

如果我们进行数据库设计,那么就产生了一系列问题:当我们使用Hibernate实现持久保存时,必须考虑事先设计好的数据库表结构以及他们的关系如何和业务对象实现映射,这实际上是非常难实现的,这也是很多人觉得使用ORM框架棘手根本原因所在。

当然,也有脑力相当发达的人可以实现,但是这种围绕数据库实现映射的结果必然扭曲业务对象,这类似于两个板块(数据表和业务对象)相撞,必然产生地震,地震的结果是两败俱伤,软的一方吃亏,业务对象是代码,相当于数据表结构,属于软的一方,最后导致业务对象变成数据传输对象DTO,DTO满天飞,性能和维护问题随之而来。

领域建模解决了上述众多不协调问题,特别是ORM痛苦使用问题,关于 ORM/Hibernate使用还是那句老话:如果你不掌握领域建模方法,那么就不要用Hibernate,对于这个层次的你:也许No ORM 更是一个简单之道。

Spring分层矛盾问题

Spring是以挑战EJB面貌出现,其本身拥有的强大组件定制功能是优点,但是存在实战的一些问题,Spring作为业务层框架,不支持业务层Session 功能。

具体举例如下:当我们实现购物车之类业务功能时,需要将购物场合保存到 Session中,由于业务层没有方便的Session支持,我们只得将购物车保存到 HttpSession,而HttpSession只有通过HttpRequest才能获得,再因为在Spring业务层容器中是无法访问到 HttpRequest这个对象的,所以,最后我们只能将“购物车保存到HttpSession”这个功能放在表现层中实现,而这个功能明显应该属于业务层功能,这就导致我们的Java项目层次混乱,维护性差。 违背了使用Spring和分层架构最初目的。

领域驱动设计DDD

现在回到我们讨论的重点上来,分层架构是我们使用Java的根本原因之一,域建模专家Eric Evans在他的“Domain Model Design”一书中开篇首先强调的是分层架构,整个DDD理论实际是告诉我们如何使用模型对象oo技术和分层架构来设计实现一个Java项目。

我们现在很多人知道Java项目基本有三层:表现层、业务层和持久层,当我们执着于讨论各层框架如何选择之时,实际上我们真正的项目开发工作还没有开始,就是我们选定了某种框架的组合(如Struts+Spring+Hibernate或Struts+EJB或Struts+ JdonFramework),我们还没有意识到业务层工作还需要大量工作,DDD提供了在业务层中再划分新的层次思想,如领域层和服务层,甚至再细分为作业层、能力层、策略层等等。通过层次细化方式达到复杂软件的松耦合。DDD提供了如何细分层次的方式

当我们将精力花费在架构技术层面的讨论和研究上时,我们可能忘记以何种依据选择这些架构技术?选择标准是什么?领域驱动设计DDD 回答了这样的问题,DDD会告诉你如果一个框架不能协助你实现分层架构,那就抛弃它,同时,DDD也指出选择框架的考虑目的,使得你不会人云亦云,陷入复杂的技术细节迷雾中,迷失了架构选择的根本方向。

现在也有些人误以为DDD是一种新的理论,其实DDD和设计模式一样,不是一种新的理论,而是实战经验的总结,它将前人使用面向模型设计的方法经验提炼出来,供后来者学习,以便迅速找到驾驭我们软件项目的根本之道。

篇5:JAVA程序员自我信

尊敬的领导:

十分感谢您在百忙之中能翻阅我的自我推荐信。与公司是一种选择,与我则是一种机会。在上千份大同小异的自我推荐信中,我期望你手中的这份能给您带来惊喜!

我叫XXX,是××技术学院××级的一名专科生,就读于计算机技术与应用专业。主修课程:计算机组成原理,数据结构,java网络编程,c++编程基础,单片机基础,路由/交换机配置,jsp编程基础,计算机网络,sql server数据库设计,xml编程实现,编译原理。

大学四年来,我学习刻苦,成绩优异,曾多次获得奖学金。在师友的严格教益和个人努力下,我具备了扎实的基础知识。在软件方面,系统掌握了C语言,数据结构,PowerBuilder,数据库原理,汇编语言,软件工程等,并对面向对象的DELPHI和VC等Windows编程有一定了解。课外我还自学了VB,VF编程及网页制作。现已能独立编写专业的数据库管理系统。在硬件方面,通过参与单片机设计,组装收音机,网络工程的.规划与管理及组建等实践活动,我掌握了计算机的工作原理及计算机网络原理技术。

面对当今激烈的人才竞争,我很清楚自己知识有限,但我更清楚我有着不甘落后的精神和不断学习,不断提高的愿望。乐于进取,不怕挫折是我的人生信条,给我一次机会,让我去实践,去闯,去干,因为能力要在实践中培养,也终究要在实践中体现。我信心十足,相信我所具备的专业技能,积累的知识,加上有良好的人际关系,会帮助我掀开生活中的新一页。

收笔之际,祝贵公司生意兴隆,财源茂盛

推荐人:XX

篇6:java自我介绍

接下来要着重结合你的职业理想说明你应考这个公务员职位的原因,这一点相当重要。你可以谈你对应考单位或职务的认识了解,说明你选择这个单位或职务的强烈愿望。原先有工作单位的应试者应解释清楚自己放弃原来的工作而做出新的职业选择的原因。你还可以谈如果你被录取,那么你将怎样尽职尽责地工作,并不断根据需要完善和发展自己。当然这些都应密切联系你的价值观与职业观。不过,如果你将自己描述为不食人间烟火的、不计较个人利益的“圣人”,那么考官们对你的求职动机的信任,就要大打折扣了。

对于java程序员自我介绍,这里我们介绍了一条清晰的线索,便于你组织你的自我介绍。为了保证结构明确,有条有理,你可以多用短句子以便于口语表述,并且在段与段之间使用过渡句子,口语也要注意思路、叙述语言的流畅,尽量避免颠三倒四,同一句话反复说几遍的“粘糊劲,同时不要用过于随便的表述。而在java程序员面试指南里建议读者不要表示将来踏上工作岗位,将“一定要……“绝对……诸如此类的保证,似乎在做就职演讲。这些例子很多画蛇添足似的自我介绍不但不会为你的形象增添色彩,会“越抹越黑”!。

篇7:java应聘自我介绍

您好!

我叫xxx,于20xx年9月开始学习,主攻.net工程师。

经过一段时间的学习,完全掌握了软件开发的基本知识,现在已经可以独立完成软件的开发,也可以团队进行软件工程项目开发。

相信在以后的工作和学习中一定会很称职的。

平时爱好打篮球,真是这样培养了我自信、乐观、积极向上的性格。

因为不太爱说话,所以很多时候是在书店和书本朋友在一起。

但是这并不代表我内向。

因为我爱好看书。

个人比较喜欢的一句话:海阔任鱼跃,天高任鸟飞。

篇8:Java程序的安全机制研究

关键词:Java程序,安全机制,安全管理器

Java语言是一种基于类型安全的强类型语言, 利用Java语法与Java语义来规定Java类型, 并保证Java程序的安全性。随着计算机技术的不断发展, Java程序安全性不断完善, 其安全机制包括“认证”、“权限控制”、“加密、解密与签名”、“安全套接字连接”等。但是从应用实际现状来看, 任何程序的应用安全都是相对的, 想要在现有基础上更进一步提高Java程序安全性, 就需要对其安全机制进行深入研究。

1 Java运行方式分析

Java程序主要采取先编译、后解释以及执行的运行方式, 其程序代码并不在本地操作系统层上运行, 且不能直接调用本地操作系统方法与工程, 而是需要通过JVM调度与审核来完成一切运行。JVM作为Java程序运行的虚拟平台, 应用此种运行方式, 一方面可以保证Java程序平台无关性, 另一方面同时也可以为Java程序安全性提供审核空间, 以及相应安全检测策略, 避免网络环境中存在恶意程序对计算机程序进行攻击与破坏, 提高程序运行安全性。

2 Java安全特性分析

2.1 类型安全

Java程序运行时想要保证自身安全性, 首先需要保证类型系统的安全性。对类型安全进行分析, 需要从两个方面进行, 即类型检查与类型安全。一般情况下, 计算机整体结构中, 任何区域均存有必要的Java对象, 并且每个对象均具有自身对应的类标签, 来确定对象对应的类可以允许完成这个操作, 即动态类型检查。此种方法在实际应用中, 虽然可以保证系统能够正常运行, 但是长时间运行会存在效率较低问题。基于此可以选择用静态类型检查, 即在对程序进行运行前, 需要对其进行全面分析, 确保某个标签检查操作能够正常运行, 则Java只会对其进行一次检查。否则, 若并不确定是否能够对某个标签检查操作成功, 则在程序载入前会报出错误。另外, Java系统运行安全还存在一个常见问题, 即类型混乱。一般Java系统会将对象看作为内存块, 被分配的内存包括一个接一个排列起来的所有对象数据域。一旦程序内某个指令需要引用某个对象时, 便需要一个确定目标地址的因素, 即类型标签。在此种运行程序下, 如果想要从根本上来确保Java系统安全性, 前提是要确定这个类型标签是否已经被恰当的标记。

2.2 语义分析

可以从三个方面来对Java进行语义分析, 即公共变量、被保护成员变量以及Java包。

2.2.1 公共变量

Java语法中对公共变量进行了定义, 其可以被任何Java类方法改写, 包括跨过命名空间且来自网络的Applet程序, 这就决定了公共变量中存储数据会存在一定的风险。

2.2.2 被保护成员变量

被保护成员变量能够被创造这个变量的类, 这个类所在包以及子类中所有成员访问。这样代码就可以通过验证自己身份权限, 确定自己是某个包成员而完成内部所有变量的访问。

2.2.3 Java包

系统仅仅给Java包提供了基本模板, 虽然其在命名空间表面上为分层状态, 但是Java包模板并不能成功嵌套。当能够成功嵌套模板时, 程序员才有权限限制安全敏感组件的可见性。

3 Java安全管理器分析

3.1 安全管理器概述

Java安全管理器可以为Java虚拟机环境建立一个防护作用的“沙箱”, 确保为程序的运行提供一个安全限制的操作环境, 如常见签名验证、定义安全策略以及安全管理器检查操作权限等, 来保证JVM外部资源的安全性, 避免受到JVM内部恶意代码的损坏。对于Java安全管理器来说, 其可以提供灵活性较高的安全策略, 以及细粒度访问控制, 授予不同资源访问权限, 最终构建成为Java程序安全机制。

3.2 安全机制类型

3.2.1 确认源文件安全

在确定源代码来源具有较高可靠性后, 向其分配相应操作权限。Java安全管理器能够为载入代码提供代码签名机制, 来保证代码避免在加载到本地虚拟机之前过程中被恶意篡改, 提高其安全性。

3.2.2 分配安全策略

即在Java安全管理器验证代码来源后, 向其分配相应安全策略。如安全策略可以为一个Java.sercurity.Policy的实现类, 其主要提供安全策略的定义与权限检查功能。同时, 由启动类加载器所加载核心类并不受安全管理器控制, 在实际应用中, 需要利用类加载器避免核心类被伪装代码替换。

3.3 Java沙箱

可以说Java沙箱为Java程序安全机制的核心, 对于Java程序来说, 其必须要在自己虚拟沙箱内执行, 来保证其运行安全性。其中JVM只向Java程序授予一组特定权限, 来对其系统其他部分的访问动作进行限制。Java沙箱主要是利用安全管理器来对各项权限进行检查, 并通过安全管理器来达到权限控制的目的, 除安全管理器外还包括访问控制器与策略文件两部分。在执行操作前, Java安全管理器确定是否允许执行此操作, 通过跑出Security Exception来拒绝此项操作, 但是大部分情况下其不会做出拒绝操作的最终决定, 而是通过访问控制器来检查。访问控制器对策略文件进行搜索, 最终确定是否允许执行此项操作。其中, 策略文件为一个文本文件, 可以通过任何文本编辑器进行编辑, 或者是选择用policytool GUI编辑策略文件。

4 结语

Java程序在实际应用中相对广泛, 结合程序运行环境特点进行分析, 为提高其运行安全性, 需要在现有基础上做更为深入的研究。即对程序安全机制运行方式进行分析, 掌握其要点, 遵循其运行原理来采取措施进行优化, 降低外界因素对程序运行环境的损坏。

参考文献

[1]杨哲慜.Java语言的程序漏洞检测与诊断技术[D].复旦大学, 2012.

[2]王晓亮.Java智能卡Applet安全下载机制的研究与实现[D].西安电子科技大学, 2009.

篇9:浅谈Java程序设计的网络编程

关键词:数据包;TCP协议;UDP协议

中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2012) 10-0098-01

计算机网络是计算机技术和通信技术紧密结合的产物,对如今社会发展有着深远的影响。网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要问题:一个是如何准确地定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效地进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。

一、TCP和UDP协议

TCP和UDP协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS、SNMP、DNS、TFTP等。

二、网络通信中Java的网络类和接口

Java中有关网络方面的功能都定义在java.net程序包中。Java所提供的网络功能可大致分为三大类:

(一)URL和URLConnection:使用Socket类进行网络编程相当麻烦。对已经存在的协议,程序员应当了解它的每一段代表的含义,改而使用URL类可以很大程度上免去这些麻烦。

1.URL类

URL是类URL表示统一资源定位器,即指向网上某处资源的指针。一个URL包括协议名和主机名,有些还包括特定的端口号。

2.URLConnection类

通过URL的方法openStream(),只能从网络上读取数据,如果同时还想输出数据,例如向服务器的CGI程序发送一些数据,则必须先与URL建立连接,然后才能对其进行读写,这时就要用到URLConnection类了。CGI是公共网关接口的简称,它是用户浏览器和服务器端的应用程序进行连接的接口。

URLConnection类可以由两种方式构建:一种是通过一个URL实例openConnection()方法返回一个,另一种是直接通过new URLConnection(URL ul)来创建。URLConnection实例不仅可以实现接收消息,还可以发送消息。

(二)Socket:又称套接字,是网络编程中最原始的通信方式之一。一个套接字通常包含一个IP地址和一个端口地址,后者一般对应着某个应用程序。因此如果要进行Socket编程,首先要确定端口。一般来说,1024以下的端口已经被指定为固定的服务类型,如果用户要开发自己的交流平台,必须使用之后的端口地址。

套接字(Socket)允许程序把网络连接当成一个流,可以向这个流写字节,也可以从这个流读取字节。Java的Socket类提供了丰富的功能。服务器使用的一般是ServerSocket,通过连接使双方都会产生一个实例,对实例进行操作来实现通信。大部分工作都是在抽象类SocketImpl中定义的。

任何一个网络程序都离不开连接的建立、读写操作、关闭,程序还分为客户和服务器两种类型。除了关闭操作可以简单地使用Close()方法外,读写操作都不是一句话说得完的。

(三)Datagram:是一种面向无连接的通信方法。它基于UDP协议,不需要建立和释放连接,每次通信时只要构造一个DatagramPacket实例发送出去,对方同样构造一个DatagramPacket实例接收。以Datagram方式传送数据时,只是把数据的目的地记录在数据包中,然后就直接放在网络上进行传输,系统不保证数据一定能够安全送到,也不能确定什么时候可以送到。

三、Java实现加密

Java的网络功能十分强大,还体现在作用它可以轻松实现各种加密算法。如今加密算法大致可分为两类:对称加密和公钥加密。

对称加密,发送方和接收方使用同样的密钥,前者用它来加密,后者则用它解密。这样做本来是很安全的,例如3DES的密钥为112位,这样的组合数大约是5×1033,几乎不可能被攻破。但是密钥总要在双方交换,因此交换途径的保密性就很关键,使用人工固然安全却麻烦,在网络上传输虽方便但危险。故如今网络上大多使用公钥加密方式。

公钥加密的优点在于,加密和解密的密钥是不同的,前者称为公钥,后者称为私钥。公钥,顾名思义,是可以公开的,一台电脑里可能存放了很多远程通讯方提供的公钥。

公钥解密还可以用在数字签名上,这时的动作是相反的:用私钥加密,和用公钥解密。Java里用于实现这方面功能的是java.security软件包。

综上所述,Java网络编程主要基于TCP协议和UDP协议,TCP协议提供高可靠性服务,适用于一次要传输交换大量报文的情况,信道上传递的包不需要源地址和目的地址,UDP协议提供高效率服务,适用于依次传输交换少量报文的情形,每个数据包含目的的地址和端口号,Java支持网络通信的类在java.net包中。

参考文献:

[1]印旻.Java语言与面向对象程序设计[M].北京:清华大学出版社,2007

[2]朱福喜.Java语言程序设计[M].北京:清华大学出版社,2007

[3]李明才.Java语言程序设计案例教程[M].北京:中国水利水电出版社,2010,8

[4]张渝.Java语言程序设计[M].北京:北京大学出版社,2008

篇10:java求职自我介绍

我叫***,来自河南郑州,刚从XXX离职,我在北京已经两年了,一直从事java软件开发工作,今天来是希望能够获得贵公司的Java工程师岗位,不管今天的结果如何,也都感谢经理您能从百忙中抽出时间来面试我。

我是一名java工程师,1、能独立完成子模块的需求分析过程,并指导后续设计和开发工作。 2、能够遵从上级领导的指示,按照工作进度进行编程。2;熟悉eclipse/myeclipse/ SVN开发工具,设计、编写和测试模块;3、编写软件产品文档;4、完成上级指派的其它工作。我在上一家工作了近四年,也参与过不少项目,是有关财务、进销存、人事管理、OA、ERP、电子商务的项目,总体来说都是管理类项目,设计到的新技术也不多。具备建模相关知识,具有一定的模型设计能力。在工作期间,参与过需求文档的讨论,文档的撰写,数据库的设计,报表的开发,ETL的处理,以及数据库的运维等等。

当然我自己也有了解过一些热门新技术,像HTML5、物联网技术都有过了解。这几年来我主要是做j2ee的企业级管理项目,对j2ee这块相当熟悉,掌握ssh,ssi等web框架;熟练掌握主流数据库mysql/oracle,熟悉sql server/designer等设计工具;熟悉tomcat/jboss/glassfish等服务器;熟练掌握前段开发的html/css/js/jquery等前段框架,熟悉html5/css3的新特性,熟悉前端开发工具Dreamweaver/Photoshop;熟练掌握各种插件,如dbcp/c3p0/filed io/smart upload/jxl/jfreechart/json/dbutils等常见开发插件;我在大学也修过管理学,在说除技术之外,我乐观向上,善于与人沟通,所以我认为我还是很有希望留在本公司和大家共处,也希望能有一个展示我能力的地方。

篇11:java应聘自我介绍

java应聘自我介绍范文

(一)各位尊敬的考官:

大家下午好!很荣幸能在这里面试,让我有向各位考官学习与交流的机会,现将自己的情况简要介绍一下:

我叫xx—x,出身在xx。性格比较温和、谦虚、认真细致、踏实、吃苦耐劳、有较强的责任心和社会适应能力。即将于xx年xx月毕业于河南工业职业技术学院,作为一名软件专业的大学生,我更喜欢平面设计,在大学三年的学习生活中,我对平面这一领域的相关知识有了一定的掌握,同时具有实际的操作能力与技术。

为了使在校所学的知识更好地应用到实际生活中,于xx年xx月有幸来北京中科院计算机所培训中心,通过三个月的实践训练,全面系统地学习了平面方面的专业知识与技能,能够应用平面设计的相关软件(photoshop图像处理软件、illustrator与coreidraw矢量绘图软件、indesigin与pagemaker排版软件)做基本的图像处理、海报、企业宣传册等,能够将所学知识真正应用到实际生活中。

在投身于社会之际,为了找到符合自己专业和兴趣的工作,更好地适应社会,我希望自己能够做到一种被别人需要的一种状态,至于做什么,就是在实践中,不断的学习、不断的锻炼。因此,我希望加入贵单位,如果能够成为公司的一份子,我相信我一定在自己的岗位上尽职尽责、踏踏实实地贡献之集的一份力量,与公司共同促进、发展。

“世界之大,人才济济”。我承认之集还不是最优秀的人才,但是我希望之集是此岗位最合适的人选,希望有幸能够被贵公司领导予以特别考虑。今后我在好的方面再接再厉,不足之处有所改善。我的介绍到此结束。谢谢!

java应聘自我介绍范文

(二)面试官您好,很感谢贵公司给我这次面试机会,我感到很荣幸。我是xx工业工程职业技术学院xx届计算机网络专业应届毕业生。平时我喜欢运动,性格活泼开朗,能关心身边的人和事,和亲人朋友融洽相处,能做到理解和原谅,我对生活充满信心。

大学四年里,我对计算机产生了浓厚的兴趣,喜欢计算机编程,大2时候还在院计算机网络中心做过一年计算机维护工作,这更增加我的信心。

我的专长是数据库开发,我希望能从事这方面的工作。我曾开发过多个系统,基中有:成绩管理系统、人事档案管理系统、工资管理系统等等。

作为一名应届毕业生,我所拥有的是年轻和知识。年轻也许意味着欠缺经验,但是年轻也意味着热情和活力,我自信能凭自己的能力和学识在毕业以后的工作和生活中克服各种困难,不断实现自我的人生价值和追求的目标。谢谢!

java应聘自我介绍范文

(三)大家好,我是xxxx职业学院信息电子系计算机硬件专业的一名应届毕业生,衷心感谢您抽出宝贵时间审阅我的简历。在三年的学习生活中,我牢固地掌握了计算机硬件与电子专业的基础知识,精通数电与模电,熟练office办公软件,对计算机组装与维护把握深刻,并在各种实践中获得了一定的实际运用能力。并利用课余时间进行了汉语言文学自学考试,通过科目过半。在自考期间不但提高了文学功底,而且培养了我坚强的意志。课余时间我还广泛阅读各方面书籍,积极参加各种集体活动和社会实践活动,扩展了知识面,培养了团队精神,增强了组织交际能力,提升了综合素质。

虽然缺少工作经验和社会阅历,但我会在实践工作中勤奋学习,弥补不足,积极进步。或许我应聘的职位和计算机硬件专业并不对口,但我认为人的才能并不仅局限于所学的专业,在其他领域同样有可挖掘的潜力!

java应聘自我介绍范文

(四)各位评委大家好,我是一名即将毕业的计算机系本科生。大学的四年,给我奠定了扎实的专业理论基础,良好的组织能力,团队协作精神,务实的工作作风还有良好的为人处世能力。

理论学习上,我认真学习专业知识理论,在学好专业必修课的同时,我还阅读了大量计算机书籍。同时对于法律、文学等方面的非专业知识我也有浓厚的兴趣。在校期间,在专业考试中屡次获得单科第一。获得院设奖学金一次,院三等奖学金五次。是个成绩优秀的学生,一致受到老师和同学的好评。

在专业知识上,我除了精通Visual Basic、SQL Server、ASP,熟练使用Linux、Windows 9x/Me/NT/2000/XP等操作系统,熟练使用Office、WPS办公自动化软件。还自学HTML、Frontpage、Dreamweaver、Fireworks、Flash等网页制作相关软件。对于常用软件都能熟练使用。运用自如。

工作上,曾担任院学生会成员、副班长等职,现任计算机系团总支组织部部长。多次组织系部、班级联欢会、春游等活动,受到老师、同学们的一致好评。思想修养上,我品质优秀,思想进步,笃守诚、信、礼、智的做人原则。

在社会实践上,四年的大学生活,我对自己严格要求,注重能力的培养,尤其是实践动手能力更是我的强项。曾多次参加社会实践活动,具有一定的实践经验和动手能力。

篇12:java项目经理自我介绍

有三年以上项目经理经验,技术与管理能力俱佳。在JAVA/J2EE方面有深厚的经验,包括javascript, Ajax, jsp, Servlet, JDBC, JSTL, JAVA MAIL and JMS等。在以下主流框架上有深厚的经验,包括Struts,Spring,Hibernate,iBatis,FLEX,另外也熟悉ExtJS。对WEB服务器Tomcat有深厚的经验。对数据库MySQL有深厚的经验, 另外也熟悉Oracle。熟悉Windows,Linux操作系统。

在xx公司任职期间, 于.12-.06期间带领研发团队进行了人才测评系统的项目研发工作。 在xx公司时,于.02-.09期间带领研发团队进行了Panta FX的项目研发工作,但由于当时日方consulting人员的调研不足,使得我方在系统架构设计方面存在了缺陷,最终导致在性能测试上没有达到客户的要求而没有得以正式上线,但我们也较好的完成了自己的份内职责,并在这次项目经历中收获了宝贵的经验,也体现了项目中沟通的重要性。于2008.10-2009.06期间我又带领团队进行了第二个FX项目EMCOM TRADE的研发工作,经过上次的失败经历,这次我们参与了前期的需求调研,对于客户需求了解的比较充分,因此在系统架构设计方面弥补了上一次的不足,采用了一些更有利于提升性能的方式如集群技术,而中间件也换成了更快更稳定的ActiveMQ,所以该系统于2009.05得以顺利的上线,目前运行的良好,我们团队也得到了日方较高的评价,且在线人数和交易量等重要指标都处于稳定攀升中,为集团公司带来了又一个新的利润增长点。正是基于在以上两个项目中的良好表现,在公司的年度表彰大会上被授予了“优秀管理者”的称号。

希望能通过此次面试,以充分发挥自己八年软件开发工作以及三年以上项目管理工作经验所积累下的丰富的专业知识和技能,为公司的发展出谋策划。

篇13:Java程序设计中空对象的应用

关键词:多态,空对象,特殊对象,设计模式

1 引言

在程序设计的代码编写中, 在向对象发送一个消息 (也就是应用这个对象) 之前, 一般要检查对象是否存在, 这样的检查的场景很容易出现多次。比如在电信业务受理系统中, 可能会向一个业务受理对象索求它所相关的套餐对象, 然后再验证这个套餐对象是否为null;如果这个套餐对象存在, 才能调用它的资费方法来设置这个受理业务的资费, 在很多地方都是这样做的, 造成很多重复的代码, 空对象可以避免这样的情况。空对象的另一个应用场景是列表中的空对象和正常对象处理方式一样, 减少了空对象并且简化了处理。使用空对象带来的好处是系统从来不会因为空对象而被破坏, 由于空对象对所有外界请求的响应都和真实对象一样, 所以系统行为总是正常的。空对象还有一个特点就是一定是常量, 它们的任何属性都不会发生变化, 因此可以用单例模式来实现它们。下面就以实例来讲解在各种场景下的应用。

2 应用实例

现在有个应用是要计算汇总一个家庭所有成员名下的所有银行账户金额, 有的成员可能没有银行账户, 这里利用空对象技术, 就不用出现判断null的条件了, 详细的代码请见源代码文档, 这里只列出关键代码。

(1) 银行账户接口, 关键是要实现isNull () 方法。

(2) 如果没有银行账户, 就用NullBankAccount这个类来抽象, 用来建空对象。

(3) 正常的银行账户类, 用于创建正常的对象。

(4) 家庭成员接口, 家庭下的成员要实现这个接口。

(5) 家庭成员中的成年人, 成年人可以赚钱了, 有收入所以这里定为有银行账户。

(6) 家庭成员中的小孩子, 这里定为没有银行账户, 所以用NullBankAccount类来创建空对象。

(7) 计算家庭成员的所有收入总和, 在这里可以看到, 程序非常简洁, 没有与null的比较语句, 这里也不会出现null的异常场景。

3 结语

篇14:java程序员的自我介绍

[关键词] 程序设计 案例教学 任务驱动 项目导向

引言

Java语言是20 世纪90 年代初由sun 公司推出的一种纯面向对象的编程语言,随着互联网和移动设施的发展,由于它的可移植性跨平台性等优点,在基于网络编程开发中应用广泛,其得到了迅猛的发展。“Java程序设计”是高职高专院校计算机相关专业开设相当普遍的一门学科基础课,各高校都非常重视这门课的教学,作为高校教师必须深入研究这门课的教学规律,提高教学质量。该门课程的教学目标不仅是使学生通过程序设计语言的学习,全面地掌握面向对象程序设计的基本知识与基本操作技能,为学生学习后继课程打下扎实的基础; 同时,它还是培养学生思维能力和实践能力的重要环节。因此,在该课程的教学中,必须更新观念,开拓教改新路,重视学生思维和实践能力的培养。

我院从2003年起面向计算机应用技术和计算机网络技术专业的学生开设了Java程序设计课程,本人一直担任该课程教学工作,围绕着课程内容与结构、教学方法与手段、课程考核等进行全方位的教学改革研究与探索,本文将从Java课程的理论课教学、上机实验课教学以及实训课教学等方面展开阐述。

Java语言教学存在的问题

在Java 程序设计这门课程日常的教学中,通过无数次与学生的交流、沟通,以及与同事之间的相互交流中,作者发现该门课程在实际教学中主要存在以下几个方面的问题:

1.传统教学模式使学生觉得这门课既“苦”又“枯”

传统的教学模式是,“提出概念—解释概念—举例说明”。课程一开始要引进程序设计的思想和大量的新概念,再加上教学方式为“填鸭式”,学生的注意力都被引导在具体的语法细节上,却忽略了解决问题的总体思想,使学生感觉学习这门课既“苦”又“枯”。“苦”的是要学的东西多,学习是被动接受,不会学以致用;“枯”的是学生刚开始时对学这门课感兴趣,但学着学着就没有兴趣了。程序设计本身就比较枯燥, 对于理解能力和自控力相对较弱专科类学生更是如此。

2.教学方法尚有待改进,学生学习兴趣没有得到良好激发

各高校计算机及其相关专业通常在C 程序课程后开设Java课程,教师在讲授过程中仍然使用面向过程的语言的教学方法,学生也习惯于面向过程语言的学习方法,将教学过程和学习重点放在了语法和算法上,忽略了Java 面向对象的编程思路的理解。再加上大部分教师的教学方式还是以教师讲授为主,学生被动接受,课堂气氛沉闷、极其缺乏互动性。教师的讲授大多还是按照现有教材结构,常规的顺序式、灌输式教学,对课堂上引入的程序案例不能精心筛选或者适当修改,使得其缺乏实用性和趣味性,不能吸引学生学习的“注意力”。这种教学方法不利于培养学生解决综合问题与实际应用问题的能力,更不利于启发学生的思维与激发学生的学习兴趣。常常是很多学生上课非常认真,基本的原理和理论也能听懂,但是一遇到实际问题就解决不了。

3.实践环节较为薄弱,实验教学重验证、轻设计,实验效果不佳

多数教师一般严格按照教学大纲和教材组织教学,学生的学习只限于书本上的练习。实验教学的内容多以执行和验证程序为主,以消化课堂理论讲授内容为目的。大部分学生上机实验只是将实验教程上的实例程序输入计算机,遇到问题查阅资料,很少靠自己思考解决。整个实验过程学生就如在练习打字,一旦题目稍有变化便不知如何设计,遇到实际问题更不知如何解决。而且学生没有参与过完整的项目开发,不能把所学的知识贯穿在一起,不能建立起整体的编程思想,达不到软件业对软件人才的要求。

4.考核方式单一,学生受应试教育思想的影响,学习目的狭隘

过去考核方式基本上是以学期结束的笔试为主,考核是知识而不是能力,而且是一纸定结果。很多学生学习Java 仅仅倾向于应试而淡化实际应用与开发,这也导致学生在学习过程中只是一味模仿课本上的实例,知识点零散,对系统开发认识模糊,不能形成软件开发的整体概念。

5.课程结束后,学生只会做一些孤立的小程序

传统的语言教学往往比较注重Java 语言基本语法的讲解,所举编程实例也只是简单地用来验证语法规则,只是“就事论事”的进行教学,致使大多数学生在学习过程中“知其然而不知其所以然”,对Java 程序设计的掌握也仅仅停留在语言使用层面上,不能吃透、用活所学知识,造成学生学完这门课程后仅会孤立地做一些简单的小程序、小例题,而在开发应用软件时设计能力差,无法实现培养学生编程能力的教学目的。

课程教学改革的实施过程

“Java程序设计”课程的教学环节主要包括:理论课教学、上机课教学、实训课教学三个部分。通过多年的教学实践,采用案例教学方法进行理论课教学,采用任务驱动进行上机课教学,采用项目导向进行实训课教学,可以较为有效地提高教学质量。

1.理论课教学采用案例教学与“3W1H”教学法

在理论课教学环节中,教师应根据事先精心设计的案例,合理运用“3W1H”教学法等多种教学技巧,准确地向学生传授基本知识与理论。

(1) “3W1H”教学法

理论课授课要始终贯穿“3W1H”教学法思想。“3W1H”,即What—要求教师简明扼要地讲解清楚所要讲述的内容及要点,指出讲课的重点;Why—要求教师引出为什么要讲述该内容,该内容在软件开发中的作用,引起学生的好奇心及对听课的兴趣;Where—要求教师能够结合切身体会和经验指出所讲述的内容用在软件开发的什么地方,突出所讲内容的实用性;How—要求教师能够指出在实际的软件开发中如何使用所讲述的内容,突出所讲内容在实际软件开发中的使用方法和使用应该注意些什么。How的讲解至关重要。这种教学方法的目的在于不仅仅使学生具有应用软件的使用技能,也具备坚实的理论基础,逐步提升对将来的工作环境适应能力和自信心,且对学习充满兴趣。

例如在Java程序设计中“异常”的讲解思路可分解为:

What:解释什么是异常,why:java中为什么要引入异常,Where:在编程中异常都用在什么地方,How: 在异常处理中怎样使用异常。

(2) 案例教学法

在《Java 程序设计》这门课的教学中,要明确课程改革的思路,要以解决实际问题的程序设计思路作为教学的切入点,以教材的内容为主线,采用案例作为教学引导线,在教学中将晦涩难懂的概念、原理融合到案例中,从实际的例子入手,然后再上升到理论高度,适当讲解理论知识相应的知识点。这种模式不仅有助于学生掌握基本概念、基本理论,同时也能够培养学生解决实际问题的能力。能够自己动手解决实际问题是学习的最直接动力,是激发学习兴趣的根源所在。

通过案例教学时,语法、知识点的讲解全部可用程序说话。让学生先看例子,通过动起来的例子看到程序的运行结果,至于为什么这样,如何做到这样正是教师要讲的新知识点。例子讲完之后布置3 个操作练习。第一个练习是“仿”,即完成一道和例子极其相似的程序,让学生在模仿中巩固和加深对新讲授内容的理解,同时教师巡视单独答疑,帮助学生澄清教师讲解时没有理解的内容,最后教师就共性问题予以强调。第二个练习是“改”,即对第一个例子加工,将教师在讲解时已提及而例题中未涉及到的问题交给学生,激发学生自主学习的热情。在此过程中,教师对关键性问题给出指导思想。第三个练习是“提高”,即将具有一定算法难度但语法适用于当前阶段的问题抛给学生,培养学生的算法设计能力。在此阶段教师主要起启发、引导作用,启发学生的创造性思维。

在Java 程序设计课堂教学中采用案例教学方法可对每一个单一知识点进行教学。选取的案例都尽可能小而精,针对特定问题。通过小型案例讲解独立知识点,以案例模仿的形式促进学生动手能力。学生通过案例研究,培养一种分析问题的能力和独立处理、迁移性的应用能力。学习过程贯穿于案例分析的过程之中,培养学生学会抓住或发现问题,然后结合所学知识寻找解决问题的途径、手段。这样不仅能帮助学生巩固已学的知识,同时也能帮助学生提高自学能力和设计能力,强化了案例教学的效果。

在计算机教学中运用案例教学法,能够充分调动学生学习的积极性,提高学生探索、合作、创新能力,有利于学生理论知识的掌握和实践能力的提高。在实际的教学过程中,每位教师都应根据教学大纲、教学内容和学生实际情况的不同合理运用案例教学等方法,只有这样才能真正提高课堂教学效果,提高教学质量,培养出符合时代发展要求的高素质应用型人才。

2.实验教学采用任务驱动,提高学生动手实践能力

Java程序设计是一门实践性极强的学科,实践环节的教学尤其重要,其目的就是让学生在自主探索的过程中完成对新知识的练习和巩固。有一句关于实践的谚语是这么说的:“我听到的会忘掉,我看到的能记住,我做过的才真正明白。”讲的就是理论作为实践的支撑不是死记硬背背会的。让学生亲自动手实践,编辑调试程序,要比听老师讲、看老师做记忆深刻,同时还能明确知道自己到底哪个地方不会,特别是编译中出现的错误往往让学生印象更深刻。学生通过自己动手实验,进一步理解概念和理论知识, 教师引导学生从知道“怎么去做”到学会“怎么做”,达到理论与实践的完美结合。

实验内容除了教材中的例子, 还包括我们精心设计的实验题目。而实验类型大致可以划分为验证性实验、巩固性实验、分析性实验与综合设计性实验等几种形式。其中验证性实验内容主要来自教材中的例子,这种类型的实验目的是为了验证或演示基础知识点的特点与用法,以便理解这些基础理论。验证性实验是其他实验类型的基石。巩固性实验的目的是对基础知识进一步理解、巩固、深化。在验证性实验的基础上,巩固性实验的实验内容是教师为了让学生加深对基础知识的理解而专门设置的,这些实验内容的选择与设置应具有代表性,难度中等,符合教学要求。学习程序设计必须具备一定的程序分析能力与问题分析能力, 因此分析性实验设置的目的就是为了提高学生的分析能力。这一类型的实验中,教师根据要掌握的知识点设置一些程序题,让学生分析程序运行的结果并上机验证,通过比较自己分析与上机验证的结果,既可以知道自己分析的正误又可以更深入地理解知识。而综合设计性实验以培养学生的综合运用能力。我们把它放在课程实训课中完成。无论哪种类型的实验, 实验课题设置的好坏将影响学习效果,因此,针对每一种实验类型我们应该认真地设计相应的实验课题。

具体在实验教学时,要根据具体的教学内容与学生的实际情况,结合现实IT案例,提出实验任务问题,按照“行为导向”的原则,形成以“学生为主体,教师为主导,从中学, 做中练的一体化”的“教、学、做”一体化实验教学模式,以“解决问题、完成任务”为行动使命, 以“培养能力,掌握知识,培养职业素养”为培养目标,实施“任务驱动、启发式教学、讨论教学、现场教学”等教学方法与手段。

3. 课程实训采用项目导向, 提高学生综合实践能力

当今社会对计算机人才的技术能力、实践能力与创新能力要求越来越高, 综合素质较高的人才越来越受欢迎。 因此, 我们还考虑设置了该类型的实验,如课程设计和课程实训,是将所学的基础知识结合起来用以解决较复杂的问题, 在选择与设置综合性课题时,应综合考虑学生目前掌握的知识情况, 需要涉及哪些知识点,难度如何,将这些知识点结合起来解决什么问题,同时还应考虑学生水平的差异、能力的不同,因此具有一定的思维性、综合性与应用性。

课程设计或实训是对本课程所学内容的综合运用和巩固提高,它在整个Java 教学过程中起到一个承上启下的关键性作用,一方面能够巩固前面所学的基础知识;另一方面能让学生了解Java 开发的一些基本流程,为日后从事Java 领域的开发作铺垫。在课程设计阶段,学生已经有了一定的Java 编程基础,欠缺的主要是实际的开发经验和全面系统的、深入的掌握Java 技术。解决的方法就是通过企业真实项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,尽快达到企业的实际要求,让学生在具体的项目中进行学习,缩短学生与企业之间的距离。根据学生的实际能力选择好开发项目是关键,即不能让学生感到太容易,也不能让学生感到无从下手。通过学生的独立实践,使学生熟悉软件开发的全过程,培养团队意识。大大提高了学生理论联系实际和综合分析问题的能力。

有过项目实践经验的人都认为,通过做项目能学到的东西远比听课学到的东西多,因为这是个实践和自主学习的过程。在Java语言程序设计课教学计划需讲授的内容讲授完毕后安排一个为期两周的总结性实训教学课,借助于企业办学的优势,将公司中的实际项目抽取简化,交给学生以小型项目的形式来做,这是对学生一个学期的学习效果的综合考察。在完成这个小型项目的过程中可能会涉及到一些课堂上闻所未闻的知识,利用这个机会锻炼学生搜集资料、整理资料获取知识的自主学习能力。在此阶段,教师的职责不再是教学生如何解决一个具体问题,而是告诉学生到哪里能查找到帮助解决问题的资料。

“项目导向”的实训具体实施时,可将学生分成若干课题研发小组,模拟某企业中项目研发团队。其中被选为组长的同学,可以“情景扮演”成“项目经理”,由他给组内其他成员分配相应的工作任务,按照软件工程的要求完成该项目开发的全部流程。综合实训课程的项目设计注重实用性、真实性。将企业中的实际项目抽取简化,分解成若干模块交给学生以小型项目的形式来做。在完成这个小型项目的过程中可能会涉及到一些课堂上没有学习到的知识,利用这个机会锻炼学生搜集资料、整理资料获取知识的自主学习能力。

对综合实训的总结可以采取分小组答辩的方式,即每个课题小组把此次项目的设计思想、所用到的知识点、实现的技术难点、解决方案、完成效果、尚存在的问题等以PPT 的形式向全体同学、老师做讲解、演示。其他小组的同学和老师可以对其提问,一起讨论。这样的总结形式有效提高了学生自主学习能力、团队合作的精神,为将来步入社会做好了准备;也使得其他组的成员拓展了知识面,汲取到别人的长处,增强学习交流,从而打造了一个“积极”、“热烈”、“和谐”的学习氛围。

结束语

Java 教学一定要围绕提高学生实践应用能力展开,注重面向对象编程思想的培养,通过对《JAVA程序设计》课程各教学环节的教学改革尝试,学生的学习兴趣明显增强,动手能力也有了较大的进步,对本门课程的认可程度大幅度提高。当然,教学改革的方法并不是一成不变的,随着教改的深入,时间的推移,还会有新的问题出现,我们对教学改革的探索还将继续。

参考文献:

[1]刘新桥等.JAVA程序设计课程教学改革的探索与实践[J].长沙航空职业技术学院学报,2009,6,第9卷第2期.

[2]刘梦娟等.《互联网络程序设计》特色课程建设的实践探索[J].福建电脑,2011,1.

[3]俞辉,计算机专业提高Java 语言教学效果的探索与实践[J].计算机教育,2008(14).

[4]贺建英.如何提高高校学生Java 语言的实践能力[J].电脑知识与技术,2008(1).

上一篇:包装设计调查报告书下一篇:管理服务人性化