java程序员实习过程

2024-09-23 版权声明 我要投稿

java程序员实习过程(通用10篇)

java程序员实习过程 篇1

大学三年多,虽然我们学校里面只学了javaEE企业级,但是由于之前学习的时候就已经学了java的编程基础,因此在自学安卓开发的时候,通过在csdn, java贴吧,java中文网里面一边参考,一年多学习也让我具备了开发普通移动互联网应用的能力。

此次学校的实习中,由于我目前对于java安卓技术还是很感兴趣,因此我就选择了一家致力于移动互联网应用开发的软件公司,希望可以在里面和那些牛逼的java移动开发者一起工作,学到很多我难以在书籍、网络、杂志学习的一些知识。

不过和很多程序员大大、任课老师、毕业学长说得差不多,刚刚进入公司的新人基本上是不会直接进入开发组,参与到项目的开发工作中的。因此前期我基本上也就是一个打杂的,负责给公司的大部分人提供生活、工作上的便捷服务,其中包括买咖啡,收快递,接孩子等非保姆所能够做的事情。

就这样浑浑噩噩地度过了两个星期,我终于有机会可以在研发部门拥有一张独属于自己的办公桌了,因此也有了几位同样使用内网聊天工具聊天的好友,可以一边聊天一边学习了。当看到办公桌上电脑里面的程序代码的时候,我才意识到原来我的技术水平还真不是一般的次,就连很多普通的小功能我都难以像那位将代码写进电脑中的程序员一样以简短的代码高效率地让程序执行起来。

所幸的是,研发部的同事们也都是很乐于助人的,有时候他们去喝水、上厕所的时候,总会和我打声招呼,如果我遇到了什么难题的话,甚至还会停下脚步和我一起商量这个问题的解决方法。如果是在下班的时间,他们甚至就像一个大哥哥一般,照顾我这个小弟,让我在气氛比较压抑的开发部也过得更有声色。

除了java的安卓技术之外,我还遇到了一位c语言特别牛逼的同事,据说他以前做个单片机,在某家大型的公司也担任过一个重要项目的项目经理。虽然他平时看下去总是一副显山不露水的样子,但是如果你和他开始交谈起来的话,你就会发现原来平时这个最低调的人竟然就和电视剧里面扫地和尚一般,令人敬佩他的个人能力。

java程序员实习过程 篇2

一、课程定位

本课程的培养目标是:通过项目驱动的学习和综合实训, 使学生熟练掌握运用Java语言进行桌面应用程序开发的基本知识和技能, 并能结合数据库技术和软件工程技术进行桌面应用程序的开发, 能基本胜任Java开发程序员的岗位。在课程的学习中, 培养学生诚实、守信、坚忍不拔的性格, 培养善于沟通表达、善于自我学习、团队协作的能力, 并养成编码规范、按时交付软件等良好的工作习惯。

二、课程设计理念与设计思路

1. 设计理念

软件企业的岗位能力要求是课程开发的目标, 以岗位和工作任务为导向, 以具体公司房屋租赁管理系统项目为载体, 根据典型程序开发过程及Java程序员能力要求, 重构课程结构, 培养学生的技术应用能力、自主学习能力、创新能力及综合职业素质, 充分体现课程的实践性、职业性和拓展性的要求。

2. 课程设计思路

(1) 校企合作。“Java程序设计”在课程建设中, 积极开展与企业的广泛交流和有效对接, 实行校企共建课程, 共同商定教学大纲、课程标准。将软件企业的职业岗位确定为程序员、软件设计师、软件测试员, 根据岗位应当具备的开发、设计、测试知识与技能, 以适应软件开发能力要求为出发点。

(2) 课程内容的选取。“Java程序设计”课程教学采用以一个完整的实际企业项目——某公司房屋租赁管理系统 (HRMS) 为驱动, 根据典型程序开发过程及Java程序员能力要求, 重构课程结构, 分为九个子项目 (学习情境) 。

(3) 采用校内与校外相结合的教学方法。根据“产学结合”的教学模式, 将课堂移到校内实训基地与校外实训基地, 以实际的软件项目为载体, 引入软件人员参与课堂实训教学过程中。在校内实训基地, 专业教师负责管理学生项目开发与管理, 企业技术人员负责指导实训项目、学生考核等;在校外实训基地, 由校企业技术人员负责学生在企业的实训与管理。

三、课程内容组织与安排

1. 教学内容的选取

以程序员岗位实际工作任务为依据, 采取递进式设计的学习项目和学习任务, 明确所需知识、能力和素质要求, 进行教学内容选取。基于软件开发的工作过程划分教学情境, 以企业真实项目为载体, 坚持理论够用原则, 将相关知识分解到实际项目中, 通过分析和实现项目, 让学生掌握相关知识和技能。尽量选用技术实用性强、知识拓展性强的项目, 同时在教学实施过程中引入软件项目开发与管理规范。

2. 项目导入、任务驱动

整个课程教学内容由一个实际企业运行项目HRMS——房屋租赁信息管理系统为驱动, 将其按照功能细分为9个子项目, 设计27个子任务 (如表1所示) , 将本课程的学习内容与实际项目进行整合。各子项目、任务间层层递进, 体现了“项目导入、任务促学”的课程设计思路, 使课程体系有效地反映了知识、技能、素质的紧密结合, 帮助学生建立起良好的编程语言思维逻辑, 为后续专业课程的学习打下良好的基础。

3. 多层次的实践教学体系

课堂的实践教学主要有四个环节:

(1) 正常的课程单元实训。按照教学进度, 安排课堂实践和拓展实训, 以达到通过实训掌握理论、建立基本面向对象程序设计思想的目的。课堂上机实践主要以教师设计的项目为内容, 上机实验可以运用多媒体软件演示和一对一指导等多种手段。

(2) 课后拓展实训。让学生利用课余时间完成拓展要求。拓展实训内容相对比较难, 充分结合开发实际需求, 要求学生有创新, 充分调用学生学习积极性。

(3) 对HRMS的各个子模块进行组合、调试和测试。在课程的最后一周, 安排一次完整系统的实践, 学生完成课程的同时得到一个软件产品。一周的真实项目实训, 以项目小组的形式组织, 以班为单位分组进行 (每组3~5人) 。学生在项目中模拟真实软件开发小组的各种角色, 体会产品从需求分析到产品的全过程, 培养学生的团队协作能力, 为今后社会工作打下基础。

(4) 开展兴趣小组。有组织、有目的、有秩序地开展活动, 指导教师负责课题项目计划、审核验收和阶段评审, 学生在不同岗位上完成工作任务, 增强学生自主学习和自我学习意识, 为今后从事软件开发打下基础。

四、教学方法

基于工作过程教学的需要, 根据花卉生产环节, 课程组注重采用多样化的教学方法来有效地完成教学。

1. 现场教学

把课堂直接迁移到实训基地, 理论、实践与生产一体, 现场教学。教师边讲、边演示, 学生在“学中练”, 在“产中学”, 在真实的环境中掌握技能, 增强教学效果。教学实施过程以学生为主体, 由教师引导进行项目的引入、支撑知识介绍、任务的布置, 学生进行项目分析、解决方案的制定、项目实施和讨论总结, 个别小组演示, 最后由教师进行评审考核。

