java实习报告

时间:2022-03-17 01:12:13 作者:网友上传 字数:13609字

无忧范文网小编为你整理了多篇《java实习报告》范文,希望对您的工作学习有帮助,你还可以在无忧范文网网可以找到更多《java实习报告》。

第一篇:JAVA15总结

JAVA(1-5章)知识总结 第一章初识JAVA

一、什么是程序 1.概念

为了让计算机执行某些操作或者解决某个问题而编写的一系列有序的指令的集合

编写程序的工具,计算机语言,java就是其中一种。

2.JAVA发展史

1995年5月23日,Java语言诞生; 1996年1月,第一个JDK-JDK1.0诞生;

1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术; 1996年9月,约8.3万个网页应用了JAVA技术来制作; 1997年2月18日,JDK1.1发布;

1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录;

1997年9月,JavaDeveloperConnection社区成员超过十万; 1998年2月,JDK1.1被下载超过2,000,000次; 1998年12月8日,JAVA2企业平台J2EE发布;

1999年6月,SUN公司发布Java的三个版本:标准版、企业版和微型版; 2000年5月8日,JDK1.3发布; 2000年5月29日,JDK1.4发布;

2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机; 2001年9月24日,J2EE1.3发布;

2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升;

2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0;

2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME;

2006年12月,SUN公司发布JRE6.0;

2009年4月7日Google App Engine开始支持Java;[8] 2009年04月20日,甲骨文74亿美元收购Sun。取得java的版权; 2010年11月,由于甲骨文对于Java社区的不友善,因此Apache扬言将退出JCP; 2011年7月28日,甲骨文发布java7.0的正式版;

2014年3月19日,甲骨文公司发布java8.0的正式版。 太阳微系统(2010年被甲骨文公司收购

3、java的体系结构:

Java ME -->微型版 适用于手机,无线设备的开发 Java SE -->标准版 使用开发客户端程序 java EE -->企业版 适用服务器端程序

4、java语言的特点

1.面向对象

java是纯面向对象的语言 2.跨平台

针对每个操作系统,java都有特定的虚拟机 jvm java虚拟机 什么是jvm? 运行的过程

字节码-----》类装载器---》字节码验证器---》解析器----》执行 java虚拟机

3、java安全性比较高

4、java是简单化的

5、计算机语言机制

解释型:同声翻译,写一句解释一句 c++ Basic语言

编译型:利用专门的编译器针对特定的系统将源文件一次性编译 C语言

java语言两种同时兼备

java语言先将 java 的源文件编译成.cla 文件,此时可以说是 编译型。 在jvm 运行的时候,先将字节码加载到内存中,读出一条指令,解释一条指令,执行一条指令。 解释型

6、JDK和JRE JDK Java Development Kit java开发工具包 JRE Java Runtimes Environment java运行时环境

7、java的环境安装:

下载JDK

安装完成:会生成JDK JRE JDK目录:

bin目录:常用的jdk工具 lib目录:类库

include:一些与C链接时用到的文件 src.zip:源代码的压缩文件

配置环境变量:

指明java 的安装路径

JAVA_HOME: C:\\\\Program Files\\\\Java\\\\jdk1.7.0_21 可以不设置(有可能你把java 的安装目录改了) 指明java虚拟机要用到的类库

CLASS_PATH: %JAVA_HOME%\\\\lib\\\\dt.jar;

C:\\\\Program Files\\\\Java\\\\jdk1.7.0_21\\\\lib\\\\tools.jar 指明系统在任一路径执行java 的命令 PATH %JAVA_HOME%\\\\bin

批处理文件:.exe

测试是否配置成功

出现的问题: 找不到无法加载主类

解决办法

在cla_path 中加上.; .表示当前目录 ..表示上一级目录

8、java的运行机制:

1、编写源文件 .java

2、编译源文件 .cla

3、运行 java平台上运行

9:、常见的错误:

1、类名与文件不同

2、引号、分号 ......

10、注释

java注释:

单行注释://dhsajdal 多行注释:/*dsajdksajdksad */ 文档注释:/** dsadada*/ 第二章、JAVA基本语法

1、变量?

电脑使用内存来记忆数据 内存是如何存储的? 会根据不同的数据类型申请不同的内存空间

变量:一个数据存储空间的表示

不同的数据存入 具有不同的内存地址,相互独立的

2、堆栈结构

java中内存分为两种: 一种叫栈内存 堆内存 定义的基本数据类型都是在栈内存中,引用类型的变量 ps: Scanner in = new Scanner(System.in); 堆内存中存放的是new创建的对象或者是数组

2、数据类型

基本数据类型 8种:

整型 byte short int long 1个字节 2个字节 4个字节 8个字节

1byte = 8b

2~8 2^16 65536 2^32 2^64

-2^7 --- 2^7-1 -2^15----2^15-1 -2^31--- 2^31-1 -2^63---2^63-1 字符型 char \\\\u000 空格

浮点型 float double 4个字节

8个字节 2^32 2^64 -2^31 --- 2^31-1 -2^63---2^63-1 布尔型 boolean true false

8种数据类型的默认值

整型全部是0,boolean为false

引用数据类型 -----------》所有的引用类型的默认值为:null

3、变量的命名规范

1、必须以:$ _ 字母开头

2、不能是用关键字

3、不能有特殊字符

4、首字母最好小写

5、区分大小写

6、驼峰命名 ps: helloWorld

4、数据类型的转换

1、隐式转换(自动类型转换) 小转大:去尾巴

2、显式转换(强制类型转换) 大转小:长尾巴 int b ; float a = 5; b = (int)a;

1)boolean 不能转换成其他类型

