@@@@@@@@@@@ 学 院
生 产 实 习 报 告
计算机科学与技术
专
班
学
姓
业
级
号
名
完成日期
实习单位
江苏无锡 NIIT 外包服务
公司
实习日期 2014.10.19-2014.10.31
实习岗位
实习生
实习带队
教师
赵向利、刁文广、
丁国强
实习单位基本情况
无锡 NIIT--NIIT(印度国家信息技术学院)是全球第二大的学习解决方案提供
商,也是亚洲唯一一家荣登 IDC 全球前 15 位 IT 培训机构榜的机构,向全球著名
企业如 Microsoft、INTEL、 TOYOTA、XEROX 等提供知识解决方案服务,拥有 50
万注册学生以及 38 个国家超过 4 百万的毕业生。1997 年 NIIT 正式进入中国,成
为投资中国的首家印度 IT 企业,目前已与中国 129 所院校建立合作伙伴关系,并
在大学校园里通过“NIIT Inside”模式提供业界知名的 IT 培训计划。
目前 NIIT(中国)服务外包实训基地二期工程,拥有三栋独立的实训大楼,
实训场地面积约 30000 多平方米,设有市场部、教学部(教学部一、教学部二、
教学部三)、高校合作部、就业安置部等七个部门。每层均拥有阶梯教室(均为多
媒体教室)、休息室、项目讨论室等,且设有普尔文考试中心,教学用计算机近万
台,全部配备 HP 品牌机;学校培训讲师主要由 NIIT 直接从印度总部派遣印籍专
家与本地具有丰富开发经验的项目经理担任,确保培训质量,学校目前拥有
Dhiren、Afzal Faizi 等印籍专家、金牌讲师及 30 多位项目经理级软件培训讲师。
NIIT 对教学质量严格把关,软件服务外包培训教材,教学大纳、课件、案例等全
部由 NIIT 印度总部统一提供,并根据行业发展情况对软件课程体系不断更新,培
训讲师都是经 NIIT 严格选拔,均要求拥有五年以上大型软件企业项目开发经验。
NIIT 目前已与福瑞博德、浪潮世科、大展信息、软通动力、华夏计算机、冠
华时代、日本 BASE、睿泰科技、中科惠软、海辉软件等众多知名服务外包企业,
结成战略培训合作联盟,根据外包企业实际技术需求,为企业进行定制人才培训。
培训内容涉及包括 C++、JAVA SE、JAVA EE、JAVA ME、.NET、ORACLE 等软件技术
与三级日语。
授课人姓名
@@@@
日期 2@@@@@@@
授课与实习内容
一、 授课内容
第一天:
一、第一个小程序
package day01;
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld!");
}
}
二、安装配置
1、安装 jdk
2、配置环境变量
path:C:\Program Files\Java\jdk1.6.0_10\bin;
三、发展
sun:java
IBM:eclipse
oracle:jdk1.8 正式版
四、Java 的数据类型
1、基本数据类型
整形:byte,short,int(默认),long
浮点型:float,double(默认)
字符型:char
布尔型:boolean
2、引用类型
八种基本类型的包装类:
整形:Byte,Short,Integer,Long
浮点型:Float,Double
字符型:Character
布尔型:Boolean
第二天:
一、流程控制语句
1、顺序
2、分支 if else
3、循环 for, while ,dowhile
, switch case
二、运算符
数学运算符:+-*/ %
逻辑运算符:| & ! ||(短目或)
比较运算符: > < >= <= == !=
位运算符:>> <<
自增自减:++ --
^ | &
>>>
&&
三、方法 function
public static void main(String[] args){
}
public:访问修饰符
static:修饰符(静态的只能调用静态的)
void:返回值类型,数据类型(必须要有 return)|void
main:方法名
(String[] args):参数列表
{}:方法体
四、面向对象 oop
一切皆对象。
面向对象的特征:(抽象),封装,继承,多态
Object
Class
class Person
class Person{
String name;
int age;
char sex;
String email;
String phone;
public void eat(){
//....
}
}
对象的属性自动初始化:
int...:0
double:0.0
char:'\u0000'
boolean:false;
String:null
public User(){}
public User(int id,String name){
this.id = id;
this.name = name;
}
public class User extends Person{
//子类继承父类 的可见的属性和方法
}
属性是静态绑定的
方法是动态绑定的(多态)
Person p = new User(); //父类对象引用子类实例
p.eat();//方法是动态绑定的(多态)
String job = p.job;//属性是静态绑定的
如果能够明确的知道父类引用的是哪个子类,则可以强转父类对象。
Person p = new User();
User u = (User)p;
重载:方法名(必须一致),参数列表(必须不相同)
public int add(){return 0;}
public int add(int a){ return a+a;} 与 public int add(int b){ return b+b;}
相同
public int add(int a,int
b){return a+b;}
重写:子类覆盖父类的方法
第三天:
一、复习自定义一个实体类
一般步骤:
1、定义私有的属性
2、提供属性的 public 修饰的 getter,setter 方法
3、提供常用的构造方法(无参构造器,全参构造器,常用构造器);
4、覆盖 Object 的 toString(),equals(),hashcode()方法等
5、实现序列化接口
[说明]:toString():主要用在直接测试期间直接输出对象的时候。程序员可以自
定义输出内容,无规定格式。
equals():主要用来对象比较的时候。一般分为以下 3 个判断:
非空检查:if(obj == null) return false;
==相等:if(this == obj) return true;
类型相同:if(obj instanceof User)
User u = (User)obj;
return id == u.getId();//基本类型
return name.equals(u.getName());//引用类型
Map
hashcode():主要用来表示同一个对象拥有同一个 hashcode 值,同一个 hashcode
值是同一个对象。
序列化接口:只是一个标识性接口,主要作用是告诉虚拟机该
对象可以被序列化,目的是为了在信息传输过程中减少信息的丢失等。
二、练习
首先了解论坛的大体结构,分析论坛的框架,得出对应的实体类。并且分析出每个
实体类的常见属性,如:
用户:User
主键属性 uid,用户 email,用户 pwd,经验 exp,权限等级 lv 等
版块:Section
主键属性 sid,版块名称 name,版主信息 User 等
主题:Theme
主键属性 tid,主题名称 name,发起人信息 User
(回帖)所属楼主贴 id 等。
三、集合
collection:set,list
list->ArrayList,LinkedList
Arrays....
List list = new ArrayList();
list.size():获得集合的元素个数
list.add(obj):向集合中添加元素
list.get(index):获得集合中指定下标的元素
Collections.sort(list):对集合中的元素按照自然排序/字典排序的方式排序。
Collections.shuffle(list):将集合中的元素打乱
String str = "zs:123,ls:123,ww:123";
str.split(","):按照","切割字符串,返回一个字符串数组
str.indexOf("z"):从前向后查找指定子串的元素的下标
str.lastIndexOf("z"):从后向前查找指定子串的元素的下标
str.substring(1,5):切割指定字符串,下标从 1 开始到 5 结束,包含 1,不包含 5.
Array:int[] arri = new int[5];
arri[0] = 1;//将 1 赋值给 arri 数组的第一个元素
int i = arri[0];//取出数组 arri 数组的第一个元素赋值给 i
int length = arri.length;//获得数组元素的个数
Arrays.sort(arri);//数组排序
Arrays.toString(arri);//将数组的元素按照字符串的格式输出。
第四天:
熟悉数据库的一些基本操作:
select * from user;
insert into user values(1,'zs','123');
insert into user(name,pwd) values('ls','123');
insert into user(pwd,name) values('123','ww');
update user set id = 1 ;
update user set id = 2 where name='ww';
values('wf1@th.cn','123');
delete from user where id = 2;
drop table user;
User:
uid,email,pwd,name,exp,lv,coin,regdate
create table user(
uid int
primary key
auto_increment,
email varchar(30)
pwd varchar(20) not null,
not null unique,
name varchar(20),
exp int default 0,
lv int default 1,
coin int default 8,
regdate datetime
);
//添加一列
alter table user add column name varchar(20);
//修改指定的列的类型等
alter table user modify type int default 0;
insert into user
values(1,'zs@th.cn','123','zs',12,1,0,'2014-10-23 09:44:44');
insert into user(email,pwd)
values('ww@th.cn','123');
primary key:主键-->唯一的,不为空的。
auto_increment:自增长
not null:不为空的
unique:唯一的
default:默认值
int,bigint:整数
double(7,2):小数,长度 7 位,保留 2 位小数。
char,varchar:字符串类型,用单引号引起来
date,datetime:日期类型('2014-01-01 01:01:01')
char(1)
char(11)
insert into user
values(9,'zf1@th.cn','123','zf1',10,3,3,'2014-10-23 09:44:44');
insert into user
values(10,'qf1@th.cn','123','qf1',8,3,30,'2014-10-23 09:44:44');
insert into user
values(11,'ef1@th.cn','123','ef1',18,6,13,'2014-10-23 09:44:44');
insert into user(email,pwd)
1、用户经验值大于 0 的用户的 email,exp,regdate
select email,exp,regdate from user
where exp >0;
2、从用户表中查询未填写 name 的用户的 uid,email,lv
select uid,email,lv from user
where name = null; ×
where name is null;
where name is not null;
3、查询 uid 在 3-5 之间的用户信息。
select * from user where uid between 3 and 5;
select * from user where uid >= 3 and uid <= 5;
select * from user where uid <> 4;//不等于 4
4、查询 user 表中的用户权限有哪几种?
select lv from user ;
select distinct lv from user;
5、查询 user 表中的用户财富值,并且从多到少排序。
select email,coin from user
order by coin desc;//降序
select email,coin from user
order by coin asc;// 默认升序(asc)
lv↓,coin↓,uid↑
select email,lv,coin,uid from user
order by lv desc,coin desc,uid asc;
第五天:
多表联合查询
1、查询每个版块的版块 sid,版块名,版主姓名(没有版主的版块暂不考虑)
select sid,s.name "版块名" ,u.name "版主",email
from section s ,user u
where s.uid = u.uid;
select sid,s.name,u.name,email
from section s join user u
on s.uid = u.uid;
//上面不会显示版主没人的情况
//如果需要显示所有的版块
select sid,s.name,u.name,email
from section s left join user u
on s.uid = u.uid;
2、查询每个主题的回帖
select t.tid,name,r.content
from theme t left join rtheme r
on t.tid = r.tid;