2. 项目教学

实训项目与生产任务、科研任务相结合, 全程由学生参与, 在基地师生通过共同设计、制定完整的“生产项目”。同时培养学生发现问题、分析问题和解决问题的能力, 提高学生创新能力和可持续发展能力。学生在教师的指导下, 完成软件项目开发全过程。通过目标成果, 检查学生掌握的程度, 给出相应的分数, 实践技能考核时再根据学生的操作过程评分, 两项分数之和记为此项目的最后得分。

3. 现代教学技术手段的应用

现代教育技术有效地促进了教学手段的完善, 提高了教学效果。现代教育技术丰富多彩的多媒体课件形式, 更有利于突出重点、解决难点, 增加了课堂的信息容量, 拓展了教学深度和广度。

五、课程的考核与评价

本课程的考核改变单一的终结性评价方式, 采用过程考核和结果考核相结合、理论考试和实践考核相结合的方法。其中实践考核所占比例为40%, 主要考核学生运用Java桌面应用开发的掌握情况;理论部分考核学生对教学中各知识点综合应用的掌握情况。灵活多样的考核方式可以全面考核学生的学习效果 (课程考核方式如表2所示) 。

基于“工作过程, 任务驱动”工学结合的课程理论, 坚持“能力本位”与“学生本位”相结合的教学理念, 以工作过程为导向, 以软件项目为载体, 以典型软件任务为主线, 来科学重构本课程的内容, 以此突出职业教育的特点, 着重培养学生的技术应用能力、自主学习能力、设计创新能力和可持续发展能力等等。

参考文献

[1]杨洁.德国高等职业教育发达原因分析[J].职业技术教育, 2009 (13) :90.

[2]陈向平.德国职业教育环境的认识与启示[J].高等职业教育 (天津职业大学学报) , 2008 (6) :88.

[3]王彦梅.“双元制”对我国职业教育的启示[J].赤峰学院学报 (汉文哲学社会科学版) , 2008 (9) :145.

java程序设计实习报告 篇3

《Java程序设计》

实习报 告

中原工学院信息商务学院

经济管理系 2010年6月20号

中原工学院信息商务学院

目录

一、实习题目...............................................................................................2

二、实习目的...............................................................................................2

1、社会需求.............................................................................................................2

2、专业需求.............................................................................................................2

三、开发环境...............................................................................................2

四、实习内容...............................................................................................3

1、系统功能需求..................................................................................................3

2、数据库需求........................................................................................................4

五、设计过程...............................................................................................4

1、总体设计.............................................................................................................4

2、详细设计.............................................................................................................5

六、调试过程...............................................................................................5

七、实习小结...............................................................................................5

八、参考资料...............................................................................................6

中原工学院信息商务学院

一、实习题目

学生信息管理系统的设计与开发

二、实习目的

1、社会需求

一直以来学生的成绩管理是学校工作中的一项重要内容,随着办学规模的扩大和招生人数的增加,学校工作繁杂、资料重多,普通的成绩管理已不能适应时代的发展,它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。虽然管理信息系统已进入高校,但还未普及而且对于学生成绩管理来说,还没有一套完整的、统一的系统,建立一个成绩维护系统是非常必要的。建立学生成绩管理系统,采用计算机对学生成绩进行管理,能进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩维护工作流程的系统化、规范化和自动化。

2、专业需求

《Java程序设计》课程是电子商务专业的一门专业必修课程,通过java实习不仅可以提升本专业我们对此课程中的理论知识的综合应用能力而且可以提高我们的逻辑思维能力、软件开发能力。我们通过Java技术在Windows平台下开发学生信息管理系统。能够切实提高我们的程序设计水平,在实践中掌握面向对象程序设计的开发思想。

三、开发环境

操作系统;Windows XP 编程环境:MyEclipse 6.0

中原工学院信息商务学院

主要技术:Java Swing实现窗体界面 JDBC实现数据库操作

系统架构:三层架构(MVC)+DAO设计模式 数据库:MySQL5.0

四、实习内容

1、系统功能需求

学生信息管理系统主要对在校学生的个人基本信息以及成绩信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;对学生用户提供成绩查询功能。我们的目标就是为该系统提供前台用户界面设计以及后台连接数据库程序设计,系统程序界面采用Java Swing组件实现,数据库操作采用JDBC实现。

学生信息管理系统要面对教师和学生用户。对于教师,需要查询全部学生的基本信息和成绩信息,并且可以对其进行修改。对于学生,不需要查询自己的基本信息,只需要查询成绩。为了保护学生成绩隐私,每位学生登录系统后只能查询自己的成绩,而无法看到别人的成绩。

教师方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以选择要操作的类别,即查询功能还是修改功能。在查询功能里面,可以选择是查询学生基本信息,还是查询学生成绩信息。在查询学生基本信息时,可以从依据不同字段,即学生信息表的不同属性进行查找。在查找学生成绩信息时,只能依据学生姓名和学号进行查找。在修改功能里面,包括对学生基本信息表和学生成绩表进行增加和删除记录。

学生方面:学生通过自己的用户名和密码登录此系统后,可以查询自己本学期的各科成绩信息。

中原工学院信息商务学院

2、数据库需求

依据功能需求,学生信息管理系统主要有三个表:student表、teacher表和score表

(1)student(学生信息表)

此表有六个属性,分别为:id(主键,自动递增),num(学号),sname(姓名),sex(性别),age(年龄),dept(系别)。(2)teacher(教师登录表)

此表有三个属性列,分别为:id(主键,自动递增),tname(教师账户),password(登录密码)。(3)score(教师登录表)

此表有六个属性列:分别为:id(主键,自动递增),num(学号),sname(学生姓名),course(课程名称),score(考试成绩),credit(学分)。

五、设计过程(包括总体设计和详细设计);

1、总体设计

这次java实习设计的学生信息管理系统,是对学生的个人信息,课程信息,成绩信息以信息化的方式进行管理,最大限度地减少各个环节可能出现的错误,有效减少因人力资源局限性导致的存储信息量大,信息存储错误,混淆等问题,合理进行信息存储,使学校能够合理录入学生的个人资料,学期成绩情况,以及课程安排,为学校师生的工作提供后方面。根据需求我们设计的学生信息管理系统教师可以查询、增添、删除学生信息,学生可以查询成绩信息。

中原工学院信息商务学院

2、详细设计

这次Java实习,首先,我们在机房装上了MyEclipse 6.0、navicat、MySQL等程序。其次,我们敲程序代码。源于程序的运行过程是进入提供用户输入机会的“视图层”,进而进入控制用户输入的“控制层”,最后到达“数据操作层”。我们新建工程,建立connection、dao、model、ui包,在connection包中建DBConnection类,在dao包中建ScoreDao、StudentDao、TeacherDao类,在model包中建Score、Student类,在包ui中建LoginUI、ScoreAddUI、ScoreDeleteUI、ScoreQueryUI、StudentAddUI、StudentDeleteUI、StudentQueryUI、StudentScoreUI、TeacherMainUI类。最后链接数据库。出现了主界面、教师登录、学生登录界面。

六、调试过程

在程序设计过程中出现了许多问题,现对我的经历做出以下论述:

1、编写程序时单词拼写错误,程序无法运行。

