当前位置:文档之家› 计算机科学与技术毕业实习报告

计算机科学与技术毕业实习报告

西南科技大学计算机学院本科(毕业)校外实习报告院(系):计算机科学与技术专业班级:计算机1104学生姓名:学长学号:20111639成绩:指导老师:高小明提交日期:一、实习的目的和意义毕业实习是学生大学本科教学实践的主要环节,对学生的实践能力的培养具有十分重要的意义。

学生通过本次实习,能够了解计算机专业的相关新技术,了解理论知识在实际应用中的作用,了解计算机技术的新发展,体验计算机专业的工作内容和工作特点,拓宽知识面,增强人际沟通能力,加强团队协作精神,为走向社会打下基础。

Android以Linux为核心的Android运行平台,使用Java作为编程语言。

本次实习是在学习java语言程序设计的基础上进行的一次综合实践。

通过综合训练,要求学生掌握java语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发方法以及帮助文件的使用等,使学生通过本次实训,能够进行独立的Android应用程序开发,能够在实际操作中得到进一步的提高,为以后的学习和工作打下良好的基础。

1.1实习目的1.了解公司,熟悉办公流程及环境2.培养学生运用所学课程Java语言程序设计的理论知识和技能,分析解决计算机实际应用中的问题的能力。

3.培养学生在Java语言程序设计的基础上,开发Android应用程序的思想和方法。

4.培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。

5.掌握MTK Android源码1.2实习意义1.锻炼自己的动手能力,将学习的理论知识运用于实践当中,反过来检验书本上理论的正确性。

将自己的理论知识与实践融合,进一步巩固、深化已经学过的理论知识,提高综合运用所学过的知识,并且培养自己发现问题、解决问题的能力,加强对市场营销过程的认识;2.更广泛的直接接触社会,了解社会需要,加深对社会的认识,增强对社会的适应性,将自己融合到社会中去,培养自己的实践能力,缩短我们从一名大学生到一名工作人员之间的思想与业务距离。

为以后进一步走向社会打下坚实的基础;3.了解公司部门的构成和职能,整个工作流程,从而确立自己在公司里最擅长的工作岗位。

为自己未来的职业生涯规划起到关键的指导作用。

二、实习内容2.1 系统学习java语言(1)Java语言特点·面向对象:与C++相比,JAVA是纯的面向对象的语言,C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使C++成为一个"混血儿"。

而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。

·可移植(平台无关性):生成中间字节码指令,与其他编程语言不同,Java并不生成可执行文件(.exe 文件),而是生成一种中间字节码文件(.class文件)。

任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。

这正是Java 实现可移植的机制。

·原始数据类型存储方法固定,避开移植时的问题Java的原始数据类型的大小是固定的。

比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。

在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows9x、NT和2000,整数是4个字节。

当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。

Java的字符串,则采用标准的Unicode格式保存。

可以说,没有这个特性,Java的可移植性也不可能实现。

·JAVA在语法上与C++类似JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法;·取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。

C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能其它被取消的特性包括:虚拟基础类、运算符过载等·JAVA的基本解释器和类支持模块大概仅40K即使加入基本的标准库和支持线程的模块,也才220K左右。

与GUI(图形用户界面)相比,明显小很多·取消了指针算法C的最关键的一个特性是它的强大指针算法,比如可以用指针访问字符串、数组甚至文件,很容易产生指针溢出,意外地改写内存和损毁数据。

JAVA里有一个指针模型,对于普通的任务,如访问字符串、数组,根本不用指针,而一旦需要,比如访问对象、文件时,也可以获得指针的强大能力,但JAVA同时有高度的指针安全保障,用户永远不可能访问一个坏掉的指针、不可能造成内存分配错误,也用不着专门提防可能出现的内存漏洞。

·强大的多线程能力多线程可以使程序有更好的交互性和实时性,并可以最大限度地利用多处理器系统。

JAVA有着强大的多线程处理能力,因为各主流操作系统平台在线程的实施方面有重大的差异,所以JAVA为不同的操作系统实现了专门的多线程机制。

在这点上来说,JAVA 没有做到平台无关。

(2)面向对象基础static称为静态修饰符,它可以修饰类中的属性和方法。

1.静态属性被static修饰的属性称为静态属性,这类属性一个最本质的特点是:它们是类的属性,而不属于任何一个类的具体对象。