2)byte、short、char之间不会互相转换,在计算之前都会转成int byte b= 10; char c = 10;

java运算符

1、算术运算符:+ - * / %

2、赋值运算符:= += -= *= /= ++ -- int a; a = 10; System.out.println(a);

a += b; a = a+b;

++ 在前 先+ 再运算 ++ 在后 先运算在+

-- 在前 先- 再运算 ++ 在后 先运算在- ps:

int x = 10; int y = 8;

if((++x>y--)&(--y(y--)){

}

3、关系运算符:> =

4、逻辑运算符:& | ! && || &和&&的区别:

&----》不管boolean值是真还是假,都会把整个表达式执行完 &&---》也叫短路与,一假即为假,表达式不再运行

|和||的区别:

! 取反

5、位运算符:& | ^ ~ >> >> ps: 9&13

& ----- 按位与 只要有0那一位就为0 | ----- 按位或 只要有1那一位就为1 | ----- 异或 相同为0,不同为1 ~ ----- 取反 +1 取反

9>>3

三目运算符:(表达式)?(表达式1):(表达式2)

(表达式)为boolean类型表达式

如果(表达式)结果为true 执行表达式1 否则 执行表达式2

引用数据类型 -----------》所有的引用类型的默认值为:null

第三章、流程控制

控制语句:

1)顺序语句 2)分支语句 3)循环语句

分支语句:

if 和 switch

其中if使用布尔表达式或布尔值作为判断条件来进行分支控制 而switch则用于对整型值或字符串进行匹配,从而实现分支控制

switch (count) {

default:

System.out.println("罚写代码");

break;

case 1:

System.out.println("去参加夏令营");

case 2:

System.out.println("奖励一个电脑");

case 3:

System.out.println("奖励笔记本"); }

循环

循环语句一般包含4部分:初始化语句、循环条件、循环体、迭代语句 while 初始化语句

int count = 0; 循环条件

while (count

System.out.println("nihao"+count);

迭代语句

count++; } for 结构

a b c for(int i = 0; i

a -----> b -------> d ------> c ----> b ----d do{ 循环体

}while(表达式);

while 和 do while的区别 首先,他们都是循环结构。 do while 至少会被执行一次

while是先判断在执行 do while是先执行后判断

break continue 以及 return的区别 用在循环中:

break的作用是跳出当前循环

continue的作用跳出本次循环,执行下一次循环,不再执行continue后面的循环体代码

可以用的返回值 结束当前方法

第四章、数组

1.概念 1)数组是用来存储一组相同数据类型的数据

2)在数组中,他的类型是唯一。也就是说在一个数组中,只能存储同一种类型的数据

3)声明一个变量的时候是在内存中开辟一块空间,申明数组就是在内存中申请一串连续的空间

4)数组中保存任意数据类型(基本数据类型、引用数据类型) 数组也是一种数据类型-------->引用数据类型

1、数组中的数据称为元素

2、不管有多少个元素。数组只有一个名字,也就是数组名

3、数组中的元素按照顺序排列编号,即下标

4、数组中的元素可以用下标来访问

5、数组有大小,在创建数组的时候就创建了大小,如果超出了数组的范围(xxx) java.lang.ArrayIndexOutOfBoundsException 数组下标越界异常

2.数组的定义:

ps int a[]; int[] a; 这两种方式仅仅是申明了一个数组变量,所以并没有内存空间来存储数据,此时不能访问这个数组

boolean[] booleanArray; char[] charArray; String[] stringArray; 对象数组

Student[] student

数组的创建:

数组名 = new 数组类型[数组的长度]; ps a = new int[100];

这个数组的下标 : 0~99 数组的下标:0~数组的长度-1 获取数组的长度: 数组名.length a[0] 表示数组的第一个元素 a[99] 表示第一百个元素

数组的初始化:

分为两种: 静态初始化:

ps: int[] a ={1,2,3,4,5}; 动态初始化:

ps: int a = new int[5]; a[0] = 1;

a[1] = 2;

....

a[5] = 6; error: 或者通过循环赋值

数组的应用

1、输入五个人的成绩:求出平均分

2、创建一个数组,求最值

3、排序

Arrays.sort(num);系统提供的工具类Arrays 静态方法sort 默认的是升序排列 冒泡排序