2、导入包时导错以至于下面的程序一直有错,最后只能重新导入包

3、出现了一些意外情况像只把工程剪切而没有剪切.metadata文件等导致文件无法再次打开导致重新做

4、链接数据库时曾出现驱动失败、链接失败的问题。驱动不成功原因是,第一次导入程序出错。第二次,导入程序时路径中含有中文字符。链接失败源于connection,主要是IP地址出错

七、实习小结(在整个课程设计过程中的总结和体会);

这次的java实习,我把所学的知识综合运用到开发过程中,使我获得了许多在课本中学不到的知识。当然,在实习中也遇到了许多的困难,在老师、同学的帮助下,问题终于被解决了。通过编写、调试程序我明白了许多。第一,不应该被未知的困难吓到,一切事情只要勇于一步步去做就会成功,想想当初害怕

中原工学院信息商务学院 的要命自己就觉得好笑。第二,态度要端正,摆正自己的心态,不要以为什么东西上网搜搜就可以了,一定要有自己的东西。只有自己付出过,当程序运行成功时的那种喜悦才会令自己有一种莫名的自豪感。态度决定一切!第三,要细心,在对程序的过程中我锻炼了自己的耐力和毅力。

八、参考资料

1、邵丽萍,java语言程序设计。

2、李君芳,赵艳杰.电脑知识与技术马朝晖等.Java教程.(第4版)[M].北京:人民邮电出版社。

3、王毅.Internet与Java[J].电子与电脑。

java程序员实习过程 篇4

成都java程序员培训哪个好?Java前景如何

中国每年有大量的计算机类毕业生进入企业,企业会把那些程序员列入优秀人才加以重视呢?斩获高薪的程序员需要哪些素质呢?

模块化思维能力

经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写 一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成 了熟练程序员的主要工作,而这些其实是完全可以避免的。

模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一 些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到 这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投 入到创新的代码工作中去。一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重 写,大部分重复性工作无谓的浪费了时间和精力。四川地处中国大西南,肥沃的土地,丰富的自然资源,悠久的历史和绚烂多彩的少数民族文化,构成了多样性的自然和文化旅游资源。随着社会竞争的日益激烈,在很多大城市中,毕业就意味着失业。在大本生遍地的今天,本科甚至更低学历的毕业证书,早已不是求职的敲门砖了。工作经验和掌握的技术成为现在应届生的求职“利器”,难道要面“对剑未配妥,出门已是江湖”的窘境吗,赶紧抓紧时间,找一个自己感兴趣、适合自己的技术进行学习吧~

一说起it培训,很多人都表示苦不堪言,总有人被虚假信息坑过。很多人表示自己对其一窍不通,实在不知道怎么办才好。别着急,让小编为你奉上这些必备小技巧,带你快速简单的上手。那么,实用的攻略有哪些?一般会选择哪家呢?哪个是最实用呢?下面就随小编来看一看吧~

如何学习学好Java编程,学完后尽快成为一个可以参加工作的Java开发者。如何准备转行学习Java。相信很多初学Java者都在考虑这个问题。

如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。

Java基础首先去找一个Java的基础教程学一下,这里推荐国信安基础教学视频,学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。学完以上内容后,你应该对Java有一个基本的了解了,你可以用Java语言写出一些简单的程序,并且你用的是最简单的编辑器,比如记事本。这个时候,不要急于进入下一部分,留下几天好好写一些程序,尽可能熟悉这些基础内容。

java开发等你写上几天程序以后,你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。这个时候你就

应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面)

你可以试着自己写一些页面,当然,你可以尽你最大的努力让它变得最漂亮。这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的,而且这个时候,你要学会使用开发工具,而不能再使用记事本了,可以选择eclipse。当你下载安装好eclipse以后,看视频中的教程一步一步去学习,一定要多动手。关于Servlet/Jsp部分视频的选择,业界比较认可王勇老师的Java视频教程,因此推荐给大家。

当你完成开发框架的学习以后,你就该找工作了,在校的找实习,毕业的找全职。与此同时,在找工作的同时,你不应该停下你的学习,准确的说,是你在以后都不能停下学习。上面这些内容你只是囫囵吞枣的学会了使用,你可以逐步尝试着去了解更多的东西,网络是你重要的老师。好了,说了这么多了,就到此为止吧,希望本文可以帮助到作为程序猿或即将成为程序猿的你。

java程序员实习过程 篇5

第一章:

2分钟看完,老生常谈,即使没怎么用过java也知道这些。

第二章:

1.instanceof应该是c++中没有的,c++使用RTTI解决这个问题的,很难用。

2.super这种引用父类的方法也是比较简单的,C++中是用父类名::父类方法()解决的,有点难看。

3.自动类型转换和C++一样,精度变高的随便转,精度变低的会丢失。

4.强制类型转换只有(type)这一种,不像c++有static_cast、dynamic_cast、reinterpret_cast、和const_cast。

5.运算符什么的和c++几乎一模一样。

半小时看完。

第三章:

1.break可以跳出语句块,c++中没有语句块。语句块的定义就是在一段语句前加上花括号和冒号;

其他基本上和c++一样,5分钟看完。

第四章:

1.java数组越界会在运行时抛异常,c++不会,声明数组的方法也有些不一致。

java 声明数组的所有办法

int[] a = new int[4];

int a[] = new int[4];

int[] a = {1, 15, 26};

int a[] = {1, 15, 26};

2.java的数组是一个对象,自带length属性,使用简单。c++的数组不自带方法和属性,要知道数组长度只能sizeof(arrayObject)/sizeof(int)。当然如果使用STL中的vector之类的也和java一样简单。

3.java的所谓数组赋值(或者叫数组拷贝)其实就是c++中的两个数组指针的赋值,java没有指针,所以作者费了一大堆口水。好在java有垃圾回收,要不然一个指针的内存就算泄露了。至于真正的数组内容赋值,是使用System.arraycopy(ir, srcPos, ir, destPos, length);而C++一般使用memcpy等函数。若使用STL中的vector,那么就看vector的拷贝构造函数怎么写的,应该是vector的对象赋值过去而不是指针指过去。

4.重温了冒泡排序(时间复杂度O(n2)),和快速排序(最坏情况的时间复杂度为O(n2),最好情况时间复杂度为O(nlog2n))。

5.For-Each语法被引入java了,在很多地方用起来真是简单。Python和c#早就支持了,c++中虽然STL的algorithm包中引入了for_each,但是由于需要使用函数指针还是略显繁琐。

这章挺多,看了一个多小时啊!

第五章:类和对象

1.Java中方法的重载和c++的一样,都是通过参数的不同来区别。但是c++中可以设置默认参数,而java不可以。

2.java中的对象大部分只能new出来,或者clone出来,或者反射出来,而不能直接在栈上定义出来。而c++的对象在栈上和堆上创建的都很多。

3.基本类型的参数传递,java和c++都是传值。对象的参数传递,java是传引用,c++是拷贝,也就是传值。其实c++中大部分时候也是传引用或者传指针,但java没有指针,也没有选择耗时耗空间的拷贝,只能传引用了。

这章对于c++程序员来说太简单,几分钟过一遍就可以了。

第六章:继承

1.方法被覆写后,如果要调用父类的方法,c++必须用父类名::方法名,而java用super.方法名即可。

