维信科技
中北大学软件学院-学员实训总结
目录
JAVA核心技术.................................................................................................................. 2
第一章Java入门........................................................................................................ 2
1.语言的历史...................................................................................................... 2
2.C/C++/java....................................................................................................... 2
3.Java发展史...................................................................................................... 3
4 .JAVA语言的特点............................................................................................. 4
5 .java环境搭建.................................................................................................. 4
6.HelloWorld测试用例......................................................................................... 4
7.标识符............................................................................................................. 5
8.数据类型......................................................................................................... 5
2014.9.12............................................................................................................ 6
11.if语句........................................................................................................... 6
2014.9.15............................................................................................................ 9
2014.9.16.......................................................................................................... 10
2014.9.17.......................................................................................................... 12
2014.9.18.......................................................................................................... 13
2014.9.19.......................................................................................................... 15
2014.9.22.......................................................................................................... 16
2014.9.23.......................................................................................................... 19
2014.9.24.......................................................................................................... 21
2014.9.25.......................................................................................................... 22
机器语言 0/1代码
低级语言 汇编语言
高级语言 C/C++/java/C#
C语言是一种通用的、面向过程式的编程语言,广泛用于系统与应用软件的开发。于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。
因为具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序员中备受青睐。20##年起是使用最为广泛的编程语言。
1983年,在C语言基础上贝尔实验室的Bjarne Stroustrup推出了C++。 C++进一步扩充和完善了C语言,是一种面向对象的程序设计语言
java[1] 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称
Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目
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的三个版本:标准版(JavaSE,以前是J2SE)、企业版(JavaEE以前是J2EE)和微型版(JavaME,以前是J2ME)
20##年5月8日,JDK1.3发布
20##年5月29日,JDK1.4发布
20##年6月5日,NOKIA宣布,到20##年将出售1亿部支持Java的手机
20##年9月24日,J2EE1.3发布
20##年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
20##年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0
20##年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
20##年12月,SUN公司发布JRE6.0
20##年4月7日Google App Engine开始支持Java[5]
20##年04月20日,甲骨文74亿美元收购Sun。取得java的版权。
20##年11月,由于甲骨文对于Java社区的不友善,因此Apache扬言将退出JCP。
20##年7月28日,甲骨文发布java7.0的正式版。
20##年3月19日,甲骨文公司发布java8.0的正式版。
JavaSE 标准版
JavaME 微型版
JavaEE 企业版
安全
简单
面向对象
跨平台性:是其流行的主要原因,支撑起良好的跨平台性的关键于JVM,按不同的平台进行解码
5.1.1JRE(Java Runtime Environment Java运行环境)
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
5.1.2JDK(Java Development Kit Java开发工具包)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等
简单而言:使用JDK开发完成的java程序,交给JRE去运行。
5.2.1path配置
我的电脑--属性--高级--环境变量
编辑path环境变量,在变量值开始处加上java工具所在目录,后面用 “ ; ”和其他值分隔开即可。
打开DOS命令行,任意目录下敲入javac。如果出现javac 的参数信息,配置成功。
Public class HelloWorld{
Public static void main(String[] args)
{
System.out.println(“hello world!”) ;
}
}
标识符 类名 例:Student
规范: 首字母 (字母 下划线 $符号) + 其它部分(数字 字母 下划线 $符号)
特别:1.首字母不能以数字开头
2.标识符不能是关键字 例(public,class)
*JAVA 关键字/保留字(默认为小写)
1.JAVA中一些附以特定的含义,并用作专门用途的单词称为关键字。
2.JAVA中的关键字全部小写。
3.gotu和const虽然从未被使用。但也作为Java关键字保留。
变量的声明和赋值
内存里存储数据的一部分空间称为变量。
使用变量的步骤
1. 声明(根据类型开辟空间)
2. 赋值 (将数据存入空间)
简单数据类型(数值,字符,布尔)
复杂数据类型(类,接口,数组)
转义符 含义 Unlcode
\b 退格 \u0008
\n 换行 \u000a
\r 回车 \u000d
\t 制表符 \u0009
\’’ 双引号 \u0022
\’ 单引号 \u0027
\\ 反斜杠 \u005c
Switch(表达式){
Case const1:
Statement1;
Break;
Case const2:
Statement2;
Break;
Case const3;
Statement3;
Break;
}
switch语句特点:
a,switch语句选择的类型只有四种:byte,short,int , char。
b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
c,结束switch语句的两种情况: 遇到break,执行到switch语句结束。
d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
初始化 结束 循环迭代
For(init_expr; Boolean test_expr;alter_extr){
Statement or block;
}
三种格式:
1.if(true)
{
执行语句;
}
2.if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
if(条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句;
}
……
else
{
执行语句;
}
while语句格式:
while(条件表达式)
{
执行语句;
}
do while语句格式:
do
{
执行语句;
}while(条件表达式);
do while特点:
是条件无论是否满足,
循环体至少执行一次。
java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。
对象即是该类事物实实在在存在的个体
如: 人类/小王 汽车/宝马汽车 等;
生活中描述事物无非就是描述事物的属性和行为。
Java中用类class来描述事物也是如此
属性:对应类中的成员变量。
行为:对应类中的成员函数。
定义类其实在定义类中的成员(成员变量和成员函数)
定义类:public class 类名;
定义对象: 类名 对象 = new 类名();
使用对象: 对象.成员变量 / 对象.成员方法
例子:class Computer//对Computer这类事物进行描述
public class Computer{
String color ; //颜色
int weight ; //重量
public void playGame( ){ //成员方法 显示汽车颜色和轮子数量
System.out.println("我在玩游戏!”);
}
public static void main(string[] args){
Computer computer = new Computer();
computer.color=”red”;
computer.whight=”200”;
computer.playGame();
}
}
构造方法是在类中定义的方法,构造方法的定义有如下两点规则:
1名称必须与类名相同
2.构造方法没有返回值,但不能写void。
语法:
[访问修饰符] 类名(){
//构造方法体
}
Class Cell{
Int row; int col;
Public Cell(int row1,int col1){
row=row1;
col=col1;
}
Class TestCell{
Public static void main(string arg[]){
Cell c1=new cell(1,1);
Printcell(c1);
}
}
}
创建对象时,构造方法写在new关键字后,可理解为:new创建了对象,而构造方法对该对象进行初始化。
1.任何一个类必须含有构造方法;
2.如果源程序中没有定义,编译器在编译时将为其添加一个无参的空构造方法(默认的构造方法)
注:一个类中有一个默认的无参构造方法,当写了有参的方法后,默认的无参构造方法消失。
当new一个对象时在堆中开辟一个内存空间放这个对象,而在栈中放它的地址,地址指向堆中的对象。
引用变量中内存的分配
栈中放地址,堆中放属性和方法。简单数据类型传递参数时仅传值。引用数据类型传参时相当于传递地址(String特殊)。
局部变量:只在局部可以被使用的变量。方法内部定义的,方法的形参,游离块内部定义的。
成员变量(全局变量):在整个类内部都可以使用的变量。如:类的成员变量。
判断依据:变量定义的位置。
同一个类中,方法间调用,直接用方法名即可。
成员变量可不被初始化就使用,因系统默认初始化。局部变量使用前必须初始化。
类{
成员变量
游离块
构造方法
}
New关键字创建对象
1.创建对象空间。
2.初始化对象的成员变量
3.调用对象游离块
4.调用对象的构造方法
在一个类中,当调用构造方法创建对象实例时,如果类的实例变量和局部变量名称相同,则要用this关键字区分。反之,编译可能出错。
public class Test{
String name;
Public Test(String name){
this.name = name;
}
}
(1)在一个构造方法中,通过this关键字调用所在类中的另一个构造方法。
(2)在一个实例方法内,局部变量或参数与实例变量名称相同,编译口器无法区分变量,这时要用this关键字。
(3)在一个实例方法内,通过this关键字访问当前实例的引用
在同一类中,方法名相同,参数列表不同,称为方法的重载。
Static关键字可以修饰成员方法、成员变量、构造块。
其修饰的成员变量叫静态成员变量或类属性;修饰的成员方法叫静态方法;修饰的游离块叫静态游离块。
调用构造方法创建对象时先调用静态游离块,其次是普通游离块。
静态成员变量被所有方法共享,是类级别的,可以用类名直接调用。静态方法中用变量必须声明为类级别。
类名调用对象时必须为static;
一个类中的属性可以是其他的类类型。
Final int AGE ;final修饰变量表示声明一个常量。
Final还可以修饰方法、类;不可以修饰游离块。
String name = new String();
String为引用数据类型(类);
Integer b = new Integer();
封装类(int)
八种简单数据类型的封装类:除int—Integer,char—Character外其余都是吧首位大写即可。
String S1 =”abc”;
String s2 =”abc”;
S1==s2;
String s1 = new string(“abc”);
String s2 = new string(“abc”);
S1!==s2;
String 常用方法
Length() 字符串长度
Equals() 比字符串内容。仅在string比内容,其他比地址
CharAt() 获取指定位置字符
IndexOf() 返回字符串第一次出现的位置
Substring(a,b) ab间的子字符窜,包含a,不包含b
Substring(c) 包含c及后边的字符串
Trim() 忽略前后空白
Replace(a,b) 替换旧字符为新的字符。用b替换a;
同一种类型数据的集合。其实数组就是一个容器。
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
静态初始化/动态初始化
NumberFormatException 数据格式异常
ArrayIndexOutOfBoundsException数组脚标越界异常
冒泡排序:
java自带排序算法: int[] num=new int[]{5,8,1,6,4}
Arrays.sort(num)
private关键字:
是一个权限修饰符。
用于修饰成员(成员变量和成员函数)
被私有化的成员只在本类中有效
将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
将不需要对外提供的内容都隐藏起来。
可以把属性都隐藏,提供公共方法对其访问。
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
多个类可以称为子类,单独这个类称为父类或者超类或基类。
子类继承父类所有的成员变量和成员函数,但可以直接访问父类中的非私有的属性和行为。 私有的 继承但访问不到
通过 extends 关键字让类与类之间产生继承关系。
class SubDemo extends Demo{}
继承的出现提高了代码的复用性。
继承的出现让类与类之间产生了关系,提供了多态的前提。
Java只支持单继承,不支持多继承。
一个类只能有一个父类,不可以有多个父类。
super和this的用法相像
this代表本类对象的引用
super代表父类的内存空间的标识。
当子父类出现同名成员时,可以用super进行区分
子类要调用父类构造函数时,可以使用super语句。
super(参数);
super.方法名();
super.属性;
表现多种形态的能力的特征。
1. 子类继承父类,子类重写父类的方法
2. 编写方法时,使用父类定义的方法。
3. 运行时,根据实际创建的对象类型动态决定使用哪个方法。
abstract:抽象类/方法,抽象类不能创建对象,抽象方法只有方法、声明,而部分没有方法实现,一个类中有抽象方法,则其必为抽象类,反之不一定。
final和abstract不能同时出现
final修饰的类表明此类不被实现,到此为止。
Java接口里一些方法特征的集合,但没有方法的实现。
Interface Flyable{
public void fly();
}
Java接口中定义的方法在不同的地方被实现,可以是有完全不同的行动。
例:public class SoundCard implements PCI{
PCI sound = new SoundCard();
}
Java中的异常用对象来表示。Java对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个类型(class),每个异常都对应一个异常(类的)对象。
异常类从哪里来?有两个来源,一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常。Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。
异常的对象从哪里来呢?有两个来源,一是Java运行时环境自动抛出系统生成的异常,而不管你是否愿意捕获和处理,它总要被抛出!比如除数为0的异常。二是程序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw 关键字抛出异常,这种异常常用来向调用者汇报异常的一些信息。
异常是针对方法来说的,抛出、声明抛出、捕获和处理异常都是在方法中进行的。
Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在Java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。finally语句块会在方法执行return之前执行,一般结构如下:
try{
程序代码
}catch(异常类型1 异常的变量名1){
程序代码
}catch(异常类型2 异常的变量名2){
程序代码
}finally{
程序代码
}
catch语句可以有多个,用来匹配多个异常,匹配上多个中一个后,执行catch语句块时候仅仅执行匹配上的异常。catch的类型是Java语言中定义的或者程序员自己定义的,表示代码抛出异常的类型,异常的变量名表示抛出异常的对象的引用,如果catch捕获并匹配上了该异常,那么就可以直接用这个异常变量名,此时该异常变量名指向所匹配的异常,并且在catch代码块中可以直接引用。这一点非常非常的特殊和重要!
Java异常处理的目的是提高程序的健壮性,你可以在catch和finally代码块中给程序一个修正机会,使得程序不因异常而终止或者流程发生以外的改变。同时,通过获取Java异常信息,也为程序的开发维护提供了方便,一般通过异常信息就很快就能找到出现异常的问题(代码)所在。
对于可能出现异常的代码,有两种处理办法:
第一、在方法中用try...catch语句捕获并处理异常,catach语句可以有多个,用来匹配多个异常。例如:
public void p(int x){
try{
...
}catch(Exception e){
...
}finally{
...
}
}
第二、对于处理不了的异常或者要转型的异常,在方法的声明处通过throws语句抛出异常。例如:
public void test1() throws MyException{
...
if(....){
throw new MyException();
}
}
第一、try语句不能单独存在,可以和catch、finally组成 try...catch...finally、try...catch、try...finally三种结构,catch语句可以有一个或多个,finally语句最多一个,try、catch、finally这三个关键字均不能单独使用。
第二、try、catch、finally三个代码块中变量的作用域分别独立而不能相互访问。如果要在三个块中都可以访问,则需要将变量定义到这些块的外面。
第三、多个catch块时候,Java虚拟机会匹配其中一个异常类或其子类,就执行这个catch块,而不会再执行别的catch块。
第四、throw语句后不允许有紧跟其他语句,因为这些没有机会执行。
第五、如果一个方法调用了另外一个声明抛出异常的方法,那么这个方法要么处理异常,要么声明抛出。
创建Exception或者RuntimeException的子类即可得到一个自定义的异常类。
例如:
用throws声明方法可能抛出自定义的异常,并用throw语句在适当的地方抛出自定义的异常。例如:
在某种条件抛出异常
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException
Collection
Set list Map
Sortedset sortedMap
Set、list、Map统称为java集合。
1> Set:不能包含重复的元素
2> List:是一个有序的集合,可包含重复的元素
3> Map:包含了key-value堆,不能包含重复的key
1.list对象:
Integer in = new Integer(“1”);
List.add(i); JDK自动做上述转换
2.list.size();
For(int I = 0;i<size;i++){
User user = (User)List.get(i);
强制类型转换
String name = suer.getName();
System.out.println()””;
}
3.contains判断集合有没有该对象
if(List.contains(user1)){
system.out.println(“”);
}
4.list.remove(User1); 移除对象
ArrayList(). 善于做遍历操作
是基于动态数组的数据结构
LinkedList().便于做插入删除操作
是基于链表的数据结构
List list = new LinkedList();
List.add();
List.add first();
List.removeFirst();
5.List<user> list = new ArrayList<User>();
范型.限制装入的数据类型
User user = new User();
user.setAge(10);
user.setName(“”);
List.add(user);
Set set = new HashSet();
Set.add(“1”);
Set.add(“2”);
Set.add(“1”);
Itertar it = set.iterator();
1. 选代
While(it.hasNest()){
String string = (String)it.next();
System.out.println(String);
Map<key ,value> 键值对
Key值唯一,否则覆盖
java桌面应用程序,不依赖于浏览器
GUI(Graphics User Interface):图形用户界面
AWT(Abstract Window Tools):抽象窗口工具集
Java.awt:提供了基本的组件和相关的类
Java.awt.color:处理颜色
Java.awt.datatransfer:提供数据传输和剪切板功能
Java.awt.dnd:实现拖拽功能
在java.awt这个包中,提供了基本的组件以及相关类和方法
容器
组件必须放在容器中才能显示
容器主要包括:
1. 窗口
2. 面板
Frame类
是Window类的子类
有标题,可通过拖拉改变大小
默认为不可见,可用setVisible(true)使其显示出来
默认的布局管理器是BorderLayout
使用setLayout方法改变布局管理器
BorderLayout
把整个窗口划分为五个区域
东南西北中
FlowLayout(流式布局管理器)
GUI Component从左到右按顺序配置在Container中,若到达右边界,则会折回到下一行
FlowLayout是Panel和Applet的默认管理器
Frame frame = new Frame(“flowlayout”);
Frame.setLayout(new FlowLayout(FlowLayout.CENTER));
LEFT或者RIGHT
GridLayout
网格布局管理器
GridLayout将Component配置在网格
当事件源发生事件时,就会自动调用该事件的接口方法,而方法中就是编写的事件处理程序代码。 要实现AWT中事件处理,需以下三步:
1,事件源 能够产生事件的对象都可以成为事件源,如文本框,按钮等。也就是说,事件源必须是一个对象,而且这个对象必须是Java认为能够发生时间的对象。
2.监视器 需要一个对象对事件源进行监视,以便对发生的事件作出处理。 例如:对于文本框,这个方法为:addActionListener(监视器);
3,处理事件的接口 监视器负责处理事件源发生的事件。为了让监视器这个对象能对事件源发生的事件进行处理,创建该监视器对象的类必须申明实现相应的接口,即必须在类体中给出该接口中的所有方法体,那么当事件源发生事件时,监视器就自动调用类实现的某个接口方法。
1.自身类作为事件监听器
2外部类作为事件监听器
3匿名内部类作为事件监听器
4命名内部类作为事件监听器
1.注册驱动
Class.forName(“”);
2.创建连接
Connection conn = DriverManager.getCONNECT(“JDBC:oracle:thin:@localhost:1521:xe”,”hr”,”hr”);
3.拼写SQL语句
String sql = “sql语句”;
4.创建发送对象
Statement stmt = conn.createStatement();
5.发送对象执行sql语句并取得执行结果
ResultSet rs = stmt.executeQuery(sql)
6.处理结果
While(rs.next){
String deptno = rs.getString(“depton”)
};
Finally{
Rs.close();
Stmt.close();
Con.close();
}
对awt页面上输入的值进行获取,传到数据库中
package User;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
publicclass UserImplements implements UserInterface{
@Override
publicboolean addUser(User user) {
Connection con=MangerDB.getConnection();
Statement stmt = null;
String sql = "insert into user(name,password) values ('"+user.getName()+"','"+user.getPassword()+"')";
try {
stmt = con.createStatement();
int rs = stmt.executeUpdate(sql);
if(rs>0){
System.out.println("插入成功!!!");
}else{
System.out.println("插入失败!!!");
}
} catch (SQLException e) {
e.printStackTrace();
}
returnfalse;
}
}
通过按键触发响应事件的方法,调用接口中对应的方法,在实现类中实现该方法。在实现类中对数据库进行操作。
实习报告学生姓名:学号:专业班级:实习单位:实习时间:陈育伟20xx6361信息与计算科学1班高博教育20xx-7-1——20xx…
JAVA实训总结XXX班XXX这个学期的最后两周是学校安排的Java实训课程,主要地点是在机房,这次我们任务是作一个网吧计费管理系…
实训收获总结报告一、实训目的通过对java语言、JavaWeb、金仓数据库KingbaseESV6.1.1应用设计及SQL语言的复…
一、实习目的通过对Java语言、JavaWeb、Oracle数据库应用设计及SQL语言的复习和锻炼,并且通过使用MyEclipse…
在上学期的最后一周和本学期的第一周,我和同组的学员在学校机房进行了JAVA暑期实训,现在已经结束了。回首上学期的java学习,重点…
20xx年我的工作总结光阴如梭,半年的工作转瞬即将成为历史,伴随着新年钟声的临近,我们依依惜别硕果累累的20xx年,满怀热情的迎来…
工作总结来公司已近一个月时间,在这一个月里,工作大致如下:第一周的时间主要是了解了公司的相关技术,学习了javaFX和JSF的相关…
20xx年度工作总结20xx年对于我来说是非常重要的一年,在这一年中我有了很多的进步,也在在很多地方留下了一些遗憾。古人云:“前事…
Jsp标准动作jsp:useBeanjsp:setPropertyjsp:getPropertyjsp:forwardjsp:us…
面向对象程序设计课程设计工作的总结历时两周的面向对象程序设计课程设计圆满完成。由于提前对课设进行了精心的准备和布置,使得学生能在短…
20xx年年度总结尊敬的领导您好在20xx年11月我很荣幸地进入公司加入了研发部Java技术开发团队认识了友善严谨的领导热心和睦且…