4、数组的拷贝

1)将一个数组变量拷贝给另一个数组的变量,这两个数组的变量指向的同一个数组

2)将一个数组指定的元素,拷贝到另一个数组的指定位置,原数组不会发生改变 System.arraycopy(src, srcPos, dest, destPos, length) 参数一:原数组 参数二:开始下标 参数三:目标数组

参数四:目标数组开始下标 参数五:拷贝的长度

数组的默认值:

基本数据和引用数据类型的默认值是一样的

多维数组: 二维定义:

int[][] a; int[][][] a;

int[][] a = new int[4][]; 当使用new来创建二维数组的时候,不必指定每一维数组的长度,只需要指定最左边的那个就行

多维数组的初始化: 静态初始化:

int[][] a = {{1,2},{1,2,3},{1,2,3,4}}; 动态初始化:

int[][] a = new int[3][]; a[0] = new int[2]; a[1] = new int[3]; a[2] = new int[4];

a[0][0] = 1; String字符串 如何使用字符串? 1)定义初始化字符串 2)对字符串进行操作

注意:

String是一个字符串常量,被创建出来之后不能被修改

ps:String name="aa"; name = name+"aa";

怎么样实例化一个String对象呢?

1、通过字符串常量

ps: String str = "Hello world!";

2、通过String类提供的构造方法

ps:String str1 = new String("Hello world!"); String str5 = new String(); 定义了一个空字符串

String str5 = new String(bytes, offset, length)将一个byte数组变成一个String字符串

String字符创的应用:

1、字符串的长度

str.length();

2、String

字符创的比较

1)字符串1.equals(字符串2); str1.equals(str2) 这个方法的返回值是:boolean 将逐个比较每一个字符(会比较大小写) 2)字符串1.compareTo(字符串2); int count = str1.compareTo(str2); 方法的返回值是int 将逐个比较相同位置上的字符的Unicode码

如果完全相等方法返回0,如果发现不同的地方停止比较,

如果比较的字符Unicode码大于被比较的,放回一个整数值,反之为负数 3)字符串1.equalsIgnoreCase(字符串2); 忽略大小写的比较

3、字符串的连接

1)使用"+"将多个字符串链接到一起

其他数据类型和字符串以"+" 连接之后会变成一个字符串 2)字符串1.concat(字符串2);

4、字符串的其他常用方法:

indexOf-----> 从前往后取得查找字符串的下标,如果没有这个字符串,返回-1 str.indexOf("a", 3); 参数二:从第几个下标开始查找

str.lastIndexOf("a"); 从后往前取得查找字符串的下标,如果没有这个字符串,返回-1 str.lastIndexOf("a", 3); str.substring(2);参数是从第n个下标开始截取,返回值为字符串

str.substring(str.length()-3, str.length()-1); 参数为开始位置和结束位置

str.split("@");按照某个字符进行分割,返回一个String[] str.toLowerCase(); 把字符串字母变成小写,返回一个新的字符串 str.toUpperCase(); 大

str.trim(); 去掉字符串前后的空格,返回一个新的字符串

str.replace("a", "1");替换 参数就是把旧的字符串替换成新的字符串 str.endsWith(".java");是否以指定的字符串结尾,返回值是boolean str.startsWith("ac"); 开头, str.toCharArray(); 把字符串转换成char[] str.charAt(3);将指定位置上的字符取出

--------------- StringBuffer类

和String是相反的。StringBuffer的内容是可以改变 StringBuffer的实例化

StringBuffer sb = new StringBuffer("aa"); 常用方法:

append("bb"); 往缓冲区追加字符串 sb.length();获得长度

sb.insert(2, "mm"); 往指定位置追加数据

sb.reverse();将所有字符前后互换。生成一个新的字符串 sb.charAt(2);将指定位置上的字符取出

StringBuffer是线程安全的

在jdk1.5之后出了一个叫StringBuilder类线程不安全 如果不考虑线程问题尽量选择StringBuilder 速度更快 当数据量大的时候选择StringBuilder

System.currentTimeMillis();获取系统当前时间

String 、StringBuffer、StringBuilder的区别?

String是一个字符串常量,被创建出来之后不能被修改,不存在线程安全问题。 如果不考虑线程问题尽量选择StringBuilder 速度更快

当数据量大的时候选择StringBuilder 若数据量不大,而考虑安全性的情况下,选用StringBuffer 第五章、面向对象

面向对象(Object Oriented) 把一个问题的处理过程按照构成问题的事物分解成对象,建立对象的目的不是为了完成整个过程中的一个步骤,而是为了描述某个事物 在整个解决问题的过程中的行为。它不是一种编程语言,而是一种编程方法,一种思维方式。它的三大特性:封装 、继承、多态。

对某一类事物的描述,是抽象的,概念上的定义。对象是实际存在的该类事物的每一个个体,因而也成为实例。

对象

实际的个体。

一、package(包)与import(导入) (一) package的概念