2.多态和动态绑定,java和c++几乎一样,都很简单。

3.final关键字:java中的final关键字可以将一个类限制为无法继承的,同样的还有C#中的sealed关键字。而c++是没有这个玩意的。

4.java的抽象类和c++几乎一样。

5.java是独根语言,引入了Object类,它的clone方法就好像c++中的拷贝构造函数,它的equals方法是用来比较内容的,而toString方法是将对象作为字符串输出的。

这章对于c++程序员来说同样简单,几分钟过一遍就可以了。

第七章:接口

1.java中有接口。C++没有,唯一类似的是含有纯虚函数的虚类(没有纯虚基类这个说法)。但是COM、CORBA等中间件中都有IDL语言(接口定义语言),使用这些中间件的c++程序员也没有少写接口。

2.接口实现的一些规定:

1)如果实现接口的不是抽象类,则必须实现其接口的所有方法才能被实例化;

2)接口中所有的方法默认为public;

3.接口可以用来实现多态;

4.java的内部类和c++差不多,都没人关心,最多懒得想名字的时候用用那个匿名内部类(例如什么UI的响应函数)。

5.java的对象克隆,吹了一堆就是个c++中的拷贝构造函数。所谓什么“浅克隆、深克隆”问题,就是c++中拷贝构造是遇上类中定义了指针的问题。C++程序员一望即知。

接口是为了维护单继承机制弄出来的,花半小时看看还是值得的。

第八章:面向对象编程

C++程序员不用看。

第九章:异常处理

1.java的异常处理中有finally语句块,而c++中没有,所以程序员要自己想办法来处理异常发生后诸如“资源释放”之类的问题;

第十章:线程

1.java语言自带线程机制,c++目前还是不带线程机制的。虽然boost::thread库也被众多c++程序员广泛使用。但是windows下用得最多的还是windows SDK自带的线程函数;而linux下用得最多的还是pthread。另外还有一些号称同时支持多个平台的多线程库。

2.java多线程有两种方法实现,第一是派生Thread类,第二种是实现Runnable接口。

3.java线程分为4种状态:new、runnable、non runnable和done,这和其他线程库大同小异;

4.run、start、stop、sleep、suspend、resume、yield、wait、notify和notifyall等方法的含义也和其他线程库一致。但suspend、resume和stop等方法是不建议使用的,因为可能会导致死锁。

5.java可使用join方法来等待线程结束,而在某些线程库中join方法经常是不可用的。

6.java的互斥使用synchonized关键字实现,它很类似于boost.thread中的lock(mutex),只不过它是对线程对象隐含的锁加锁。其实这很不利于新手理解。另外还介绍了synchonized的一些乱七八糟的用法,相信对于新手这只有反作用。

这一章对于线程,介绍得比较浅显,实现简单的多线程应该没问题,但是稍微复杂一点的也许就需要其他的开发包了。Java线程连个Mutex类都没有,这是最让我吃惊的,仅仅使用synchonized来实现同步、互斥、信号量该多麻烦啊,也许是我还没弄懂java多线程吧。

第十一章:图形编程

1.IDE的年代,GUI还是画出来吧。Java中也就Layout类需要看看,其他大部分Layout类也是凑数的,根本不会有人用。

第十二章:事件处理

随便看看了解即可,新手可以试着写写代码,老手直接IDE中添加事件即可。

第十三章:Swing用户界面设计

同第十一章,随便看看即可。界面一般有专人搞,普通程序员能看懂就行了。

总结:《java从入门到精通》这本书整体质量尚可,c++熟手大概一到两天可以看完,掌握程度在80%左右。看完后能够有一些基本概念,可以写一些基本程序。看完后离入门还早,更谈不上精通了。

浅析Java语言程序设计 篇6

Java是由Sun Microsystems公司于1995年5月推出的一种程序设计语言, 主要应用于互联网、个人PC、数据中心、游戏控制台、科学超级计算机。它刚开始的名字叫“Oak”, Java最初是为电视、控制烤面包机等家用电器的交互操作而设计的, 但当时并没有得到成功的推广、随着互联网的发展, Java经过数次的设计和改进后演变成当前受到极大欢迎的Java。

基于Java前身设计的特点, 其具备了可移植性和平台无关性, 成为了可以运行于不同的环境、不同的CPU上的程序语言。当前Java在全球得到了大量的推广和应用, 在计算机应用中发挥着强大的作用。

2 Java的特征

人们在传递信息时常利用自身的器官进行表达, 如声音、情绪、动作、姿态等。但这些声、图、像是转瞬即逝的, 在当前计算机发达的社会, 为保留这些信息并把信息进行传递, 程序语言便应运而生。

程序设计语言是表达软件的工具, 是面向机器的人工语言。Java作为一种高级的程序语言, 在实际应用中拥有面向对象, 简单性, 可移植性, 分布性, 动态性, 健壮性, 体系结构中立性, 安全性等多种优点。

2.1 简单性 (Simple)

Java语言是对C++语言的升华, 有不同与C++语言, 它在C++语言的基础上进行了很大的改进, 在保留了C++语言精华部分的同时也摒弃了C++语言中不常用、不易于理解、繁杂的部分。因为Java是在C++语言的基础上发展的所以懂得C++语言的人如果学校Java就会变的很简单, 同时, 学习Java语言也不需要拥有C++语言基础。

2.2 面向对象 (Object-oriented)

Java语言虽然是杂合语言, 但它是纯面向对象的编程语言。出了基本的数据类型外, 为了使程序语言更容易理解, Java程序语言的编写思想是纯粹面向对象的。

2.3 体系结构中立 (Architecture-neutral)

Java源程序经编译后的字码节与计算机体系结构及平台无关, 可在多种系统上运行。

2.4 可移植性 (Portable)

体系结构的中立性使Java程序可以在不同的平台上运行, 但Java语言的文本是统一的, 在面对不同的机器结构时, 整数32位、长整数64位保持不变。Java系统提供的类库是可以访问任意不同的平台的, Java语言的可移植性实现了软件的“一次开发, 处处运行”。

3 Java运行原理

程序语言是需要经过编译或者解释后才能被电脑执行的, Java程序语言需要经过编译和解释两个过程后才能够被电脑执行, Java源程序准备好, 第一步需要将其翻译成源代码;第二步由虚拟机将源代码转换成电脑能够识别的程序。

Java虚拟机 (Java Virtual Machine) 是想象中的机器, 它的实现需要通过在现实中的计算机上进行软件模拟, Java虚拟机有自己想象中的硬件, 如处理器、堆栈、寄存器等, 还具有相应的指令系统。虚拟机是机器与编译程序之间的连接者, 它具有抽象性, 在编译程序翻译成虚拟机能够识别的源代码之后, 解释器就能够将源代码转换成电脑能够执行的程序。由于编译程序与虚拟机拥有共同的接口, 所以编译程序主要的面向对象即是虚拟机, 只需要生成虚拟机能够理解的程序。在Java中称能够被虚拟机理解的代码为字节码, 虽然各个平台的解释器各不相同, 但是虚拟机都是相同的。Java源程序经过编译器编译后变成虚拟机能够理解的字节码, 虚拟机对字节码进行解释, 虚拟机将字节码发送给解释器, 解释器将其翻译成特定机器能够理解的机器码, 然后进行运行。