换句话说,对于该类的任何一个具体对象而言,静态属性是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值,同样任何一个类的对象去修改它时,也都是在对同一个内存单元做操作。

静态属性节省空间;静态属性保持类对象的一致性修改举例:总和、基本工资等2.静态方法static修饰符修饰的属性是属于类的公共属性:与之相仿,用static修饰符修饰的方法,是属于整个类的类方法;而不用static至少有三重含义:(1)调用这个方法时,应该使用类名做前缀,而不是某一个具体的对象名;(2)非static的方法是属于某个对象的方法,在这个对象创建时对象的方法在内存中拥有自己专用的代码段;而static的方法是属于整个类的,它在内存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有:(3) 由于static方法是属于整个类的,所以它不能操纵和处理属于某个对象的成员变量,而只能处理属于整个类的成员变量。

也即,static方法只能处理static的数据。

3.静态初始化器静态初始化器是由关键字static引导的一对大括号括起的语句组。

它的作用与类的构造函数有些相似,都用来完成初始化的工作,但是静态初始化器与构造函数有三点根本的不同:(1)构造函数是对每个新创建的对象初始化,而静态初始化器是对每个类进行初始化;(2)构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用运行的;(3)不同于构造函数,静态初始化器不是方法,没有方法名、返回值和参数列表。

让我们考虑如下的问题,所以考虑由系统自动为新雇员对象生成编号变量的值,将Employee类的属性定义改写为:class Employee //定义雇员类{private int m_EmpNo; //私有属性:雇员编号String m_EmpName; //雇员姓名char m_EmpGender; //雇员性别private double m_EmpSalary; //私有属性:雇员工资static double m_MinSalary; //静态属性:最低工资static int m_NextEmpNo; //下一个新雇员的编号}构造函数为:Employee(String name,char sex,double sal) //构造函数,完成初始化工作{m_EmpNo=m_NextEmpNo++; //新雇员使用了新编号之后,再产生另一个新编号m_EmpName=new String(name);m_EmpGender=sex;if(sal>=m_MinSalary) //工资额不合理时使用最低工资m_EmpSalary=sal;elsem_EmpSalary=m_MinSalary;这里,为实现编号不重复地自动生成,引入一个类成员m_NextEmpNo,它的值是下一个新创建的雇员对象的编号。

每当有新对象生成时,系统调用构造函数,将m_NextEmpNo的当前值赋给新雇员的编号变量m_EmpNo,然后让类静态属性m_NextEmpNo自动加一,这样新对象的编号就不会与已有对象的编号相重复。

表面看来整个问题似已解决,但实际上还有很关键的一步没有完成:那就是static 的类属性m_NextEmpNo的初始化问题。

总之,静态初始化器的作用是对整个类完成初始化操作,包括给static 类成员赋初值等,它在系统向内存加载时自动完成。

(3)java线程基础一、线程概述线程是程序运行的基本执行单元。

当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。

因此,在操作系统中运行的任何程序都至少有一个主线程。

进程和线程是现代操作系统中两个必不可少的运行模型。

在操作系统中可以有多个进程,这些进程包括系统进程(由操作系统内部建立的进程)和用户进程(由用户程序建立的进程);一个进程中可以有一个或多个线程。

进程和进程之间不共享内存,也就是说系统中的进程是在各自独立的内存空间中运行的。

而一个进程中的线可以共享系统分派给这个进程的内存空间。

线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间也叫做线程栈,是在建立线程时由系统分配的,主要用来保存线程内部所使用的数据,如线程执行函数中所定义的变量。

注意:任何一个线程在建立时都会执行一个函数,这个函数叫做线程执行函数。

也可以将这个函数看做线程的入口点(类似于程序中的main函数)。

无论使用什么语言或技术来建立线程,都必须执行这个函数(这个函数的表现形式可能不一样,但都会有一个这样的函数)。

如在Windows中用于建立线程的API函数CreateThread的第三个参数就是这个执行函数的指针。

在操作系统将进程分成多个线程后,这些线程可以在操作系统的管理下并发执行,从而大大提高了程序的运行效率。

虽然线程的执行从宏观上看是多个线程同时执行,但实际上这只是操作系统的障眼法。

相关主题