包即是将一些类聚集在一起的一个空间域。 (二)包的命名

包的命名中一般包含组织类型、组织名、项目名、类的分类名。 一般与域名相反如:com.baidu.map; (三)包的作用

就像Windows中使用文件夹给文件分类一样,Java可以使用包将各个类进行分类。

在一个类里面只能有一个package。

注:package必须放在第一句有效代码。 (四)import的作用

在一个类中使用另一个类,而两个类又不在同一个包中时,则需要使用import关键字通知计算机导入所需的类。

import语句应该出现在package语句(如果有)之后、类定义之前。导入类名时,需要写出包括包名在内的完整类名。

注:在一个类里面import可以有多个,import在package之后,类名之前。 (五)import的两种导入类型机制 (1)单类型导入

如:import java.util.Scanner; 单类型导入仅仅导入import关键字后面的类名所指定的类。 (2)按需类型导入

如:import java.util.*; 它会导入包中所有的类,当然,也包括当前需使用的类。

二、类的封装

(一)概念

封装是面向对象三大特征之一,将对象的属性信息隐藏起来,不准外部程序直接访问。若外部需要访问,则须定义一个公共的方法来访问私有属性 (二)访问修饰符 (1)访问修饰符

public private protected 还有一个默认的什么都不写(有好的:default) (2)作用

访问修饰符可以修饰成员变量和方法,也可以修饰类。它限制了被修饰者的使用范围。

(3)访问控制级别

public:任何包中的任何类都可以访问,对外公开,访问级别最高。被public修饰的类、方法、属性可以被所有成员访问。 private:同一个类中可以访问,不对外公开,类的private成员只能被该类的成员访问,访问级别最低。 protected:同一个类,同一个包,子类中可以访问。受保护的,对于子女(子类,可以在其他包中),朋友(同包)来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部cla,protected就变成private。 default:同一个类,同一个包中可以访问。(无修饰符符) 友好的,类的成员没有访问控制修饰符,只有该类的成员和当前包下其他类的成员可以访问。 (三)对属性进行封装

就是将属性私有化,隐藏实现细节。提供公有方法访问私有属性 通过这些公有方法访问私有属性。

三、类的继承

(一)概念

继承也是面向对象的三大特征之一,它是基于现有的类(基类或父类)派生出新的类(派生类或子类)。子类可以有自己特有的方法和属性,也可以在父类方法的基础上去拓展(可以增加新的数据和功能),子类不能选择性地继承父类,子类可以继承父类所有的非私有的属性和方法。

注:子类只可以直接继承一个父类,且父类不能继承子类。 (二)语法

访问修饰符(可不加) cla关键字 字类的类名 extends关键字基类的类名,加上后面的一对大括号。如: cla Dog extends Animal{ } (三)作用

继承有效的减少了重复代码。 (四)方法的重载与方法的重写 (1)方法的重载

⑴前提:在同一个类中。 ⑵概念:同名不同参。

同名:函数(方法)名相同,参数列表不同。 ⑶参数列表不同: ①参数类型不同 ②参数个数不同 ③两者都不同 (2)方法的重写

⑴前提:必须是在有继承关系的基础上进行,子类重写父类的方法。

⑵概念:如果在子类中定义一个方法,其名称、返回类型及参数列表与父类中方法的名称、返回类型及参数完全一样,那么新方法被称做重写(Overriding)旧方法。方法重写又称方法覆盖。

(五)this和super关键字 ⑴this this表示当前活动对象本身,任何一个活动的对象都有一个默认的this指针指向自己。 使用格式:

this.成员变量名; this.成员方法名

this([参数列表]); //构造方法

注:this必须在构造方法的第一句有效代码,且不能在静态中使用 ⑵super super表示当前活动对象的直接父类 使用格式:

super.成员变量名; super.成员方法名

super([参数列表]); //父类的构造方法

注:super必须在构造方法的第一句有效代码,且不能在静态中使用

四、多态

(一)概念

多态,也是面向对象三大特征顾名思义,多种状态。它是指面向对象程序运行时,相同的信息可能会送给多个不同的类型之对象,而系统可依据对象所属类型,引发对应类型的方法,而有不同的行为。 Java中的多态

Java引用变量有两个类型:编译时类型和运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。当它们出现不一致时,就可能出现所谓的多态了。

多态体现在继承过程中也就是说子类和父类的相互类型转换。 子类转换为父类称为向上转型,在创建对象时,对象既可以作为其本身的类进行引用也可以作为其父类型进行引用。也就是说将一个子类对象直接赋值给一个父类的引用变量,这种我们称为向上转型。

父类转换成子类,与向上类型相对应的这个父类对象作为其子类类型的引用时,这时候我们就说父类转换成子类了。父类转换成子类需要强制类型转换。也叫向下转型。

自动进行类型转换父类型 引用变量名=new 子类型(); 调用的方法是子类重写或继承父类的方法 无法调用子类特有的方法 强制类型转换