Java虚拟机由指令集、寄存器、栈、无用单元收集堆和方法区域五个部分组成, 它是Java语言的基础, Java语言相对于其他的程序语言而言比较容易学习, 使用的概念不多, 较简单。而且Java自身具有自动内存垃圾收集功能, 在运用Java时不需要对内存进行释放。

4 Java编译案例

4.1 Java开发工具

Java可采用的开发工具有多种, Sun公司开发的Java开发工具包JDK (Java Development Kit) 在Java开发中较为常用。

4.2 Java编译

在编写Java程序时, 首先需要按照Java语言的语法规则编写相应的源文件代码利用编译程序将Java源程序编译成可执行的程序, 生成由虚拟的机器代码组成的类文件。下面简要分析简单的Java程序。

使用编辑程序时, 输入上例中的源代码, 并以普通文本格式保存, 且保存时文件名必须为Hello Lucy.java。

然后用编译程序javac.exe编译上述源程序文件, 在Windows系统中输入javacHello Lucy.java

经编译后生成类文件Hello Lucy.class

然后使用解释程序java.exe进行解释运行, 命令为:java Hello Lucy

解释运行后, 屏幕将输出:

Hello, Lucy!

5 结语

Java的诞生是对传统传统计算机模式的挑战, 对计算机软件产业都产生了深远的影响, 随着信息时代的发展, Java在未来的时间里将会有更广阔的应用前景。

摘要:Java是随着软件开发技术的演变而出现的, 它是一种功能强大的新型的面向对象的程序设计语言, 可以解决很多传统上的程序设计难题。本文主要从java语言的历史、特点、编译等方面对Java程序设计进行了简要阐述。

关键词:Java语言,软件开发,程序设计,信息

参考文献

[1]冀振燕, 程虎.Java编译程序技术与Java性能[J].软件学报, 2000 (2) .

[2]闫伟, 谷建华.Java虚拟机即时编译器的一种实现原理[J].微处理机, 2007 (5) .

java程序员考核 篇7

2)从同一地点出发的相同型号的飞机,可是每架飞机装满油只能绕地球飞半周,飞机之间可以加油,加完油的飞机必须回到起点。问至少要多少架次,才能满足有一架绕地球一周。

智力部分(共20分)选择题(每个2分,共10个)

Java部分(共60分)

一、选择题(每个2分,前5个为单选,后5个为多选)

1.下列语句哪一个正确()

A. Java程序经编译后会产生machine code

B. Java程序经编译后会产生byte code

C. Java程序经编译后会产生DLL

D. 以上都不正确

2.执行如下程序代码

a=0;c=0;

do{

--c;

a=a-1;

}while(a>0);

后,C的值是()

A.0 B.1 C.-1 D.死循环

3.下列说法正确的有()

A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名

C. constructor在一个对象被new时执行

D. 一个class只能定义一个constructor

4.下列哪一种叙述是正确的()

A. abstract修饰符可修饰字段、方法和类

B. 抽象方法的body部分必须用一对大括号{ }包住

C. 声明抽象方法,大括号可有可无

D. 声明抽象方法不可写出大括号

5.下列哪种说法是正确的()

A. 实例方法可直接调用超类的实例方法

B. 实例方法可直接调用超类的类方法

C. 实例方法可直接调用其他类的实例方法

D. 实例方法可直接调用本类的类方法

6.下列说法错误的有()

A. 数组是一种对象

B. 数组属于一种原生类

C. int number=[]={31,23,33,43,35,63}

D. 数组的大小可以任意改变

7.不能用来修饰interface的有()

A.private B.public C.protected D.static

8.下列说法错误的有()

A. 在类方法中可用this来调用本类的类方法

B. 在类方法中调用本类的类方法时可直接调用

C. 在类方法中只能调用本类中的类方法

D. 在类方法中绝对不能调用实例方法

9.下列标识符不合法的有()

A.new B.$Usdollars C.1234 D.car.taxi

10.下列说法正确的有()

A. 环境变量可在编译source code时指定

B. 在编译程序时,所能指定的环境变量不包括class path

C. javac一次可同时编译数个Java源文件

D. javac.exe能指定编译结果要置于哪个目录(directory)

二、简答题(3个简述题,共20分)

1)请描述一下Thread和Runnable的区别和相同点。(6分)

2)请说明一下抽象类和接口的区别和相同点。(6分)

3)请叙述什么是多线程、多线程会经历哪些周期。(8分)

三、算法题(每题10分)

1)请用*号编写以下图形

*

**

**

**

**

**

**

**

*

(如图所示)

2)

Vector存储位置变换

------

姓名 性别 年龄 出生年月 籍贯

------

赵一 男211989.1汉

------

钱二 女221988.2满

------

张三 男231987.3回

------

李四 女241986.4藏

------

当前取得此表格信息为Vector类型

定义Vector 名为:vtr;

Vector集合内容:

[[赵一,男,21,1989.1,汉],[钱二,女,22,1988.2,满],[张三,男,23,1987.3,回],[李四,女,24,1986.4,藏]]

现在需要将次Vector集合转换为:

成为Java顶尖程序员 篇8

“学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:

1.能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料

2.对着书上的代码自己敲的时候方便

“看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了。

很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书(每本书的作者会加粗标红),其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。

首先推荐的不是一本书,而是一个博客,也是我们博客园另外一位博友java_my_life。

目前市面上讲解设计模式的书很多,虽然我前面讲了看书是最好的,但是对设计模式感兴趣的朋友们,我推荐的是这个博客。这位博友的设计模式讲得非常非常好,我认为90%的内容都是没有问题且很值得学习的,其讲解设计模式的大体路线是:

1、随便开篇点明该设计模式的定义

2、图文并茂讲解该设计模式中的结构

3、以详细的代码形式写一下该种设计模式的实现

4、补充内容

5、讲解该设计模式的优缺点

对于一个设计模式我们关注、学习的知识点,不就是上面这些吗?

不 过我要重点提醒一下网友们,同一种设计模式的写法有多种,并不是说只有按某种写法来写才是这种设计模式。比方说适配器模式,我们关注适配器模式一定要关注 的是什么是适配器模式不是怎么写适配器模式,不要认为某段代码不是按照适配器模式的写法写下来的它就不是适配器模式了,记住这一点,你在学习设计模式的时 候一定会对代码中用到的设计模式有更深入的理解。

《深入理解Java虚拟机:JVM高级特性与最佳实践》

如果你不满足于做一个只会写if„else„的Java程序员,而是希望更进一步,我随便举几个例子吧:

1、了解Java代码的底层运行机制

2、定位性能问题

3、对整个系统进行性能调优

4、解决各种奇奇怪怪的线上线下问题

5、更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机

那 么Java虚拟机是你必学的一门技术。《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明,这本书可以说是国内写得最好的有关Java虚 拟机的书籍,近半年,前前后后这本书我起码看了有5遍。国内写虚拟机的书除了这本,其实还有一些其他的,我也买过,不过粗略看下来,很多内容也是《深入理 解Java虚拟机:JVM高级特性与最佳实践》此书里面的。

