XXXXXX
毕业实习报告
姓 名:
专 业:
班级学号:
指导教师:
实习地点:
XXX学院学生实习鉴定表
系部: 专业: 班级学号:
注:系部指导教师评语应根据平时考核情况、实习报告及实习单位的评语与成绩综合撰写。
目 录
一前言…………………………………………………………………….
1.1公司简介………………………………………………………….
1.2公司业务……………………………………………………………
二实习目标和意义……………………………………………………
2.1实习目标…………………………………………………………….
2.2实习意义…………………………………………………………….
三实习内容……………………………………………………………..
3.1Linux系统基本指令…………………………………………….
3.2Java编程原则和语法………………………………………….
3.2.1数组的操作……………………………………………………………
3.2.2堆栈算法……………………………………………………………
3.3JDK的环境配置和原理……………………………………….
3.4Java基本知识点…………………………………………………
四搜索技术资料内容………………………………………………..
4.1抛出的异常处理………………………………………………
4.2Java中数据的内存管理…………………………………….
五实习中遇到的问题……………………………………………….
六实习收获……………………………………………………………
七实习建议…………………………………………………………..
八实习总结…………………………………………………………….
一 .实习单位简介……………………………………
1.1公司简介
名称:上海杰普软件科技有限公司(Briup Technology, Inc. )
公司简介:上海杰普软件科技有限公司(Briup Technology, Inc. )是一家专注于高端IT培训、软件外包、研发咨询的高新技术企业。公司核心成员由海外留学人员和来自Sybase、亚信、Sun等国际大公司的资深技术人员组成,在电信、金融、电子商务等方面有着丰富的专业开发、管理和培训经验。
杰普软件多年以来,专注于精心培养专业的IT人才,得到政府、企事业单位、合作院校的一致好评。20##年受邀入驻上海龙软基地(上海首家专业软件外包园区),成为龙软软件园区产业链上的重要一环,满足园区及合作企业的人才需求。
随着杰普的发展,公司规模的日益扩大,20##年杰普受昆山政府及昆山浦东软件园的邀请,在国家级软件产业基地、出口基地——昆山浦东软件园设立杰普昆山实训基地。昆山基地与上海实训基地实行统一的师资、统一的教学管理、统一的就业服务。至此,杰普将培训及实训基地向上海、长三角地区及全国辐射,将向学生提供更优质的服务。
1.2公司业务
IT培训:A)DPS人才培训项目:JAVA、嵌入式物联网、LAMP、Android手机开发等。
B)企业培训项目:企业客户定制开发课程/软件开发/项目管理
软件外包:提供软件开发服务和人力资源外包服务。
承接项目:美国某考试中心系统开发
电信综合运营平台
银行信托资产管理及评估系统……
研发咨询:产品研发,提供专业的管理研发咨询服务
主要产品:智能监控产品、在线考试系统等
公司文化:诚信、专业、 和谐、创新
公司资质:
公司成立于20##年,是上海市人事局许可的高级人才培训中心,同时也是上海市紧缺人才办公室培训基地。
公司荣誉:
上海紧缺人才办公室指定的高端IT培训基地
20##年度获得“促进上海信息化建设奖”
连续5年最受网友推崇IT培训品牌
百多家高校指定的专业实习孵化基地
首家与“211工程”大学联合培养软件工程硕士的培训机构
首家提出“优质就业”理念的IT培训机构
国内首家面向大学生提供免费JAVA集训的IT公司
二 实习目标和意义…………………………
2.1实习目标
1掌握嵌入式Linux系统的基本操作和指令;
2学习简单的java程序编写;
3 接触实战项目设计全过程
2.2实习意义
实习毕业设计和毕业实习是教学计划中最后一个综合性实践教学环节,是学生在教师的指导下,独立从事艺术设计工作的初步尝试,其基本目的是培养学生综合运用所学的基础理论、专业知识、基本技能应对和处理问题的能力。是学生对三年所学知识和技能进行系统化、综合化运用、总结和深化的过程。通过考察、立题、收集素材、设计方案、工艺制作等过程,检查学生的思维能力、创造能力、实践能力和掌握技艺的深度。通过毕业答辩、毕业设计和实习工作,来考核教学质量,对深化教学改革,提高人才培养工作水平具有重要的意义。
三 毕业实习内容……………………………
3.1 Linux系统操作………………
(一)远程登录服务器
登录:telnet IPaddress 退出:exit 或者是 logout
修改密码:password 旧密码 新密码
(二)基本命令
clear:将光标移动到第一行 pwd:显示当前路径
man:查看命令怎么用 man 命令名
cd:切换路径 .. 表示上一级目录
./当前路径
~切换任意目录
ls:查看某个目录下的内容
ls -l -a 或-la或-al以长列表形式显示当前目录下所有文件
touch:创建文件
touch 文件名 文件不存在新建
cp -r 源目录 目的目录
mv:mv 文件名 目录名
mv 文件名1 文件名2 文件改名
下 j a:在光标之后插入
左 h o:在光标下一行插入一行
右 l I:在行头插入 A:在行尾插入 O:在光标上一行插入一行
删除:x:删除一个字符
dw:删除一个词3dw:删除3个词dd:删除一行 ndd:删除3行
替换:R:替换一个字母 cw:替换一个单词
cc:替换一行 c:替换光标位置到行尾
拷贝:yw:拷贝词 yy:拷贝一行 eg:1,2co3 拷贝 :4,5m6 移动
粘贴:p:在光标之后粘贴 ~: 改变大小写 J:把当前行和下一行连起来
U: 废除刚才的编辑操作 :set nu 显示行代码 :set nomu 取消行号
3.2.1 数组的操作
1.数组的概念:一组具有(相同的数据类型)的数据的(有序的)集合。
*一系列数据类型相同,地址号连续的内存节点。
2.数组和链表:
数组的检索效率高,但是增加和删除操作可能设计到大量的数据拷贝,效率相对链表较低,链表和数组相反。
3.数组的创建和初始化。
(1)int array []=new int[3];
int [] array=new int[3];
array:数组变量,数组的引用,存放数组对象的地址(堆区)。
Person tom []=new Person[3];
(2)
int array []={1,2,3,4,5};
int array []=new int []{1,2,3,4,5};
for(int i=0;i<5;i++)
array[i]=i+1;
(3)int array [][]=new int[2][3];
int [][] array=new int [2][3];
4.锯齿型数组:
int array [][]=new int[2][];
array[0]=new int[2];
array[1]=new int[5]; //作业:用锯齿型数组做杨辉三角
5.队列:
1/3:分析
class Queue
{
取号 add();
叫号 remove();
当前排队的人数 size();
当前的排队的细节 print();
}
1/3:coding
1/3:测试
System.arraycopy((1),(2),(3),(4),(5));
(1)源数组的引用
(2)源数组开始拷贝的起始位置
(3)目的数组的引用
(4)目的数组开始存放的起始位置
(5)拷贝的长度。
private int value=0:最后一个元素的值
第一次取号 value+1
第N次取号 value+1
总是从队尾增加元素
总是从队首删除元素
array[i]=array[i+1];
3.2.2java算法
语言=数据结构+算法+内存管理+os原理;
研究数据的存储方式
1 队列: first in first out
2 链表: 内存节点通过地址建立联系
3 堆栈: first in last out
4 二叉树: 分层管理模型
效率: 速度快,内存占有率低,电池
intel:
两个整数:a>0,b>0,
不许使用 if,loop(for,do-while,while,if goto),?:
只允许一条输出语句:
pirntf("%d"......);
cout...
System.out.println(...);
总能找出a,b的最大值
(|a+b|+|a-b|) /2
一:java的特性:
1.c,c++,java 的比较?
程序构造:
(1)C:面向过程,按照步骤逐一执行。由函数构成。
(2)c++:不完全面向对象。c++为了兼容c,允许程序中存在孤立的方法。c++程序由函数和类构成。
(3)java:完全面向对象,由类构成。
内存管理方式:
(1)c,c++:手动内存管理方式。内存的开辟及释放需要程序员手动控制。
(2)java:自动的内存管理方式。内存由垃圾收集器自动回收,程序员无需管理内存释放问题。
继承:
(1)c++:允许多继承,一个类可以同时继承多个父类
3.3JDK配置环境
JDK环境变量:为os配置额外的信息。
*任何路径下都可以直接使用
copy.exe a b*
1.path:bin文件夹所在的路径。
2.CLASSPATH:java被编译之后所获得的字节码文件所存放的位置."."
3.JAVA _HOME:jdk的安装路径
实现跨平台的特性。更换操作系统不需要改变源码。
三:包:package:文件夹
(1)为.class文件进行归类
(2)避免命名冲突
(3)定义包之后,类名将发生改变:
"包名.类名"-->类的权限定名。类名和文件名一致
public:访问修饰符
类名:
由有含义(与类的功能相关)的单词构成,
每个单词的首写字母大写。
public static void main(String args[]):
主函数:程序的入口
javac -d . ch01/HelloWorld.java(编译)
java com.ch01.HelloWorld(运行)
四:垃圾收集
1.概念
“垃圾”:无用内存,废料
(1)被操作系统合法分配
(2)被应用程序合法占有
(3)由于某些原因导致应用程序通过任何路径都无法访问的内存节点
java中,无用对象
2.java的垃圾回收(内存回收)
垃圾收集器,垃圾收集”线程“,垃圾收集任务。
线程:一个应用程序可以被合理划分为多个同时进行,资源共享,不可再分的小任务(线程)。
原子性:不可再分的任务
同时运行
组合成一个完整的大任务(进程,应用程序)
优点:
java 的垃圾收集器采用自动的垃圾回收方式,程序员无需进行控制。
启动条件:系统闲置,内存紧张。
System.gc();
仅仅起到“通知”垃圾回收器进行回收的作用,是否启动参考“启动条件”
缺点:垃圾收集器的优先级几乎是所有线程中最低的一个。何时启动,收集到何种程度停止程序员无法控制。
3.垃圾回收常用算法:
(1)标记-清扫法
垃圾搜集任务对应用程序所占用的内存节点作“周期性”的扫描,
对”垃圾“暂作“标记”,等到启动垃圾回收任务的时候,对所有做标记的节点
作“一次性”的回收。
特点:速度快,但无内存整理过程。
(2)内存搬移法,内存复制法,内存拷贝法:
from区到to区的复制及整理过程。
特点:在搜集的过程中进行内存整理,但是过多数据的copy会影响效率,速度相对较慢。
C中引用:对象或变量的别名。
java中引用:对象变
五:内存的划分
1.栈区:first in last out:
一般作为临时变量(局部变量:在函数内部或”{}“内部所定义的变量。)的存储区域,用于临时保存数据。
系统一般不会对该区域进行初始化。*局部变量需先赋值再使用*
变量:在程序的运行过程中,值可以改变的量
值可以不断重写的内存节点。
常量:在程序的运行过程中,值不可以改变的量
值不可以被重写的内存节点。
指针:唯一确定内存节点的逻辑值(地址)。
指针变量:专门用于存放地址(指针)的变量。
2.堆区(自由存储区):通常,c,c++的动态开辟内存所占用的内存节点在该区域分配。
java对象在该区域分配。系统通常有“选择的”对该区域的内存做初始化。
动态开辟内存:根据应用程序的实际需求动态的确定内存的大小
3.代码区:函数或方法被编译之后的指令段所存放的区域。
函数指针:函数在代码区所对应的内存地址。(C:函数名表示函数指针)
指针函数:返回值为指针类型的函数。
一:注注释:
1.单行注释://注释内容
2.多行注释:/*注释内容*/
3.文档注释:生成javadoc命令生成sun风格的帮助文档。/**内容*/
javadoc -d doc ch02/HelloWorld.java
/*
*所述部门
*开发者
*功能描述
*日期
*/
单行注释多行注释一般不用在函数方法内部
二.
1.标识符:程序元素的名字。如:类名,方法名,变量名等。
2.关键字:事先启用的一类特殊的标识符。for,if。(小写)
true, false, null为保留字,不是关键字
三.命名规范:
1.类名,接口名:由具有含义的单词构成,每个单词的首写字母大写
2.变量名,方法名:由具有含义的单词构成,第一个单词小写,其他每个单词的首写字母小写
3.常量名:所有字母均大写PersonTest.java
四
对象:客观世界中的实体。
类:具有相同的属性及功能所的对象的抽象。
五:集合:管理一组对象
通用的系统操作:CRUD:增删改查
java的集合框架:
java.util
1.Collection接口:定义管理一组对象的基本规范。
|_List接口:定义管理可重复的对象的基本规范。
ArrayList:基于 数组
LinkedList:基于链表
|_Set接口:定义管理不可重复的对象的基本规范。
HashSet:检索效率很高
|_SortedSet接口:在Set的基础之上进行排序。
TreeSet:
排序规则:
1.默认的排序规则
interface comparable
{
public int compareTo(Object o);
}
2.覆盖排序规则
当TreeSet所管理的对象所属的类不能改动,或者没有提供排序规则。
可以使用该种方式对排序规则进行自定义
2.Map接口:通过(Key-value:键值对)的方式对对象进行管理
HashMap:
|_SortedMap接口:在Map的基础之上进行排序
TreeMap:
(1)put(Object key,Object value):增加键值对(元素)
(2)Object get(Object key):通过特定的键获取对应的值
(3)Set keySet() :获取所有键所组成的Set类型的集合对象
(4)entrySet():获取所有的键值对所组成的Set类型的集合对象
存放对象:
hashCode()%“当前”散列表的的长度=”当前“位置
当前散列表长度=10
“直接”添加元素 equals
位置冲突,比较equals true->拒绝添加元素
false—>对散列表重排
数据库
管理数据
class Class
{
Field:描述属性的类
Constructor:描述构造器
Method:描述方法
}
获取Class类型的对象
(1)Class c=对象的引用,getClass();
(2)Class c=Class.forName(类名String):需要异常处理
(3)Class c=类名.class;
任何类的所有的方法的声明
java com.ch01.Test
(1)更改私有属性的值
(2)调用任何对象的任何方法
(3)不通过new来创建对象的实现
四 搜索的技术资料内容………………………………
4.1.异常:意外情况
java中,异常本身是一个对象。在系统发生异常的时候,异常对象将自动抛出,
寻找异常处理的代码。
class Exception
{
发生问题的主题(Object)
对问题本身的有效描述(String)
}
二.异常处理框架
try
{
//怀疑可能出现问题的代码
}
子类类型的catch在前
catch(ExceptionType2 e)
{
//针对ExceptionType2类型的异常处理
}
catch(ExceptionType1 e)
{
三.原理:当发生异常的时候,系统将自动抛出异常对象寻找异常处理代码,
如果没有找到,将上抛到方法的调用处,依此类推,直到抛给虚拟机程序终止。
建议:不要有过分复杂的方法嵌套调用
不要使用调用次数可能过多的递归算法
嵌套调用中,如果所有方法都没有异常处理,只main函数有,则所有的栈区都被锁定
四.
1.throws:用在方法的定义中,用于声明调用方法可能抛出异常类型
一个方法声明抛出异常,在调用该方法时需要做异常处理。
2.throw:手动抛出异常对象
throw 异常对象
五:构造器和异常
六.异常和系统效率
异常处理会影响系统效率,建议只在适当的时候做必要处理
ObjectTest.ja
七.断言assert
开发过程中,在需要的时候提供判断功能
断言功能默认关闭
打开断言功能:
java -ea com.ch07.ExceptionTest
断言在1.4版本之后增加,如果对1.4版本之前的系统进行重写,
需要确认assert是否被用作标识符。
4.2Java中内存管理
1.栈区:first in last out:
一般作为临时变量(局部变量:在函数内部或”{}“内部所定义的变量。)的存储区域,用于临时保存数据。
系统一般不会对该区域进行初始化。*局部变量需先赋值再使用*
变量:在程序的运行过程中,值可以改变的量
值可以不断重写的内存节点。
常量:在程序的运行过程中,值不可以改变的量
值不可以被重写的内存节点。
指针:唯一确定内存节点的逻辑值(地址)。
指针变量:专门用于存放地址(指针)的变量。
2.堆区(自由存储区):通常,c,c++的动态开辟内存所占用的内存节点在该区域分配。
java对象在该区域分配。系统通常有“选择的”对该区域的内存做初始化。
动态开辟内存:根据应用程序的实际需求动态的确定内存的大小
3.代码区:函数或方法被编译之后的指令段所存放的区域。
函数指针:函数在代码区所对应的内存地址。(C:函数名表示函数指针)
指针函数:返回值为指针类型的函数。
五 实习中遇到的问题…………………………………
问题一 不习惯全命令操作
刚开始用Linux系统的时候,不习惯用指令完成所有的操作,后来逐渐熟悉并习惯了命令操作。
问题二 对Java语言语法和C混淆
复习所学过的C语言,并购买Java核心编程书籍认真阅读领悟,逐渐对Java有了一定的掌握
问题三 打代码的速度较慢
以前不注重打字速度,直到在这里实习的时候发现我的速度跟不上老师,也影响了我听课的效率。为此,我每天练习打字,三个星期过去了,打字速度有了很大的提高,现在基本可以跟得上。
问题四 对Java编程掌握不够
我经过三个星期的学习,逐渐熟悉Java的开发步骤和核心思想,现在可以独立完成较小的项目。
六 实习收获…………………………………
在杰普实习的的时间中,我复习了曾经学过的编程语言C语言,让我对C在认识的基础上,触类旁通学习JAVA-SE。在此次的实习中我们小组合理分配时间,恰当的调用人手,时刻争当速度最快,界面最整洁的小组,我在其中主要完成了设计文档和测试设计文档的编写,还做了其中几个页面,同时协助同事进行开发,现在能熟练进行开发环境中各个控件的使用。
通过这次实习,我对android手机软件开发基础知识有了了解,对JDK应用有了一定的了解,以及虚拟机的工作原理和他们之间的通信过程有了比较清晰的了解,可以独立编写一定的功能模块。
七 实习建议……………………………………
感谢学校给我们广大学子提供这个机会到昆山实习,让我们可以接触到软件开发行业,以及学会了安卓开发的前景,让我对以后工作有了一定的设想和规划,我建议学校多和校外公司进行合作,为我们提供更多的机会去社会上锻炼学习。
八 实习总结………………………………
短暂又难忘的实习旅程其间的感受也像五味瓶——酸甜苦辣咸一应俱全,在每日紧张充实的工作环境中不觉间已经走过了3个星期的实习期,回首这3个星期的实习期,内心充满着激动,也让我有着无限的感慨。
就业环境的不容乐观,竞争形式的日趋激烈,面对忧虑和压力,于是就有了像我一样的在校大学生选择了社会实践工作。实践虽然很短,但是在这段时间里,我们却可以体会一下工作的辛苦,锻炼一下意志品质,同时积累一些社会经验和工作经验。这些经验是一个大学生所拥有的“无形资产”,真正到了关键时刻,它们的作用就会显现出来。
大学生除了学习书本知识,还需要参加社会实践。因为很多的大学生都清醒得知道 “两耳不闻窗外事,一心只读圣贤书”的人不是现代社会需要的人才。大学生要在社会实践中培养独立思考、独立工作和独立解决问题能力。通过参加一些实践性活动巩固所学的理论,增长一些书本上学不到的知识和技能。因为知识要转化成真正的能力要依靠实践的经验和锻炼。面对日益严峻的就业形势和日新月异的社会,我觉得大学生应该转变观念,不要简单地把暑期打工作为挣钱或者是积累社会经验的手段,更重要的是借机培养自己的创业和社会实践能力。现在的招聘单位越来越看重大学生的实践和动手能力以及与他人的交际能力。作为一名大学生,只要是自己所能承受的,就应该把握所有的机会,正确衡量自己,充分发挥所长,以便进入社会后可以尽快走上轨道。
这次的认识时间是一个开始,也是一个起点,我相信这个起点将会促使我逐步走向社会,慢慢走向成熟。
作为一名在校学生,能在大一期间参加社会实习,是一次难得的机遇。使我们在掌握基本理论知识后,迅速的加以实践运用。巩固学习成果。同时,能对所学知识有了更进一步的深化理解,便于更好的学习。这是学业上的优势。更为可贵的是,我们在实习中成长的更加成熟,无论是思想还是心理上。由于我们一贯生活在校园中,时刻有老师、家长和同学关爱,生活可以说用无忧无虑来形容,很少接触社会,也很少吃苦。在这次公司实习中,困难时刻严峻的考验着我们。通过这次实习,我比较全面地了解了公司的组织架构和经营业务,接触了形形色色的社会人,同时还结识了很多很好的同事和朋友,他们让我更深刻地了解了社会,他们拓宽了我的视野,也教会了我如何去适应社会融,谢谢学校为我们提供了这个平台。
1 前言(或绪论、引言)
一级标题:小三宋体加粗,行距:单倍行距,段前段后均为0.5;居中;新的一级标题换页。
二级标题:四号宋体加粗,行距:单倍行距,段前段后均为0.5;左对齐。
三级标题:小四号宋体加粗,行距:单倍行距,段前段后均为0.5;左对齐。
正文:小四号宋体,行距:单倍行距。
图号与表号用五号宋体。
表1.1 单位简介
图1.1 焊缝原图
图1.1单位简介
每一章开始从新的一页开始写,即一级标题要换页。
1、毕业实习报告的撰写规格为A4纸,单面打印。
2、毕业实习报告基本结构:
封面 ;
实习鉴定表;
目录;
正文:包括毕业实习单位简介;实习目的;毕业实习的内容;搜集的技术资料内容;实习中遇到的问题;实习收获;实习建议、实习总结等。
3、 字数要求:字数不少于6千字(不含图)。