子类型 引用变量=new 父类类型(); 强转后才能访问子类特有的方法 继承关系的类型关系才能向下转型 A-B-C 其中A是父类,B是它的两个子类。 B-A-B是可以运行的 B-A-C? 经实践发现:语法上没有问题,运行时会出错。 B-A:是把子类B的对象赋值给父类A向上转型 B(A)-C:把父类B转化成子类C 向下转型

子类B是伪装的父类,在编译时没有问题,但是B和C没有继承关系,所以在运行时会出错。

接口(Interface)

implements 一.抽象类 1.概念

用abstract关键字来修饰一个类时,该类叫做抽象类。 若使用抽象类,则必须被继承。

抽象类不能被直接实例化,它只能被继承,作为其它类的超类,这一点与最终类(final类)正好相反 2.格式

abstract cla 类名{ abstract void 方法名(){ } } 3.抽象方法

用abstract关键字来修饰一个方法时,该方法叫做抽象方法。 抽象方法不能有实现的方法体,它必须被重写,定义了抽象方法的类必须是抽象类

⑴抽象方法必须被重写。 ⑵抽象方法只有声明,不能有实现。 ⑶定义了抽象方法的类必须是抽象类

4.作用

很多时候,父类只能明确子类有哪些行为(方法),但是不能准确的知道子类是如何做的。

二、接口 1.概念

只具有抽象方法的抽象类

三、接口的特点

接口不能被类继承(extends),只能被类实现(implements); 一个类可以实现多个接口;

实现接口的为抽象类。类必须实现接口中的所有方法。

在类中实现接口中定义的方法时,不能比接口中定义的方法有更低的访问权限。因此,被实现的接口方法必须用public修饰。 格式

访问修饰符 Interface 接口名{ } 接口也可像定义类一样实现继承,但接口只能继承接口,不能继承任何类。接口是多继承的。

访问修饰符 Interface 接口名 extends 父借口名1,父借口名2 ...{ } 7.接口的成员变量必须被初始化,成员方法只能有声明不能有实现。

四、接口的实现