另外值得一提的是,《深入理解Java虚拟机:JVM高级特性与最佳实践》这本 书,有电子版的,网上搜一下就能下载到了。不过建议有兴趣的朋友还是去买书看,电子版本下载到的一般是比较老的版本,相比最新修订版的《深入理解Java 虚拟机:JVM高级特性与最佳实践》,有很多作者新补充的知识点是没有的。

《HotSpot实战》

所有的Java虚拟机都是遵循着Java虚拟机规范来的,市面上的Java虚拟机几十款,《深入理解Java虚拟机:JVM高级特性与最佳实践》一书里面讲的虚拟机并不针对某种特定的虚拟机,而是从Java虚拟机规范的角度来讲解Java虚拟机。

我们平时使用的乃至商用的大多数Java虚拟机都是Sun公司的HotSpot,大家cmd进入命令行,使用”java-version”命令就可以看到了。如果希望在Java虚拟机规范的基础上更加深入地去理解虚拟机的一些细节是怎么实现的,就可以看一下《HotSpot实战》一书,作者是陈涛。不过由于HotSpot的源码都是C/C++写的,所以要求读者有非常好的C/C++基础,如果对这两门语言不是很熟悉的朋友,看这本书可能对你帮助不是很大。最后提一句,如果有兴趣的朋友,不妨先去网上下载一个openJDK,HotSpot的源码就在里面。

《Java并发编程实战》

这本书常常被列入Java程序员必读十大书籍排行榜前几位,不过个人不是很推荐这本书。

《Java并发编程实战》作者是Brian Goetz,怎么说呢,这本书前前后后我也看了两遍左右,个人感受是:

1、文字多代码少

2、讲解多实践少

我 觉得这可能就是老外写书的特点吧,因为Java是北美国家(加拿大、美国)开发和维护的,所以老外对Java方方面面的理论知识体系都掌握得是非常清楚和 透彻的。翻开这本书看,多线程什么用、什么是死锁、什么是竞争、什么是线程安全等等,方方面面的知识点都用大量的文字篇幅讲解,不免让人感觉十分枯燥,也 难让读者有实质性的进步。我这本书看了两遍也属于一目十行意思,有兴趣的地方就重点看一下。

无论如何,作为一本常常位于Jva程序员必读十大书籍排行榜前几名的书,还是一定要推荐给大家的。

《java多线程编程核心技术》

《Java多线程编程核心技术》作者高洪岩。想要学习多线程的朋友,这本书是我大力推荐的,我的个人博客里面二十多篇的多线程博文都是基于此书,并且在这本书的基础上进行提炼和总结而写出来的。

此书和《Java并发编程实战》 相反,这本书的特点是大篇幅的代码+小篇幅的精讲解,可能这和中国人写的书比较偏向实用主义的风格有关。本书关于线程安全、synchronized、Reentrant、Timer等等都用详细的代码进行了讲解,而且每个大知识点下的多个小知识点都会详细讲解到,非常有实践价值。

有兴趣的朋友们,我相信只要你们跟着这本书里面的代码敲、运行、思考,三步走,对于多线程的使用与理解一定会进几大步。

不 过这本书的缺点就是对于Java并发包下的一些类像CountDownLatch、Semphore、CyclicBarrier、Future、Callable等都没有讲到,重点的CAS和AQS也没有触及,重点类的实现原理也没有提。当然,这很深入了,在学习了这本书之后如果能再去对这些知识 进行一些学习、研究的话,你一定会慢慢成长为一个很厉害的多线程高手。

《Effective Java中文版》

这是唯一一本我没有买的书。初识这本书,是在我的博文Java代码优化(长期更新)里面,底下评论的时候有朋友提到了这本书,当时我说要去买,不过这两个月一直都没时间去逛书店,甚是遗憾,之后肯定会找时间去买这本书的。

《Effective Java中文版》的作者是Joshua Bloch,这个人就很厉害了,他是谷歌的首席架构师,属于超级技术大牛级别了吧,呵呵。由于没有看过这本书,所以我不好发表评论,但是从这本书的知名度 以及其作者的来头来看(多提一句,这本书也是Java之父James Gosling博士推崇的一本书),我相信这一定是一本值得一看的好书。

好 的代码是每个Java程序员都应该去追求的,不是说我今天写一段好代码相比写一段烂代码对性能会有多大的提升,更多的应该是提升了代码的可读性以及可以规 避许多潜在的、未知的问题,避免代码上线之后出问题而花时间去维护—-无论从时间成本、人力成本还是风险成本来说,这都是非常高的。

《深入分析Java Web技术内幕》

《深入分析Java Web技术内幕》,作者许令波,淘宝工程师。

这本书我用一个字概括就是:全。真的非常全,HTTP、DNS、CDN、静态化、Jetty、Tomcat、Servlet、Spring、MyBatis等等,什么都有,涉及知识面非常广,但又不像专门精讲某个知识点的书籍一样讲得非常深入,感觉这本书就是尽量去用短的篇幅讲清楚一些Java Web使用到的技术的内幕,让读者对这些知识点的技术内幕有一个理性的认识。

不过,尽管每个知识点的篇幅都不多,但是重点都基本讲到了,是一本让人真正有收获的书。如果想进一步了解这些技术的技术内幕,就要自己去买相关书籍或者自己上网查资料了,有种抛砖引玉,或者说师傅领进门、修行在个人的感觉。

《大型网站技术架构 核心原理与案例分析》

一个字评价这本书,屌;两个字评价这本书,很屌;三个字评价这本书,非常屌。呵呵,好了,再说下去可能别人以为我是水军了。

《大型网站技术架构 核心原理与案例分析》的作者是李智慧,原阿里巴巴技术专家。Java 的大多数应用都是用在Web上的,现在只要稍微大型一点的Web应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?一个大型网站是如何从 一个小型网站成长起来的?如何保证你的网站安全?分布式系统使用到了缓存,有哪些缓存?缓存的使用有哪些值得注意的事项?

关 于分布式的知识点,都在这本书里面有体现,只有你想不到,没有他写不到,而且写得非常易懂,基本属于看一两遍,再记一些笔记就知道是怎么一回事儿了。多看 几遍,对分布式的理解一定会加深不少。而且里面不仅仅是分布式的知识,还非常接地气地写了如何做一个好的架构师,其实我认为这不仅仅是写给想做架构师的读 者看的,就是给读者一些建议,如何更好地提出意见、如何更让别人关注你的声音、如何看到他人的优点,入木三分,让人获益匪浅。

《大型网站系统与Java中间件实践》

《大型网站系统与Java中间件实践》作者曾宪杰,是淘宝的技术总监,算起来应该在阿里有至少P8的级别了吧。

这本书的部分内容和上面一本李智慧的《大型网站技术架构 核心原理与案例分析》有所重合,像分布式系统的演化、CDN、CAP理论和BASE理论等等,这也更说明这些都是分布式系统或者说是一个大型网站重点关注的内容,当作一次再学习也不错。

本书要突出的重点是中间件三个字,中间件是分布式系统中一个非常重要的东西,其最重要的作用应该就是解耦,降低模块与模块之间的强依赖,不同的模块之间的依赖度降低,便可以各自独立地开发自己的功能,这也可以说是软件工程发展的目标和驱动力。