[修饰符] cla 类名 extends 父类名 implements 接口1, 接口2„{ //实现接口的方法 } 1.接口是可以被“多实现”的,一个类可以实现多个接口;

2.接口的实现不影响类的继承,接口的实现使用implements关键字; 3.接口之间的继承使用extends,而不是implements。

五、抽象类和接口的区别

1.抽象类可以有实现的方法,也可以有抽象方法,接口只有抽象方法 2.职能的区别:抽象类是作为父类有关联性的,而接口是无关联性 3.抽象类可以继承可以实现,接口只能继承接口

4.有抽象方法的类一定是抽象类,抽象类不是必须有抽象方法

5.非抽象子类必须重新抽象父类中的所有的抽象方法,而抽象子类则不必

六、按值传递和按引用传递的区别

值传递:传递的是副本,本身没发生改变

引用传递:传递的是本身,内外改变是一致的(本质就是传递的内存地址) final修饰的类不能被继承,被其修饰的方法不能被重写,被其修饰的变量的值不能被修改,即为常量。

七、内部类

1.概念 定义在其他类内部的类叫做内部类,也叫嵌入类

内部类是指定在另一个类内部的类,它是java中一种非常有用的特性

2.类型

内部类共包括四种类型:非静态内部类、静态内部类、局部内部类、匿名内部类。最初,它看起来就像是一种代码隐藏机制,但是内部类的作用远不止如此,通过内部类,可以访问外部类的所有私有成员,可以使得代码更加优雅清晰,还使得重继承解决方案更加完整等。 3.格式

cla关键字类名{ cla关键字类名{

} } 4.成员内部类根据访问权限的不同又可以划分为静态内部类和非静态内部类。

⑴还有一种特殊的内部类叫做匿名内部类,这种内部类比较特殊它仅仅适合被使用一次的类。也就是说在程序运行中仅仅被使用一次即刻消亡。 必须继承一个父类或一个借口

⑵非静态内部类:无static修饰的内部类。

⑶静态内部类(类内部类):被static修饰的内部类 ⑷局部内部类:定义在成员方法中的内部类,不能使用static或访问控制符修饰。局部内部类不能用访问控制符来修饰如public、private也不能用static来修饰。同理局部内部类不能在外部类以外的地方使用。 对于局部成员而言,无论是局部变量或者是局部内部类他们的上一级程序都是方法或代码块,而不是类。所以局部成员的作用域仅仅是所在的方法或代码块。其他的程序单元也就不能访问到它们。

5.静态内部类的使用

外部类.内部类 类名=new 外部类.内部类();

第二篇:java实训报告总结

内蒙古商贸职业学院计算机系

学生校内实验实训报告

20xx学年第学期

系部:计算机系

课程名称:Java程序设计教程专业班级:

内蒙古商贸职业学院计算机系制

填写说明

1、实验项目名称:要用最简练的语言反映实验的内容,要与实验指导书或课程标准中相一致。

2、实验类型:一般需要说明是验证型实验、设计型实验、创新型实验、综合型实验。

3、实验室:实验实训场所的名称;组别:实验分组参加人员所在的组号。

4、实验方案设计(步骤):实验项目的设计思路、步骤和方法等,这是实验报告极其重要的内容,概括整个实验过程。对于操作型实验(验证型),要写明需要经过哪几个步骤来实现其操作。对于设计型和综合型实验,在上述内容基础上还应该画出流程图和设计方法,再配以相应的文字说明。对于创新型实验,还应注明其创新点、特色。

5、实验小结:对本次实验实训的心得体会、思考和建议等。

6、备注:分组实验中组内成员分工、任务以及其他说明事项。注意:

①实验实训分组完成的,每组提交一份报告即可,但必须说明人员分工及职责。不分组要求全体成员独立完成的实验实训项目可由指导老师根据个人完成情况分组填写。

②实验成绩按照百分制记,根据教学大纲及课程考核要求具体区分独立计算、折算记入两种情况。

③本实验实训报告是根据计算机系实验的具体情况在学院教务处制的实验实训报告的基础上进行改制的。特此说明。

成绩单

组别:小组成员:

第三篇:java实训报告总结

作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。这篇文章是关于在学习JAVA软件开发时练习项目的总结,简单总结为以下几点: 作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。这篇文章是关于在学习JAVA软件开发时练习项目的总结,简单总结为以下几点: 1、项目一定要全新的项目,不能是以前做过的 2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统 3、在开发时要和企业的开发保持一致 4、在做项目的时候不应该有参考代码 长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。 一:项目的地位 因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。 他们欠缺的主要是两点: (1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。 (2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。 解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。 二:如何选择项目 项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据Java的研究和实践经验总结,选择项目的时候要注意以下方面: 1:项目不能太大,也不能太小 这个要根据项目练习的阶段,练习的时间,练习的目标来判断。不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。 2:项目不能脱离实际应用系统 项目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。因为培训的时间有限,必须让学员尽快地融入到实际项目的开发当中去。任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。 3:项目应能覆盖所学的主要知识点 学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。 4:最后综合项目一定要是实际应用系统 学员经过这个项目的练习,就要走上实际的工作岗位了,如果这个系统还达不到实际应用系统的标准,学员练习过后也还是达不到企业实际的需要,那么这个培训应该说质量就不高了。理想的状况是这个项目就是实际项目,到时候学员就业到另外一个公司,不过是换个地方干活而已,完全没有技能上的问题。

第四篇:大学生java实习总结

一: 课设题目、目的、开发环境

1)实习题目

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

2)实习目的

《Java程序设计》课程是电子商务专业的一门专业必修课程,特针对此课程进行为期三周的实践教学,旨在提升本专业学生对此课程中的理论知识的综合应用能力、提高学生的逻辑思维能力、软件开发能力。

本次课程实习要求学生用Java技术在Windows平台下开发学生信息管理系统。

通过此程序的开发能够切实提高学生的程序设计水平,在实践中掌握面向对象程序设计的开发思想。

3)开发环境

操作系统;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)项目总体设计

需要建立一个三层模块:视图层(界面,提供用户输入)控制层(接受用户输入处理)持久层(连接数据库)。

在登陆界面实现教师、学生的登录,实现学生查看自己所有信息的界面,教师对学生信息、学生成绩信息的增删减查功能的实现。

2)项目详细设计

1、需要有开发环境,安装编程环境:MyEclipse 6.0、数据库:MySQL5.0、安装Navicat for Mysql程序;

2、仔细阅读《Java实习指导书》,详细了解对学生信息管理系统设计与开发的总体设计;

3、首先需要建立四个包,分别为:ui包,dao包,connection包,model包。

connection包,主要负责获得与数据库的连接和关闭连接;dao包主要负责对数据库的操作;ui包主要分为登录界面、学生查询界面、教师对学生信息和学生成绩信息进行增删减查操作的界面;

4、ui包是界面,系统运行主界面--学生信息管理登陆界面(根据公共数据库建立自己的数据库,输入登录名、密码可以分别进入教师主页面、学生主页面), 学生详细信息界面(进入后会出现学生自己的成绩等详细的信息,并有退出功能),老师登陆界面(可以对学生信息进行增删减查,对学生成绩信息进行增删检查,并有退出功能);

5、ui包中还有对学生信息进行增加学生、删除学生、查看学生信息、浏览所有学生信息、增加学生成绩信息、删除学生成绩信息、查看学生成绩信息的7个界面,每个功能实现完成后会显示操作成功,并有退出功能;

6、然后在Java编程环境MyEclipse 6.0编写代码;