因此,本书有一部分的内容就是基于中间件,详细讲解了中间件与JMS的各种知识,适合对分布式系统比较熟悉并且想要往中间件方面有一定研究的读者。

《从Paxos到ZooKeeper 分布式一致性原理与实践》

《从Paxos到ZooKeeper 分布式一致性原理与实践》,作者倪超,阿里巴巴工程师。

这本书是我最近在研读的一本书,和上面的《大型网站系统与Java中间件实践》一样,属于分布式组件的范畴,属于有些深入的内容,当然也是我自己的个人兴趣。当然,如果有志向做一个出色的大型网站架构师、公司的技术总监之类,这些知识当然是必须掌握的。

本书从分布式系统基本理论开始讲起,讲到Paxos算法,最后慢慢引入到Zookeeper,循序渐进。当然,更多的我目前还不方便发表什么看法,因为这本书的第二张Paxos算法我都还没有弄懂(Paxos算法确实有些难以理解和不太易懂),接下来的章节还没有看下去。如果网友们所在的公司在使用Zookeeper,并且你又对Zookeeper感兴趣想要研究一下它的原理的,这本书将是不二之选。

《MySQL5.6从零开始学》

《MySQL5.6从零开始学》,作者刘增杰和李坤。

作为一名Java程序员,我认为我们千万不要觉得数据库是DBA的事情,数据库对一个Java程序员来说也是必须掌握的一门知识,丰富的数据库性能优化经验是一个顶尖程序员必备技能。

目前主流的数据库有Oracle和MySQL,当然推荐大家的是MySQL,主要原因我认为有两点:

1、MySQL相比Oracle更轻量级、更小、安装和卸载更方便,SQL其实都是差不多的,如果想学数据库,学MySQL就可以了,在家里面可以自己方便地研究,如果你的公司使用Oracle,只要再用对比学习法,关注一下Oracle和MySQL的差别即可

2、随着2009年阿里巴巴去IOE的运动的进行,目前国内的很多互联网公司都会选择MySQL作为它们使用的数据库,因为MySQL免费,所以既省钱又不需要出了问题就依赖甲骨文公司

MySQL学习我推荐的是这本我自己学习看的《MySQL5.6从零开始学》,我是觉得挺好的这本书,书里面的知识点很细致、很全面,读者选择书籍的标准大多不就是这两点吗?

《Spring源码深度解析》

《Spring源码深度解析》,作者郝佳。

Spring 这个框架做得太好了,功能太强大了,以至于很多开发者都只知Spring,不知什么是工厂、什么是单例、什么是代理(我面试别人的真实体会)。这种功能强 大的框架内部一定是很复杂的实现,这就导致一旦你的程序使用Spring,出了问题,可能是Error、可能是Exception、可能是程序运行结果不 是你的预期的,出现诸如此类问题的时候,将会让你感到困惑,除了上网查资料或者问别人似乎没有更好的解决办法。

研读Spring的源代码不失为一种很好的学习方法,我个人认为这有很多好处:

1、理解框架内部的实现之后,可以主动去解决问题,而不需要依赖别人

2、Spring框架内部实现用到了很多设计模式,很好的代码设计思路,这将会对你写代码、对你理解设计模式有很大的提高

3、研究Spring框架将会大大增强你读代码的能力,我相信只要你能研究清楚Spring内部是如何实现的,其他任何一个框架的源代码都难不倒你

总而言之,我认为读代码的能力是一个普通的程序员和一个好的程序员之间最大的差别之一,前者只会把别人写好的东西拿来用,后者不仅能用好,还清楚知道别人写好的东西底层是如何实现的,在出现问题的时候可以轻松解决。

Spring源代码,个人推荐《Spring源码深度解析》一书,真要研究透并且写清楚Spring源代码,恐怕三四本书都不够,作者在近400页的篇幅中尽量去讲解Spring源代码是如何实现的,殊为不易,尽管无法讲得完全,但是相信作者的讲解配合上读者自己的研究,一定可以对Spring的实现有更深度的理解。

后记

以 上就是我推荐给Java开发者们的一些值得一看的好书。但是这些书里面并没有Java基础、Java教程之类的书,不是我不推荐,而是离我自己学习Java基础技术也过去好几年了,我学习的时候看的什么也忘了,所以我不能不负责任地推荐一些我自己都没有看过的书给大家。对于Java基础知识的学习,我提两点建议吧:

1、多写多敲代码,好的代码与扎实的基础知识一定是实践出来的

2、可以去尚学堂下载一下马士兵的视频来学习一下Java基础,还挺不错的,如果尚学堂官网上下载不了可以底下回复,我的电脑里有

最后,每一位读到这里的网友,感谢你们能耐心地看完。希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步。

【编辑推荐】

1.我们来谈谈面向指针编程的那些事

2.普通Java程序员学习使用的6个JDK内建工具 3.如何才能成为一个高级的C++程序员 4.2015年我最喜爱的一些前端工具

java程序员实习过程 篇9

随着Java语言应用的不断推广, Java程序设计课程已经成为高校计算机专业的核心专业课。在Java程序设计课程中引入双语教学对于学生充分理解Java语言的精髓, 紧跟Java发展前沿信息有着重要的作用。本文探讨在新升本科院校中针对Java程序设计课程中引入双语教学的策略。

1 Java程序设计课程引入双语教学的必要性

计算机的编程语言和操作指令多数都是用英语来表述的, 计算机的原版软件多数是英文的, 其发展的最新版本、研究成果等资料也都是使用英文来描述的[1]。Java语言也不例外。Java语言最初就是由sun公司开发的, 其编程语言是英语的, Java的开发环境多数也是全英文的, Java的帮助文档API原文也是英文的。将双语教学引入Java程序设计课程, 特别是针对新升本科院校的学生教师而言, 更有益处。对于学生而言, 其专业英语水平会随着双语教学的开展得到一定程度的提升;对于任课教师而言, 其专业技术知识也会得到提升。

2 开展双语教学前的准备

2.1 任课教师的准备

任课教师是一门课程是否能够顺利开展的决定因素, 对于承担双语教学的教师, 不但要求其具有深厚的知识储备, 掌握最新技术动态, 还要求其具有良好的英语基础, 流畅的英语口语表述能力。在备课阶段, 不同于常规课程的准备, 教师不但要准备每次课程的知识进度, 还要预先组织好其相应的英语表述。在课堂教学进行中, 多数情况下教师用英文表述, 对于一些重点难点知识, 使用中文注释, 帮助学生更好地理解掌握。学校应该重视双语授课教师的培养培训, 借鉴合作办学的模式, 选派教师出国进修学习, 以此来提高教师的学术水平和语言能力[2]。

2.2 学生的准备

学生作为授课对象, 对完成双语教学课程也需要提前做好一定的准备。一方面是语言上的准备, 要求学生具备一定的英语听读能力。双语教学一般会选取英文原版教材来授课, 这就要求学生具备一定的英语阅读能力, 教师在课堂上多数情况下都会用英语来授课, 这就要求学生的听力水平也要达标[3]。另外一方面就是知识上的储备, Java作为面向对象的高级语言, 要求学习者应该具备基本的计算机语言学习基础。在学习Java语言之前, 学生一般已经学习了C语言, 对于计算机语言类课程的学习有一定的体会, 所以这方面的准备相对容易一些。