7、首现建立以dumeilingxxglxt命名的项目工程,然后建立ui包,然后再建立LoginUI类,代码敲完LoginUI类的所有代码,然后开始根据提示,这个 LoginUI类所需要的dao包,connection包,model包,还有dao包的 ScoreDao类、StudentDao类、 TeacherDao类;connection 包的DBConnection ;model包的Scor类 ,Studente类, 然后在敲ui包中的ScoreAddUI类, ScoreDeleteUI类,ScoreQueryUI类,StudentAddUI类, StudentDeleteUI类, StudentQueryUI类,StudentScoreUI 类,eacherMainUI类;

8、在MyEclipse中导入数据库驱动包mysql-connector-java-5.0.5.jar;

9、 在Navicat for Mysql打开数据库,然后建表:student表、teacher表和score表,进入主界面,实现系统登陆功能;

10、连接公共数据库:Navicat for Mysql

代码为:("jdbc:mysql://192.168.0.1:3306/dumeiling","root","p");

11:然后开始运行,发现错误并解决错误;

12:在所有代码都正确的情况下,所有界面将会出现。

四:调试过程(包括系统测试、出现的问题、解决的方法等)

出现最多的错误就是:

1)代码编写错误,解决方法就是照着代码继续核对,直到可以运行

2)当连接上公共数据库后,运行LoginUI,出现登陆界面,但是输入登录名、密码点击登陆后却出不出现学生信息界面或是老师登陆界面,这时候下面将会出现许多错误提示,点击后开始再次找出错误的代码,这个难度比较大,需要自习阅读每一行代码,在熟知代码的前提下对程序代码进行修改,也是最考验我们耐心的'时刻,过了之一阶段,实习的基本要求就达到了,然后就该对程序加入一些自己的设计,以此来不同于别人。

3)在我设计好的代码中,登录学生界面是出现一个Driver success,connection succecc的提示,但是却不显示学生信息,一直不知道是什么原因,最后把数据库的三个表删除,再次建表,结果全部成功了,对我来时这是一个谜啊。

五、小结(在整个课程设计过程中的总结和体会)

将近三周的JAVA实习很快就结束了,虽然仅仅只有三周,但我学到了许多知识,以前只是做些JAVA实验,敲一堆代码,然后出来个简单的结果,还有的是没有在主函数里输入,只是学会掌握属性存取器的使用,super、final、abstract关键字,理解抽象类与抽象方法,理解并掌握接口的定义与使用等等,但这次不一样,是设计与开发个学生信息管理系统,实现教师、学生登录并实现增删价查功能。

在整个学生信息管理系统的设计与开发过程中,感触最深的就是两周的敲代码、核对代码。

可以说是一次痛苦的体验,但是在实习的第三周看到自己的成果展示,不得不佩服自己的毅力。

通过对这次学生信息管理系统的设计与开发过程实习,我发现任何一种语言只要你用心投入,你就会发现其实一切都那么简单,就拿这四个包中的类代码,如果你仔细分析的话,你会发现其实一些带麦是差不多的,也就是说只要你会其中一个操作代码,你就会其他的操作,老师给的程序代码教师操作功能只有6个,但是我们可以再添加两个界面。

我的自己设计部分是:添加背景颜色、并增加了一个浏览所有学生信息的界面,但是没有连接到正确的界面上,由于自己安排的时间问题,没有及时写出来,还有就是我在添加背景颜色时,还是不太清楚,确切说自己登陆界面添加背景颜色正确,其他的被覆盖这了,总的来说还是不太懂代码。

还有体会最深的一点是:只要你用心去学习,你就回学到一些东西,也许不是那么明显,但是只要付出还是会有收获的。

在第三周周二是交作业时,有的同学自己昨天完全正确的程序,今天完全不管用了,我看到了她的急躁,一直埋怨、似乎有点想哭,其实我想说:冷静。

然后看看是什么原因,假如是电脑的问题李珂把代码拷走,重新建立工程,说实话,我不知道重新建了多少次,遇事一定要让自己冷静,不要急,事情总会有解决的方法。

六、参考资料

1)《Java程序设计》实习指导书

2) 老师发的有关学生信息管理系统的设计与开发的代码资料

3)指导老师讲解的有关学生信息管理系统的设计与开发的内容

4)参考百度文库《Java实习报告》

第五篇:Java格式总结

Java定义格式:

1、数据类型的强制性转换语法:

(欲转换的数据类型)变量名称;

2、if语句的格式:

if(条件判断)

语句;

3、if语句的格式:

if(条件判断) { 语句1;

语句2;

语句3; }

4、if…else语句的格式:

if(判断条件) { 语句主体1; } else { 语句主体2; }

5、条件语句格式:

条件判断?表达式1:表达式2; 即:

If(条件判断) { 变量 x=表达式1; } Else { 变量x=表达式2; }

6、if…else if…else语句格式:

if(判断条件1) { 语句主体1; } else if(判断条件2) { 语句主体2; }

//多个else if语句 Else { 语句主体3; }

7、switch语句格式:

switch(表达式) { case 选择值1:语句主体1;

break;

case 选择值2:语句主体2;

break;

……

case 选择值n:语句主体n;

break;

default: 语句主体; }