3 Java程序设计课程双语教学实施过程

3.1 教材的选取

对于选择双语教学的课程来说, 在教材选取方面一般都会选择英文原版的经典教材。Java程序设计课程也不例外。针对新升本科院校而言, 学生的知识基础和英语基础都相对薄弱, 所以在教材选择上, 还是尽量选择相对浅显易懂的经典教材[4]。在横向比较了几家本科院校授课教材的基础上, 选择了由英国David J. Barnes等著的《Object First With Java》一书, 同时配合授课要求, 以及方便学生课后学习, 选择了清华大学出版社的耿祥义等编著的《Java 2实用教程 (第4版) 》作为该课程的参考书。

3.2 教学过程的开展

通过调查研究, 我们发现当今高校计算机专业课程的双语教学一般采用如下3中教学模式:一、课程采用英文原版教材, 授课过程教师采用英语课件, 讲授知识采用汉语教学, 考核时也是汉语考试;二、课程采用英文原版教材, 授课过程教师用英语课件, 知识讲授采用中英文双语教学, 特别针对重点难点知识, 用中文讲授, 考核时采用英语考试;三、课程采用英文原版教材, 授课过程教师采用英语课件, 知识讲授全部英语进行, 考核时也采用英语考试[5]。

针对新升本科院校学生知识基础和英语基础都相对薄弱的特点, 我们选择采用第2种教学模式。教师在授课过程中尽量多采用英语教学, 但是对于重点难点知识采用中文进行注释讲解, 这样可以帮助学生更好地理解知识点。例如, 针对面向对象语言最重要的概念就是“对象”, 教师在讲解“对象”的定义时, 可以先用英文解释“Object”的定义, 学生可能不会理解的很透彻, 这时教师可以转换为中文, “对象”就是类的实例化表现, 还可以举例说明, 如果存在“机动车”类, 那么每一辆具体的车都是“机动车”类的一个对象。这样学生理解起来会更简单。

Java程序设计课程是理论和实验相结合的课程, 在课时分配上一般是每周一次理论课, 一次实验课。我们在采用双语教学时也不止针对理论课程的讲解, 在实验课堂上也同样采用双语教学。实验中用到的编程平台如Eclipse也要用英文版的, 让学生在全英文环境下操作练习。教师先用英语讲述实验课程要考查的知识点, 之后布置实验案例要求, 之后学生动手操作, 教师随堂指导检查。每次实验课结束之后, 形成实验报告, 记录学生的实验完成情况, 作为期末考核的一部分。

3.3 课程考核

为了突出Java程序设计课程重视学生实践能力的特点, 课程考核形式可以采用小组答辩的形式进行, 当然整个答辩过程也要求是英语表述的。让学生5-7人组合为一个小组, 共同完成一个实验项目的操作。小组成员分工合作, 从项目说明书到编码再到测试都由小组成员分工完成。最后以小组形式参加答辩。教师根据项目完成情况, 小组成员个人完成比例, 答辩情况等要素, 综合打分给出每个小组成员的得分情况。

课程的最终分数应该由三部分组成, 其中20%为理论课表现情况, 30%为实验报告完成情况, 50%为最终小组答辩情况, 这样可以全方位掌控学生的学习情况。

4 总结

在新升本科院校的计算机专业中, 选择Java程序设计课程开展双语教学是一种尝试, 无论对于学生还是任课教师都是一个新的挑战。学生需要平时注重自己知识的积累和英语水平的提升, 教师需要花费更多的时间进行课前准备。但是从长远来看, 学生的专业能力可以得到提高, 教师的授课水平也会更上一个台阶, 也为今后其他专业课程采用双语教学做了示范。

摘要:Java作为计算机专业的核心专业课程, 引入双语教学是发展的必然趋势。本文论述了开展双语教学的必要性, 以及开展双语教学需要做的准备。在教学开展过程中, 针对教材选择, 教学实施和考核方式进行了论述。

关键词:Java程序设计,双语教学,教学模式

参考文献

[1]罗依平.论高校双语教学面临的困境与应对措施[J].高教论坛, 2008 (3) :48-50.

[2]皮德常.计算机专业开展“双语教学”的实践与探讨[J].计算机教育, 2005 (6) :25-27.

[3]张铭.关于计算机专业“双语教学”的调查报告[J].计算机教育, 2004 (6) :4-7.

[4]蒋巍.“Java程序设计”课程双语教学的探索与实践[J].常州工学院学报, 2010 (5) :87-93.

Java程序员面试题 篇10

Java程序员面试题

1.下列程序段执行后,t5的结果是_____.int t1=5,t2=6,t3=7,t4,t5;

t4 = t1

t5 = t4

2.String s = new String(“xyz”);创建了_____个String Object.3.类型转换

 int x=4;

System.out.println(“value is ” +((x>4)?99.9:9));输出是______;

4.Boolean类型

boolean a = false;

if(a = true){

System.out.println(true);

} else {

System.out.println(false);结果是______;

5.int i = 5;

Integer iInteger = new Integer(i);

Integer jInteger = new Integer(i);

System.out.println(i == iInteger);

System.out.println(iInteger == jInteger);输出结果是______;

6.TreeSet map = new TreeSet();

map.add(“one”);

map.add(“two”);

map.add(“three”);

map.add(“four”);

map.add(“one”);

Iterator it = map.iterator();

while(it.hasNext()){

System.out.print(it.next()+ “ ”);

}

输出结果是 ________________________________________;

class Polish {

public static void main(String[] args){

int x = 4;

StringBuffer sb = new StringBuffer(“..fedcba”);

sb.delete(3,6);

sb.insert(3, “az”);

if(sb.length()> 6)x = sb.indexOf(“b”);

sb.delete((x-3),(x-2));

System.out.println(sb);

北京千渡网讯科技有限公司博宝艺术网http://

}

}

结果是: ____________

8.class Emu {

static String s = “-”;

public static void main(String[] args){

try {

throw new Exception();

} catch(Exception e){

try {

try { throw new Exception();

} catch(Exception ex){ s += “ic ”;}

throw new Exception();

} catch(Exception x){ s += “mc ”;}

finally { s += “mf ”;}

} finally { s += “of ”;}

System.out.println(s);结果是:______________________

9..抽象类和接口的区别

10.写一个方法,实现字符串的反转,如:输入abc,输出cba

11.short s1 =1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错?

12.下列哪些集合能够改变其容量大小,同时能够根据索引访问其元素,并且访问方法是非线形安全的?

A.java.util.HashSet

B.java.util.LinkedHashSet

C.java.util.List

D.java.util.ArrayList

E.java.util.Vector

F.java.util.PriorityQueue

13.下列关于泛型的说法,错误的是()

A、泛型是一种参数化类型

B、可以取代继承机制。

C、避免了运行时进行类型转换可能的潜在性错误

D、增强了程序的灵活性和安全性

14.下面关于System.out的说法哪些是正确?

A.System.out是1个PrintStream。

B.System.out是1个OutputStream。

C.System.out是1个FilterOutputStream。

D.System.out不是1个PrintStream。

E.System.out在异常时,将抛出IOException

上一篇:个人简历·日语版下一篇:2020年清华大学自主招生自荐信