8、while循环语句格式:

while(判断条件) { 语句1;

语句2; ……

语句n; }

9、do……while语句格式:

do { 语句1;

语句2;

……

语句n;

}while(判断条件)

10、for循环语句格式:

for(赋值初值:判断条件:赋值增减量) { 语句1;

……

语句n; }

11、break语句格式:

for(赋值初值:判断条件:赋值增减量) { 语句1;

12、

13、

14、

15、

16、

17、

18、

19、

20、

21、语句2; …….break;

……

//若执行break语句,此块内的语句都不再执行 语句n; } continue语句格式:

for(赋值初值:判断条件:赋值增减量) { 语句1;

语句2;

……

Continue;//若执行continue语句,此块内的语句不再执行

……

语句n; } 一维数组的声明与分配内存格式:

数据类型

数组名[];

//声明一维数组

数组名=new 数据类型[个数];

//分配内存给数组 声明数组的同时分配内存格式:

数据类型 数组名[]=new 数据类型[个数] 数组长度的取得格式: 数组名.length 数组初值的赋值格式:

数据类型 数组名[]={初值0,初值1,…,初值n}; 二维数组的声明格式: 数据类型 数组名[][];

数据名=new 数据类型[行的个数][列的个数]; 二维数组色声明及分配内存格式:

数据类型 数据名[][]=new 数据类型[行的个数][列的个数]; 二维数组初值的赋值格式:

数据类型 数组名={{第0行初值},

{第1行初值}, ……

{第n行初值} };

取得二维数组的行数与特定行的元素的个数格式: 数组名.length

//取得数组的行数

数组名[行的索引].length

//取得特定行元素的个数 声明方法并定义内容格式:

返回值类型 方法名称(类型 参数1,类型 参数2,…) { 程序语句;

return 表达式;

22、

23、

24、

25、

26、

27、

28、} 类的定义格式: cla 类名称 { 数据类型 属性;

……

返回值的数据类型 方法名称(参数1,参数2…) { 程序语句;

return 表达式; } } 对象的产生格式:

类名 对象名=new 类名();

访问对象中某个变量或方法格式: 访问对象:对象名称.属性名 访问方法:对象名称.方法名() 封装类中的属性或方法格式:

封装属性:private 属性类型 属性名

封装方法:private 方法返回类型 方法名称(参数) 构造方法的定义格式: cla 类名称 { 访问权限 类名称(类型1 参数1,类型2 参数2,…) {

程序语句;

//构造方法没有返回值 } } 定义内部类格式:

标识符 cla 外部类名称 { //外部类的成员

标识符 cla 内部类的名称 {

//内部类的成员 } } 类的继承格式

cla父类

//定义父类 { } cla 子类 extends 父类

//用extends关键字实现类的继承 {

29、

30、

31、

32、

33、

34、

35、} Super调用父类中的属性或方法格式: super.父类中的属性; super.父类中的方法();

子类复写父类中的方法的格式: cla Super { 访问权限 方法返回值类型 方法1(参数1)

{ } } cla Sub extends Super { 访问权限 方法返回值类型 方法1(参数1)//复写父类中的方法

{ } } 抽象类的定义格式:

abstract cla 类名称

//定义抽象类 { 声明数据成员;

访问权限 返回值的数据类型 方法名称(参数…)

{ } abstract 返回值的数据类型 方法名称(参数…);

//定义抽象方法,在抽象方法里,没有定义处理的方式 } 接口的定义格式:

Interface 接口名称

//定义抽象类 { final 数据类型 成员名称=常量;

//数据成员必须赋初值

abstract 返回值的数据类型 方法名称(参数…);

//抽象方法,注意在抽象方法里,没有定义处理的方式 } 接口的实现格式:

cla 类名称 implements 接口A,接口B

//接口的实现 { …… } 接口的扩展格式:

Interface 子接口名称 extends 父接口1,父接口2,… { …… } 异常处理的语法格式: try

36、

37、

38、

39、40、

41、{ 要检查的程序语句;

… } catch(异常类 对象名称) { 异常发生时的处理语句; } finally { 一定会运行到的程序代码; } 抛出异常的语法格式: Throw 异常类实例对象; 由方法抛出异常格式:

方法名称(参数…) throws 异常类1,异常类2,… 编写自定义异常类格式:

cla 异常名称 extends Exception { …… } Package的声明格式: Package package名称; package的导入格式:

import package名称.类名称; 由键盘输入数据基本形式格式: Import java.io.*; Public cla cla_name

//类名 { Public static void main(String args[])throws IOException { BufferedReader buf; //声明buf为BufferedReader类的变量

String str; //声明str为String类型的变量

……

Buf=new BufferedReader(new InputStreamReader(System.in)); //产生buf对象

Str=buf.readLine();

//读入字符串至buf …… } }

java软件实习报告

Java实验报告

java毕业实习总结

java学习

java辞职报告

《java实习报告.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档