当前位置:文档之家› java基础学习资料

java基础学习资料

java基础学习资料
java基础学习资料

1JAVA基础

1.1 类、数组、字符串操作

类:是变量和方法的集合体。类可以嵌套定义。类是java程序中基本的结构。所有的java 语句出现在方法中,所有的方法都定义在类中。

类{

方法{

Java语句}

}

数组:是最简单的复合数据类型,是有序数据的集合。数组的元素可以是值(基本数据类型)、对象或其他数组。一个数组中的所有值都必须是相同的数据类型。

文本字符串:是一种参考数据类型,它本身是由https://www.doczj.com/doc/b113028985.html,ng.String定义的对象。

1.2 类

实例化一个类,就能得到一个对象。

类定义由类声明和类体组成。

类声明:class+类名:

类体:成员变量+成员方法

1.2.1类声明

类声明格式:【修饰符】+class 类名+【extends 父类名】+ 【implements 类实现的接口列表】修饰符:指明类的访问控制符合类型说明符,包括:public、默认(friendly)、abstract、final 其中:

1、public:指明该类为公共类,可被其他类访问或引用其成员变量和成员方法。

Java语言规定包含main()的主类必须是公共类。

2、默认(也称friendly):没有访问控制符,表示该类只能被同一个包的类访问和引用,也不能用import语句引入。

3、abstract:抽象类,指明不能实例化的类

4、final:最终类,指明该类不能有子类

类名:第一个字母大写并具有类功能特征

extends:指明该类是子类,extends后面跟父类名,子类与父类之间有继承关系implements:指明该类实现的接口,后面是接口列表。

1.2.2类体

class 类名

{

成员变量声明

成员方法声明

}

成员变量和成员方法都可用public、protected、private、static、final 来设定访问权。

public:公用

protected:保护访问,可被同一个包中其他类、不同包中该类的子类以及该类自己访问和引用

private:私有访问,只能被该类自己访问或调用。

static:静态:静态变量(方法),否则为实例变量(方法)。不需要实例化可以被类直接调用。

final:常量:注意用大写字母。

1.2.2.1 成员变量

声明格式:

修饰符+type+变量名

修饰符:包括:public、protected、private、static、final 、transient、volatile:transient:指明变量为暂时性变量,用于实现不同对象存档功能

volatile:指明多个线程共享的变量,保证各线程对该变量访问的一致性。

1.2.2.2 成员方法

由方法声明和方法体组成

修饰符+方法返回值类型+方法名称+(参数列表)+【throws exception】

{

方法体

}

修饰符:public、protected、private、static、final 、abstract、native、synchronized

其中abstract:指明方法是否可以重写

native:指明代码是由各种语言集成

synchronized:指明多线程可并发共享访问。

方法体:是对方法的实现,包括局部变量声明、java合法指令

Java中的方法的参数传递是传值调用,而不是地址调用。方法不能改变参数值,但可以改变变量值,两个对象之间的参数字段,不能相互交换。

1.2.2.3 方法重载

方法的重载是指多个方法可以享用相同的名称,但参数的数量和类型必须不完全相同,即方法体有所不同,它实现了java编译时的多态性(即静态多态性)。也就是说,程序可以按参数决定调用对应方法,而此决定是由编译器来做的。

1.2.2.4 构造方法

构造方法是类中的一种特殊方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。Java语言中的每个类都有构造方法,它也是由方法名、参数和方法体组成。构造方法名必须与类名相同,它没有返回值,用户不能直接调用它,只能通过new自动调用。

构造方法也有成员、访问权限限制。在构造方法中必须使用成员变量,而且当参数与成员变量同名是,就只能用this关键字。

如果类中没有构造方法,java语言提供默认的构造方法。但只要类中提供了构造方法,默认构造方法就无效。

构造方法特点:

1.3 对象、接口、包

一个对象的生命周期可以分为3个阶段:生成、使用、清除

对象是一组相关变量和相关方法的封装体,是类的一个实例。对象的特征是对象的行为、状态和身份。

1.3.1对象的生存

对象生成包括声明、实例化、初始化3方面内容。

一般格式先定义一个对象变量,再用关键字new 生成一个对象,并为对象中的变量赋初始值

type objectName = new type(【参数】)

type objectName:声明时定义对象的类型,包括类和接口的复合类型。

new:new关键字是实例化一个对象,给对象分配内存,它调用对象的构造方法,返回该对象的引用。

type:指各种数据类型

1.3.2对象的使用

对象的使用原则:先定义后使用。

对象的使用包括访问类成员变量和方法的调用,对象作为类成员使用和作为方法参数(或返回值)使用。

访问格式:

对象名.调用的方法名或变量名

1.3.3对象的清除

对象的清除指释放对象所占用的内存。其清除途径:

1、依靠java的垃圾回收机制回收内存

2、调用System.gc(),请求垃圾回收

3、Java系统开始运行时,自动调用https://www.doczj.com/doc/b113028985.html,ng.Object.finalize()释放内存

4、在程序中调用重写的finalize()释放系统资源,其格式为:

super.finalize();

1.3.4接口

接口是一种只含有抽象方法或常量的一种特殊抽象类。

在java语言中,abstract修饰符定义的类称为抽象类,在其中的方法称为抽象方法。

abstract类必须被继承,abstract方法必须被重写,abstract类不能实例化。

abstract的格式:

abstract class abstractClass{

……..

}

接口是不包含成员变量和方法的抽象类,它只包含常量和方法的定义。

接口的主要功能是:

不管类的层次,可实现互不相关的类具有相同的行为。

通过接口说明多个类所需实现的方法。

通过接口可以了解对象的交互界面。无需了解对象所对应的类。

接口定义:由接口声明和接口体组成。

程序中的接口定义写成:

interface ActionListener //接口声明

{

void actionPerformed(ActionEvent)//方法定义

=》public abstract void actionPerformed(ActionEvent)

}

这里省略了前面的修饰符public abstract,这是所有接口中的方法的默认值。

接口的实现:接口的实现用关键字implements。

接口不包括任何实现,与存储空间没有任何关系。

如果父类可以不带任何方法和变量定义时,应该选用接口而不用抽象类。

1.3.5包

Java采用包来管理类名空间。包为编程提供了一种命名机制、也是一种可见性限制的机制,面向对象方法的封装机制。

包将类和接口封装在一起,便于大量类的接口的管理,并有利于类和接口的安全。

定义:

用关键字package。在每个类的起始语句加入。

package com.cwch.gzb;

提示:用package语句说明一个包时,该包的层次结构必须与文件目录的层次相同,否则在编译时可能出现查找不到的问题。

使用:

使用一个包中的类时,首先要用关键字import导入这些类所在的包:

import com.cwch.gzb.*;

当包中有相同名字的类,在使用其中的类时,不用import导入,而是直接用带包名的方法使用:

如Date类在java.util.Date包中,可直接引入:

Class myDate extends java.util.Date {

………..

}

提示:java语言的https://www.doczj.com/doc/b113028985.html,ng包是编译器自动导入的,编程时可不用导入,但使用其他包中的类,必须用import导入。

1.4 类成员修饰符、继承、内部类、类库

1.4.1类及类成员修饰符

常用的类成员修饰符:

1.4.2继承

继承是面向对象方法的一种重要基本特征,它使代码可重用,可降低程序复杂性。

Java语言中,所有的类都是通过直接或间接地继承https://www.doczj.com/doc/b113028985.html,ng.Object而得到的。对一个类的继承是指在现有类(父类)的基础上构建一个新类(子类),子类重用(继承)了父类的方法和状态,同时还可以向新类中增添新的方法和状态。

Java不支持多重继承。通过在声明中加入extends子句来创建子类,其格式为:

class SubClass extends SuperClass{

………

}

重写方法必须遵循的两个原则:

子类方法的访问权限比父类方法的访问权限更高;

子类方法不能产生比父类方法更多的异常。

当子类隐藏了父类的变量,并重写了父类方法后,又要使用父类变量或父类被重写的方法,可通过super来实现对父类变量的访问和对父类方法的调用。Super是用来引用当前对象的父类。

Super使用有3种情况:

用于访问被隐藏的父类成员变量,其格式为:super.变量名

用于调用被重写的父类方法,其格式为:super.方法名;

用于调用父类的构造方法,其格式为:super(【参数列表】)

多态性:

面向对象的另一个重要特性事多态性,他是类的继承和封装性结合而引出的。

在java语言中,体现多台性有两方面:静态和动态。

静态的多态性:指编译是调用重写方法的一种机制,即同一个方法用不同参数体现程序不同的调用,这是编译器在编译时自动确定实现。可以说,方法重载体现了静态的多态性。

动态的多态性:指运行时,利用子类继续父类的所有变量和方法功能,凡是程序使用父类的对象都可用子类的对象来代替。运行时,java解释器会按照调用方法的对象类型,确定调用子类或父类的方法去执行。这体现了动态多态性。

1.4.3内部类

在一个类的内部嵌套定义的类称为内部类(Inner Class),与普通类相同,但有如下特点:

通常,使用内部类来生成事件适配器。

1.4.4类库

类库以包的形式组织,是包的集合。

J2SE标准平台由工具软件和java类库(APIs)组成。其中,java编程所必需的默认引用包为lang包,实用工具在util包中,用户界面工具在Swing包和AWT包中。

最基本的包:https://www.doczj.com/doc/b113028985.html,ng包:运行时由java解释器自动引入,程序不用import引入。由接口、类、异常组成。是java语言中最底层的类。

https://www.doczj.com/doc/b113028985.html,ng包括的类有:1、Object类、2、Class类、3、System类、4、Thread 类

Object类:是java所有类的根类,其他类都由它扩展而来。在Object类中定义的方法,其他类都可调用。

Class类:是用于类操作的类。Class对象由java编译器自动生成。隐藏在.class 文件中,它在运行时为用户提供信息,还提供运行时动态装入环境的操作类ClassLoader。

System类:是一个final类,即不能被实例化的类,它主要提供标准输入、输出和系统环境信息。有3个很有用的成员变量:in(标准输入流对象)、out(标准输出流对象)、err(出错流对象)

Thread类:是提供线程操作和管理的类。

实用工具包:java.util包,包括许多常有工具的类和接口。

java.util包括的类有:1、GregorianCalendar日历类、2、Vector类、3、Stack 类、4、Dictionary类==》5、Hashtable类==》6、Properties类

G regorianCalendar日历类:提供日期和时间的表示,它以格里历(即阳历)来计算。

Vector类:实现了动态分配对象列表,使用于可变对象数组的类,它的内存容量可按照需要自动增加。

Stack类:实现先进后出的对象栈,是Vector的子类,它不能直接被访问,只能从栈顶压入或弹出。

Dictionary类:是抽象类,不能实例化去创建一个对象,是关键字和值的数据存储的集合。

Dictionary类扩展出Hashtable类,Hashtable类又扩展出Properties类。

1.5 一维数组

一维数组定义:type arrayName[]或type[] arrayName

定义数组时并不分配内存,如要访问数组中元素必须对数组进行内存分配。数组内存分配是通过new操作符或静态初始化来实现。

定义并创建一个数组对象:type[] arrayName=new type[arraySize]

如:int[] a=new int[5] ===== int a[]=new int[5]

数组的长度:arrayName.length

数组下标:从0开始的整数。

数据边界:0到arrayName.length-1

数组初始化:

1、静态初始化

使用于数组元素的个数较少,而且是初始元素可以枚举的情况。

int a[]={2,3,4,5,6};

2、动态初始化

用new动态初始化时,数组元素的默认值参见下表:

数组的复制:

数组的复制可以用https://www.doczj.com/doc/b113028985.html,ng.System.arraycopy()拷贝,格式:

System.arraycopy(源数组名,从源数组下标的第几位开始,目标数组名,从目标数组下标的第几位开始,复制几位)

调整数组的大小:

Java语言中用一种特殊的类:java.util.ArrayList(数组列表),在运行时能动态自动调整数组大小。ArrayList类在定义数组时,不必限定数组的大小。在数组列表初始化时,可用add()方法将数组元素赋值。

1.6 字符串的操作

在Java中,字符串是作为对象出现的,有https://www.doczj.com/doc/b113028985.html,ng.String和https://www.doczj.com/doc/b113028985.html,ng.StringBuffer

定义,这两类都被定义为final,即参数数据类型。

https://www.doczj.com/doc/b113028985.html,ng.String:处理长度不变的的字符串;

https://www.doczj.com/doc/b113028985.html,ng.StringBuffer:处理长度可变的字符串

1.6.1字符串常量的表示

字符串常量用“”括起来的字符序列。字符串常量可以用来直接初始化一个String对象。字符串长度,即该字符串的个数。如:

String s=“Are you student?”;

int.length=“Are you student?”.length();

1.6.2用String类表示字符串

在Java中String类提供构造方法可生成一个空串,如:String e=new String();

通过字符数组或字节数组来生成一个字符对象,如:

String (char[] value) char chars1[]={…l?,?e?,?s?,?t? };

String (char[] chars ,int startIndex,int numchars)==》char chars2[]={…l?,?e?,?s?,?t? ,?l?};

String s1=new String (chars1);

String s2=new String (chars2,0,4);取数组chars2的字符,从下标0开始取4位

s1与s2均为“lest”

字节也相同:

String (bye[] byes)

String (bye[]byes,int startIndex,int numchars)

1.6.3用StringBuffer表示字符串

可用以下构造方法对可变字符长度初始化:

StringBuffer(); 这是默认的构造方法,为字符串分配16个字符的缓存。

StringBuffer(int length); 该构造方法提供length缓存;

StringBuffer(String str);用str给出字符串初值,并分配16个字符的缓存

凡生成StringBuffer一个对象后,还可用setLength()方法或ensureCapacity()方法来设定缓存大小,并保证其数组元素的初值都为0.

1.6.4字符串的访问

String类包括的方法有:length()、charAt()、indexOf()、lastIndexOf()、getChars()、getBytes()、toCharArray()等。

提取字符串长度

String greeting=”Hello”;

int n= greeting.length();//返回字符串的字符个数n=5

提取字符串中指定字符

char last= greeting.charAt(4);//从字符串0数到4的字符是“t”,将“t”赋给last。

提取字符串中多个字符

Public void getCharsw(int srcbegin,int end, char buf[],int dstbegin ),其中:

srcbegin:指定要提取的第一个字符在该字符串的位置;

end:指定要提取的最后字符在该字符串的位置;

buf:目的字符串存储的数组;

dstbegin:指定提取字符插入目的字符串的位置

查询字符

在字符串中查询指定字符时,可用indexOf();

在字符串中查询指定子串时,可用lastIndexOf();

查询成功,返回所查字符的位置,不成功,返回-1。

1.6.5字符串的修改

对String的修改

因它是固定长度字符串,修改必须通过实例。String提供concat()、replace()、substring()、toLowerCase()、toUpperCase()等方法:

concat(String str):将当前字符串对象与指定str字符串相连;

replace(char oldchar, char newchar):用新字符替换老字符;

substring(int beginIndex):按指定的起始位置获取子字符;

toLowerCase():将字符串中所有字符变为小写;

toUpperCase():将字符串中所有字符变为大写。

对StringBuffer的修改

因StringBuffer类表示可变长度字符串,它可以在字符串中插入字符和在字符串尾加字符,缓存不必管理,Java解释器自动分配。

方法包括:append()、insert()、SetCharAt().

1.6.6字符串的比较

测试字符串是否相等,用equals()方法。

s. equals(t):比较字符串s和t是否相等。

两串相等则返回ture、否则返回false

1.6.7其他操作

键盘读取字符串的对话框

Javax.swing.JOptionPane用于从控制台键盘读入字符串,如:

String input=JOptionPane.showInputDialog(“How old are you ?”);//该对话框带有提示信息。

将字符串对象转换为基本数据类型

int age=Integer.parseInt(input);//将字符串input转换为整数类型

1.7 异常处理

Java语言的类库中提供一个Throwable类,所有的异常对象都必须是它的实例或它子类的实例。

Throwable类是直接从Object类继承来的,是所有异常类的根(父类)。其定义如下:public class Throwable exception Object implement Serializable

它有public Throwable()和public Throwable(String message) 两个构造方法,其中的字符串参数可以利用getMessage()方法获取参数内容。包括方法有:getMessage()、toString()、printStackTrace()、fillStackTrace()。

getMessage():用来返回带参数构造方法是的参数内容,对无参数返回是空值。

toString():用来返回异常的类名和getMessage()能得到的内容,两者用冒号分隔。

printStackTrace():用来在标准输出设备上输出堆栈使用的跟踪。

fillStackTrace():用来在重新抛出异常时对堆栈的跟踪。

Throwable类分为Error和Exception 两个子类。Error类包括动态链接失败、硬件设备和虚拟机出错,通常Java应用程序不会捕获和抛出这类异常,而是捕获和抛出Exception。

异常类型:

按异常处理不同可分为运行异常、捕获异常、声明异常和抛出异常几种。

运行异常:编程时不用定义,运行时由系统捕获后交默认异常处理程序,在标准输出上显示异常内容和位置:这些异常jvm都能自动发现并指出。

A、算术异常:ArithmeticException,分母为0或用0取模都会出现。

B、空指针异常:NullPointerException , 当访问一个空对象、空对象的变量或

方法、访问空数组时都会出现。

C、类选项异常:ClassCastException,当把一个对象强制为某个类,而该对象

又不属于该类(或子类)的实例时。

D、数组负下标异常:NegativeArraySizeException,当数组的长度为负数时。

E、数组索引越界异常:ArrayIndexOutOfBoundsException,要求访问数组中非

法元素时。

捕获异常:要求在程序的方法中预先声明,在调用方法时用try—catch—finally语句捕获并处理,用throws字句声明异常和定义自己的异常类,用throw语句抛出异常。

try{

……可能出现异常的语句

}

Catch(ExceptionName e)

{ …..异常处理}

finally

{ ….释放资源}

声明异常

抛出异常

异常处理原则:

1.8 输入输出以及文件操作

“流”可以看做是一个流动的数据缓存区。数据从数据源流向数据目的地,流的传送是串行的。最常见的数据源始键盘,最常见的数据目的地是屏幕。

文件类File是java.io包中的一个重要的非流类。File以一种系统无关的方式表示一个文件对象的属性。

计算机中的流是流动的数据缓存区

在java中,字符是作为Unicode码来处理的,每个字符用2个字节表示。

Java对I/O访问还提供来同步处理机制,这就是过滤流。

Java的输入输出流包括:字节流(数据流)、字符流、文件流、对象流以及多线程之间通信的管道流。

I/O流的方向

输入输出起到采集数据和提供数据处理结果的双重作用。

输入流:凡是从外部设备流向中央处理器的数据流

输出流:凡是从中央处理器流向外部设备的数据流

java.io包中的接口

处理字节流(数据流):有DataInput、DataOutput接口:

DataInputStream类实现DataInput接口;

DataOutputStream类实现DataOutput接口;

RandomAccessFile类同时实现这两个接口。

处理对象流:有ObjectInput、ObjectOutput接口:

ObjectInputStream类实现ObjectInput接口;

ObjectOutputStream类实现ObjectOutput接口;

处理字符流:有Reader字符输入流、Writer字符输出流

BufferedReader带缓冲区的字符输入流

BufferedWriter带缓冲区的字符输出流

处理文件流:

处理管道流:PipedInputStream和PipedOutputStream

java.io包中的抽象类:

处理字节流的抽象类:InputStream和OutputStream

处理过滤流的抽象类:FilterInputStream和FilterOutputStream ,他们是InputStream和OutputStream的子类。

处理字符流的抽象类:Reader和Writer类

处理压缩流的抽象类:InflaterInputStream和DeflaterOutputStream 非字符输入流

非字符输出流

过滤字节输入流

1.9 线程与对象串行化

进程是由代码、数据、内核状态和一组寄存器组成;

进程是一个内核级的实体,进程结构的所有成分都在内核空间中,一个用户程序不能直接访问这些数据。

线程是由表示程序运行状态的寄存器(如,程序计数器、栈指针以及堆栈)组成。线程不包含进程地址空间中的代码和数据,是计算过程在某一时刻的状态。

线程是一个用户级的实体,线程结构驻留在用户空间中,能够被普通的用户级方法直接访问。

1.9.1Java中的线程模型

线程是程序中的一个执行流。

Java中的线程模型就是一个CPU、程序代码和数据的封装体。

其模型包括3部分:

A、一个虚拟CPU;

B、该CPU执行的代码;

C、代码所操作的数据。

1.9.2线程创建

https://www.doczj.com/doc/b113028985.html,ng的Thread类是多线程程序设计的基础。

一个具体的线程也是由虚拟CPU、代码与数据组成,其他代码与数据构成来线程体,线程的行为由线程体决定。Java中的线程体由线程类的run()方法定义,在该方法中定义线程的具体行为。

线程的开始:从它的run()方法开始;

Java Application的开始:从main()开始;

Applet:从init()开始

两种创建线程的方法:

1、通过实现Runnable接口创建线程

class Hello implements Runnable{

public void run(){…..}

}

2、通过继承Thread类创建

class Hello extends Thread{

public void run(){…..}

}

1.9.3线程的调度与线程控制

Java中的线程是有优先级的,Thread类有3个线程优先级的静态常量:

MIN_PRIORITY:通常为1,最小优先级;

NORM_PRIORITY:默认值5,普通优先级;

MAX_PRIORITY:通常为10,最高优先级。

线程的优先级是MIN_PRIORITY与MAX_PRIORITY之间的一个值,数值越大优先级越高。新建线程将继承创建它的父线程的优先级,一般主线程具有普通优先级。

获取线程优先级:getPriority(); 设定线程的优先级:setPriority();

线程的调度:指在单个CPU上以某种顺序运行多个线程。

Java的线程调度策略:是一种基于优先级的抢先式调度,选择高优先级的线程进行运行。

线程终止运行原因有多种:1、执行Thread.sleep();2、等待访问共享的资源

线程的基本控制

1、sleep():使比其优先级低的线程运行;

2、yield():只让给同优先级线程运行

3、join():

4、interrupt();使线程中断状态被清除

5、currentThread():返回当前线程

6、isAlive():测试线程是否活着

7、stop():强行终止线程,容易造成线程的不一致,建议使用标志flag终止其

他线程运行

8、suspend()与resume():调用t. suspend(),暂停t执行,要恢复,必须用t.

resume():容易造成死锁。建议使用wait()和notify()

1.9.4线程同步

用wait()和notify()可以实现线程的同步,这是实现线程通信的两个方法。

对象的加锁:

Java中对共享数据操作的并发控制采用传统的封锁技术。

一个程序中单独的、并发的线程对同一个对象进行访问的代码段,称为临界区。Java 语言中临界区可以是一个语句块或是一个方法,并且用“synchronized”关键字标识。Java 平台将每个由synchronized(Object)语句指定的对象设置一个锁,称为对象锁(monitor),其对象锁是一种独占的排他锁(exclusive locks):当一个线程获得来对象锁后,便拥有该对象的操作权,其他任何线程不能对该对象进行任何操作。

1.9.5死锁的防治

如果程序要访问多个共享数据,则首先从全局考虑定义一个获得锁的顺序,并且在整个程序中都遵守这个顺序。释放锁时,要按加锁的反序释放。

1.9.6线程状态与生命周期

线程的生命周期主要分为5个状态:新建状态(new)、可运行状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、终止状态(Dead)。

1.9.7对象串行化

对象的串行化:对java对象的读、写的过程称为对象的串行化(Object serialization)对象永久化:将java程序中的对象保存在外存中,称为对象永久化对象的串行化在下列情况下使用:

1、JA V A远程方法调用RMI(Remote Method Invocation)

通过socket进行对象间通信。这种远程对象的互操作中,有时需要传输对象。

2、对象永久化

保存程序中的对象,以便在该程序的日后运行中使用

串行化对象的方法

从一个流重构一个对象首先要完成将对象写到一个流中。

1、把对象写到对象输出流

通过调用ObjectOutputStream类的writeObject()方法实现。

ObjectOutputStream类是一个过滤类,因此,对象流必须在其他流的基础

上进行构造。如下,对象流s在一个文件输出流上构造:

Date d=new Date();

FileOutputStream f=new FileOutputStream(“date.txt”);

ObjectOutputStream s=new ObjectOutputStream(f);

s. writeObject(d);

f.close();

2、从对象输入流读取对象

当已经到对象或基本数据类型的数据写入一个对象流后,可以在以后的操

作中把它们读进内存并重构这些对象。

从对象流中读取对象时使用ObjectInputStream类的readObject()方法。

读对象时要按照它们的写入顺序读取。

Date d=null;

FileInputStream f=new FileInputStream(“date.txt”);

ObjectInputStream s=new ObjectInputStream(f);

d= (Date) s.readObject();

f.close();

System.out.Println(“d:”+d.toString());

构造可串行化对象的类

一个类只有实现了Serializable接口,它的对象才是可串行化的。

在实现Serializable的类中,静态变量和使用transient关键字可以使某些数据不被串行化。

串行化中对敏感信息的保护

最简单的方法是把一个类中包含敏感数据的成员变量(或称为域)定义为private transient。

Transient和static类型的数据项不能进行串行化和反串行化。

1.10 编写图形用户界面

Java的图形用户界面技术经历了两个发展阶段,分别通过提供AWT开发包和Swing 开发包来体现。

AWT和Swing的三点思路:

1、界面中的构件如何放置;

2、如何让构件响应用户的操作;

3、掌握每种构件的显示效果和响应用户操作

1.10.1用AWT编写图形用户界面

抽象窗口工具包AWT(Abstract Window Toolkit)是java提供的建立图形用户界面GUI的开发包,AWT可用于java的Applet和Application中。

其支持图形用户界面编程的主要功能包括:

用户界面构件;

事件处理模型;

图形和图像工具,包括形状、颜色和字体类;

布局管理器,其与特定窗口尺寸和屏幕分辨率无关;

数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴

Java.awt包提供来三个概念:

构件(Component);2、容器(Container)、3、布局管理器(LayoutManager)

构件不能独立地显示出来,必须将构件放在一定得容器中才可以显示出来。所有构

件都可以通过add()方法添加到容器中。

容器本身也是一个构件,具有构件的所有性质,还具有放置其他构件和容器的功能有3种类型的容器:Window、Panel、ScrollPane常用的有Frame、panel、Applet panel即时容器又是构件

布局管理器是用来管理构件放置在容器的位置和大小。每个容器都有一个布局管理器。通过setLayout(null)取消布局管理器。

FlowLayout是Panel和Applet的默认布局管理器。

AWT事件处理模型

事件处理涉及3类对象:

1、事件(Event);

2、事件源(Event Source);

3、事件处理者(Event Handler)

使用授权处理模型进行事件处理的一般方法:

1、对于某种类型的事件XXXEvent,要接收并处理这类事件,必须定义相应的事件处理类,该类需要实现与该事件相对应的接口XXXListener;

class ButtonHandler implements ActionListener{…}

2、事件源实例化以后,必须进行授权,注册该类事件的监听器,使用AddXXXListener(XXXListener)方法来注册监听。

Button b=new Button(“保存”);//事件源实例化

b.AddActionListener(newButtonHandler());//授权,注册事件监听器

事件类

java.util.EventObject类是所有事件对象的基础父类。所有事件均由它派生出来。

与AWT有关的所有事件类都由java.awt.AWTEvent类派生出来,也是EventObject 类的子类。

AWT事件分为两大类:低级事件和高级事件

事件监听器

1、注册监听器

add(Listener)

2、注销监听器

remove(Listener)

AWT构件库

1.10.2用Swing编写图形用户界面

Swing是由纯java实现的轻量级构件,没有本地代码,不依赖操作系统的支持。

Swing采用了一种MVC的设计范式,即“模型-视图-控制”(Model-View-Controller),其中:

模型:用来保存内容;

视图:用来显示内容;

控制器:用来控制用户输入。

Swing是JFC(java Foundation Classes)的一部分。

几乎所有的Swing构件都在swing包中,只有JTableHeader和JTextComponent是例外。JTableHeader在swing.table包,JTextComponent在swing.text包中。

Swing构件以“J”开头

在一个MVC用户界面中,存在三个通信对象:模型、视图和控件:

模型是指定的逻辑表示法;

视图时模型的可视化表示法;

控件则指定了如何处理用户输入。

1.11 Applet程序设计

Applet是java与web相结合而引入的一种重要的java应用形式。

Applet是能够嵌入到HTML页面中,并能够在浏览器中运行的java类。

Applet自身不能运行,必须嵌入在其他应用程序(web浏览器或java appletviewer )中运行。

Applet与Application的主要区别在执行方式上:

Application以main()方法为入口点运行,Applet要在浏览器或appletviewer中运行。

Applet的运行过程经历4个步骤:

1、浏览器加载指定URL中的HTML文件;

2、浏览器解析HTML文件;

3、浏览器加载HTML文件中指定的Applet类;

4、浏览器中的java运行环境运行该Applet。

Applet的生命周期:包括Applet的创建、运行与消亡。

Applet是一个面板容器,它默认使用Flow布局管理器。

Applet的关键方法:指生命周期方法和Applet显示方法

生命周期方法:init()、start()、stop()、destroy()

init():装载Applet是被调用;

start():在init()方法之后被调用;当浏览器重新返回Applet所在页面时,将调

JAVA程序设计课程教学大纲

课程编号: “Java语言程序设计”课程教学大纲 Java Program Design Course Outline 60学时3学分 一、课程的性质、目的及任务 Java语言程序设计是计算机科学与技术专业软件方向的一门必修课程。通过本课程的教学,深化学生面向对象的编程设计思想和新一代程序设计的逻辑思维方式,提高学生在软件设计过程中分析问题和解决问题的实际动手能力,使学生的理论知识和实践技能得到共同发展。通过对Java语言及基于Java语言的程序设计的教学,培养学生用Java进行面向对象程序设计的能力。 要求掌握Java的基本语法、面向对象的语言特性、例外处理、applet、图形用户界面、多线程、输入输出、网络编程、JDBC以及面向对象程序设计的主要原则和方法。 二、适用专业——计算机科学与技术 三、先修课程——C++程序设计 四、课程的基本要求 通过本课程的学习,学生应能达到下列要求: (1)了解JAVA语言的基本语法。 (2)熟悉JAVA编程开发环境如JDK1.4和JCreator的安装、配置和使用。 (3)掌握一般图形用户的设计和事件处理机制。 (4)掌握Java实现多线程、流式输入输出的方法。 (5)掌握与数据库连接的方法。 (6)掌握网络编程的基本思想和方法。 (7)能比较熟练地用JAVA语言进行一般的程序设计,培养良好的编程风格和习惯。 五、课程的教学内容 (一)课堂讲授的教学内容 1.Java和面向对象概述 Java语言概述,面向对象软件方法概述,面向对象的基本概念。 2.Java运行环境 安装并配置Java平台,Java集成开发环境,Java程序的结构。 3.Java语言基础 Java的关键字、标识符,数据类型,常量与变量,运算符,流程控制语句。 4.类和对象 基本概念,类,方法,访问控制符,静态修饰符、静态字段和静态方法,抽象类与抽象方法,最终类、最终属性与最终方法。 5.继承 继承的概念,扩展类,多态与动态绑定,构造函数的继承与重载,包,接口。 6.字符、字符串和数组

《视觉设计基础》课程大纲

《视觉设计基础》课程教学大纲 课程编号: 091310114 课程名称:视觉设计基础 英文名称: Visual Design Statements 课程性质: 专业课 总学时: 48 学分:3 适用对象: 视觉传达设计专业二年级学生 先修课程:素描、造型基础 一、编写说明 (一)本课程的性质、地位和作用 平面设计是通过视觉图像载体传递表达一定的信息,平面设计也是符号设计的过程,即提炼符号、表现符号和再译符号的过程。本课程以符号学的研究成果为理论指导,探究视觉传达的基本原理、方法和多种可能性,激发学生的创造思维,培养他们用视觉语言传递信息和发现问题、解决问题的综合能力。 符号学是艺术设计学学科领域中的一门重要学科,因此,对符号的学习研究,探讨其本质特性,能够更准确的运用符号学原理进行平面设计创作。通过对本课程符号学原理的学习与设计实践,有利于学生深化对平面设计内涵的理解,从而进一步了解设计的本质并且有效地掌握科学的设计方法。 (二)教学基本要求 1.强调掌握符号学方法论知识体系,要求学生能够分析平面设计中作为符号现象存在的设计元素,充分理解平面设计中的符号结构构成。 2.重点以符号学原理的应用设计为主,在课题设计实践中运用所掌握的基础理论知识。 3.课题的设置必须调动学生的创造热情,具备一定的挑战性和趣味性。 (三)课程教学方法与手段 课堂教学包括理论知识讲授、讨论、多媒体观摩作品、审定草图、作业讲评与指导等。(四)实践环节 本课程实践环节主要是各个教学单元讲授内容相对应的课题作业: 1.名称:(1)前期课题调研(2)草图(3)上机 2.主要内容与要求:(1)对课题进行前期的案头工作,通过各个信息渠道对文献资料进

Java基础知识总结(超级经典)

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它

两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运

Java基础知识

一、填空题(每题1分,共50分) 1.Java程序可以分为两种基本的类型,分别是_________________和_________________。 2.如果一个类不显示地写上其继承的父类,则它的默认的直接父类是系统类_______________。 3.Java对内存的释放是采用____________________机制。 4.接口的所有成员方法都具有________________和________________属性。 5.设有一个Java应用程序,其源程序文件名为Test.java,则编译该源程序的命令是_________________________,运行该应用程序的命令为_________________________。 6.如果线程类A需要继承类B,而类B不是线程类,则需要通过接口类Runnable构造线程类A,类A的具体定义为 ___________________________________________________。 7.Java系统提供了方法____________________来强制立即回收垃圾。 8.运行以下语句后b的值是__________________。 String s1=“1234”; String s2=new String(“1234”); Boolean b=(s1 = = s2); 9.通过Connection实例对象的_____________________方法可以创建出Statement的实例对象。 10.JAVA小应用程序一般是_____________的子类。 11.JAVA语言通过____________机制简化了程序的内存管理。 12.JAVA字符(char)采用的是___________字符集。 13.面向对象的计算机语言一般应具有3个基本特性:____________、____________和______________。 14.JAVA语言中,捕获异常是通过________________语句结构来实现的。 15.编写线程程序主要是构造线程类,而构造线程类的方式主要有以下两种:(1)____________________________________________ (2)____________________________________________ 16.假设用JAVA语言为清华大学(网址为https://www.doczj.com/doc/b113028985.html,)编写了图像处理包image,那么按照SUN公司的建议,这个包的名称最好为_________________。 17.JAVA数据类型中,具体包括哪三种引用数据类型:___________、____________、______________。 18.JAVA程序以________为单位进行组织的。 19.如果没有显式的定义类的构造方法,则系统会为该类定义一个默认的构造方法,这个默认的构造方法的作用是_____________________________________。

java课程教学大纲

课程教学大纲编写体例: 《java语言程序设计》课程教学大纲(供计算机科学与技术专业使用) 一、前言 《Java语言程序设计》是计算机科学与技术专业的一门专业课程。Java语言是面向对象技术成功应用的著名范例,集平台无关特性、安全机制、高可靠性和内嵌的网络支持于一身的特色使之成为当前编写网络程序的首选工具之一。 本课程选用教材为《Java2实用教程》(耿祥义等编著清华大学出版社),主要介绍Java编程的基础知识和Java的面向对象编程。学生在学习本课程之前应具备计算机操作知识及一定编程基础。 前期课程:计算机基础知识、C++程序设计、数据结构教学任务与目标:通过教学,使学生能够熟练掌握面向对象编程的技术,能运用java程序设计语言编写应用程序,培养学生的实践能力和创新能力。 总学时:54。 学分: 主要教学形式:课堂教学、实验教学 二、教学内容与要求 第一章Java语言入门 (一)教学目的与要求

1、了解Java的发展历史 2、掌握Java语言的特点 3、熟悉Java的开发过程与运行环境 (二)教学内容 本章主要讲述了java 语言产生的背景、面向对象程序设计的特点、应用java语言进行程序设计的开发环境和过程等。并举例说明。 (三)教学形式与方法 课堂讲授结合多媒体影视课件教学、并在课堂进行实例演示。 第二章标识符、关键字和数据类型(一)教学目的与要求 1、了解标识符、关键字的概念 2、熟悉Java中标识符的命名规则 3、掌握Java语言的基本数据类型并会灵活运用 (二)教学内容 对照C语言学习java语言程序中的标识符和关键字的概念、意义等,详细学习java中的八种基本数据类型 (三)教学形式与方法 课堂讲授结合多媒体影视课件教学、并在课堂进行实例演示。 第三章运算符、表达式和语句 (一)教学目的与要求 1、了解运算符、表达式和语句的概念 2、掌握Java语言的语句的基本语法

艺术设计基础考试大纲

《设计基础课程》 自学考试大纲 目录 第一部分课程性质与设置目的 第二部分课程内容和考核目标 第一章绪论 ; 课程内容 考核目标 第二章设计艺术的发展、分类及特点 课程内容 考核目标 第三章平面设计艺术鉴赏 课程内容 考核目标 第四章现代设计艺术鉴赏 课程内容 '

考核目标 第五章环境设计艺术鉴赏 课程内容 考核目标 第六章工业产品设计鉴赏 课程内容 考核目标 第七章传统与民间工艺鉴赏 课程内容 考核目标 — 第三部分有关说明与实施要求 第四部分附录:题型举例

第一部分课程性质与设置目的 … 一、课程性质与特点 设计基础课程是高等教育自学考试美术设计教育专业(专科)的必修课,是美术设计教育专业的一门基础理论课程。本课程为设计的基础性课程,主要是对平面设计艺术、现代设计艺术、环境设计艺术、工业产品设计艺术、传统与民间工艺等设计类别进行基本理论的讲述,以及对优秀作品进行概述、欣赏、评析。介绍各领域一些著名设计师的设计思路与设计方法,领会设计师们考虑问题的角度。课程涉及设计艺术史、设计艺术批评和美学等艺术学科知识,但也有别于其他史论课程,有较强的实践性,课程用大量的设计艺术作品给鉴赏者以强烈的感性冲击。从案例中生成美的感觉、美的情趣、美的意识。 二、课程目的与要求 本课程的设置目的与要求在于以通过介绍各领域设计艺术的基本理论知识、欣赏优秀作品、分析重点设计作品,强化学生对基本知识的理解、设计艺术作品的鉴赏能力、设计艺术审美能力,以及扩展设计的视野。 三、教材的第二、三、五和六章是考核重点。第二章是论述了设计艺术的发展、分类及特点,通过设计艺术门类的变化来考察现代设计艺术的历史演进规律同时便于实践。第三、五和六章分别对设计艺术的主要门类:平面设计艺术、环境设计艺术、工业产品设计艺术三门进行基本理论阐述和作品鉴赏分析,这几部分是设计艺术的主要组成部分,鉴赏这些作品也能够掌握整个设计艺术的概貌。 "

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

《JavaEE程序设计》课程教学大纲

《Java EE程序设计》课程教学大纲 英文课程 名称 Java EE Programming 总学时48学分 3 课程编码0809412005 理论 学分数 2 实验 学分数 1 适用专业软件工程先修课程 JAVA面向对象程序设计,Java高级 程序设计 课程 类别 □学科基础(必修)□专业核心(必修)■专业方向(限选)□任选 一、课程支撑的毕业要求及其具体指标点 1、支持毕业要求3:能够设计针对复杂工程问题的解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 具体指标点为:3.1掌握程序设计理论与方法,具备软件开发技能;3.2具备在他人指导下进行软件系统设计与开发能力 通过本课程学习,使学生理解和掌握JAVAEE程序设计方法,建立起牢固扎实的理论基础,掌握使用JAVAEE编程技术针对复杂工程问题进行程序分析和设计的能力。通过本门课程的学习,使学生初步掌握基于JAVAEE的企业项目设计能力,能够从事基于JAVAEE的企业级项目开发。 2、支持毕业要求4:能够基于科学原理并采用科学方法对复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。 具体指标点为:4.2 在他人指导下,根据软件需求规格,进行过程、组件或模块设计和UI设计,且有能力对结果进行测试与评估;4.3能够理解、评估相关的需求、架构和软件文档;能够遵循编码规范完成编码;4.5在他人指导下,完成软件工程某一应用领域(专业方向)的系统分析、设计和实施。 通过本课程学习,让学生理解和掌握基于JAVAEE企业软件设计方法,有能力对复杂工程问题进行需求分析与评估;掌握软件项目分层设计理论与方法;掌握软件行业的基本编码规范,有能力在一定指导下分析、设计并实施基于JAVAEE 的系统软件开发,用以解决具体领域如操作系统、网络通信、数据库等的应用问题。 3、支持毕业要求5:能够针对复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。 具体指标点为:5.1掌握软件开发过程中所使用的工具和方法;5.2 能够了解软件开发过程中所使用的多种工具、技术资源和方法,并能针对具体复杂工程

《UI设计基础》课程教学大纲

《UI设计基础》课程教学大纲 课程名称:UI设计基础User Interface Design 课程类别:专业教育选修课程开课单位:设计艺术系课程编码:23113045 总学时数:32 学分:2 适用专业:视觉传达设计先修课程:图形创意等 考核方式:操作 一、课程内容 理论部分: (一)认识界面 1、UI概述 2、图形化的界面 (二)人机界面 1、回归人性的界面设计 2、为用户而设计 3、人机工程学 (三)界面的整体设计 1、分析阶段 2、实施阶段 3、界面视图 (四)界面的视觉设计 1、界面设计的基本途径 2、界面的信息设计 3、图标设计

4、界面布局与元素设计 (五)网页界面的设计 1、网页界面的认识 2、网页界面系统 3、网页界面信息传达 (六)游戏界面的设计 1、游戏界面的概述 2、游戏平台的视频界面设计 1 3、游戏平台的操作界面设计 4、游戏界面的音频设计 (七)软件界面的设计 1、软件界面设计的整体思考 2、软件界面的文本、图形 3、为“交互”服务:角色、场景和礼貌 (八)便携电子产品界面的设计 1、便携电子产品界面的概述 2、便携电子产品界面设计的特殊性 3、便携电子产品界面的视觉要素分析实践部分: 实践一网页界面设计 实践二游戏界面设计 实践三电子产品界面设计 二、大纲说明

(一)课程的性质和任务 UI设计是一门新的学科,也称之为当代的新媒体,是在各门相关学科中提取相关的内容要素而综合起来的系统学科。UI设计是视觉传达设计专业的专业选修课程之一,是在继专业设计课程基础上的延续和提高,全面的完善了设计专业学生的专业素养。课程实践中注重对各专业基础课程的统合和整体应用。 (二)课程教学的基本要求 通过对本课程的学习,使学生从心理学、人机工程学、设计艺术出发,掌握硬件人机界面与软件人机界面方法、理论与设计实例,探索新的交互技术,熟悉UI 设计的流程与特点,并运用ADOBE PHOTOSHOP、indesign等设计软件完成其视觉表现,独立完成UI设计的全过程。 (三)课程内容各层次的教学重点、难点、教学环节及教学方法的建议 教学重点、难点: 1(认识界面 重点:了解界面 难点:概念性的认识,图形化的界面 2(人机界面 重点:人性的界面设计 2 难点:为用户而设计的理解,界面设计中的人机工程 3.界面的整体设计 重点:分析阶段、实施阶段、用户分析、市场与目标分析 难点:对象的模型化、界面视图的设计、界面整体设计的分析以及实施 4(界面的视觉设计

Java程序设计教学大纲

《Java语言程序设计》课程教学大纲 英文名称:Java language program designing 课程编号:0812133 课程类型:任选 学时/课内实践学时:32 学分:2 适用对象:通信工程专业本科生 先修课程:计算机基础、C语言程序设计基础 使用教材及参考书: 教材: Java语言程序设计(基础篇),Y.Daniel Liang著,机械工业出版社 一、课程教学目标及学生应达到的能力 通过全面、系统地介绍Java语言的基础知识、运行机制、编程方法和技术,使学生理解面向对象的程序设计思想,掌握图形用户界面程序的特点和设计方法。培养学生用“计算机思维”方式进行计算机编程,使学生能够运用Java语言作为一种思维工具解决处理现实问题,启发学生的创新意识,提高学生在程序设计过程中分析问题和解决问题的能力。二、课程内容和基本要求 第一章引言 1.教学内容: 1.1 简单的Java语言程序介绍 1.2 Java语言程序的结构 1.3 Java语言程序的创建和执行过程 2. 教学目的及要求: 1)掌握IDE开发工具Eclipse的使用方法 2)掌握编写与运行 Java程序的方法 3)了解Java语言的概貌 4)为学习 Java语言和进行 Java程序的实验做好准备工作 3. 教学重点及难点: 1)Java语言的基本结构

2)Java程序设计的上机步骤 第二章基本程序设计 1. 教学内容: 2.1 基本数据类型 2.2 常量 2.3 String类型 2.4 数据的输入 2.5 程序设计风格 2. 教学目的及要求: 1)掌握Java的数据类型 2)掌握各种变量的声明方式 3)掌握运算符与表达式使用方法 4)掌握利用控制台和JOptionPane类进行输入输出的方法。 3. 教学重点及难点: 1) String类型的声明和使用 2) 值类型和引用类型的区别 3)控制台和JOptionPane类进行输入输出的方法 第三章数组 1.教学内容: 3.1 一维数组的声明和创建 3.2二维数组的声明和创建 3.3 针对数组的程序设计 3.4 数组应用示例 2.教学目的及要求: 1)掌握一维数组和二维数组的定义方法 2)掌握一维数组的程序设计方法 3)了解二维数组的程序设计方法 4)了解数组作为方法的参数的用法 3.教学重点及难点: 1)数组对象的创建和引用 2)数组作为方法的参数的用法 第四章类的设计 1. 教学内容: 4.1 面向对象的程序设计概述

平面设计基础课程教学大纲

Photoshop平面设计课程教学大纲 课程名称:Photoshop平面设计/Based graphic design and animation 课程代码:课程类型:方向课 适用专业:11计算机网络技术先修课程:计算机基础 学时数:48 其中:实验/实践学时数为48 学分数:3 考核方式: 编制单位:编制时间:年月日 执笔者:审核人: 一、教学大纲说明 (一)课程教学的目的和要求 目的:平面设计与动画基础是计算机专业的重要专业基础课程。它是利用计算机进行平面设计、多媒体应用软件开发制作等的重要基础课程。对平面图形处理技术的掌握,直接关系到学生后续课程的学习效果,对学生毕业后就业从事相关工作也有重要意义。使学生了解平面设计和动画领域的有关基本概念,认识并能熟练使用平面设计软件Photoshop和Flash,掌握平面设计技巧,并能使用平面设计软件和动画软件进行软件界面设计和平面广告制作。提高学生的艺术修养,培养团结合作精神,为培养高素质的技能应用型人才服务。 为学生利用图形图像处理软件进行各类艺术设计打下基础,使他们具有进一步学习相关知识的能力。本课程强调软件操作能力与实际应用设计的能力。 要求:通过本课程的学习,使学生掌握图形图像处理软件的知识和技术,在此基础上,提高分析问题和解决问题的能力;提高学生的艺术修养,为艺术设计做好铺垫;具备较强的实践能力、创新能力和创业能力。 (二)课程教学方法 教学环节包括:课堂讲授及习题课、课外作业、实验等 1、课堂讲授 (1)教学方法: 通过介绍使学生了解平面设计和动画设计领域的发展趋势和有关概念;引导和鼓励学生通过实践和自学获取知识,增加现场课等教学环节。

java基础知识分析

Java 思路 1写代码 1)明确需求,我要做什么? 2)分析思路。要怎么做?1 2 3。 3)确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4)代码实现。用具体的java语言代码把思路体现出来 2学习新技术的四点 1)该技术是什么? 2)该技术有什么特点(使用注意) 3)该技术怎么使用。Demo 4)该技术什么时候使用?test。 一Java 概述: 1991年San公司的JamesGosilng(詹姆斯·高斯林) 等人开始开发名称为Oak的语言,希望用于控制嵌入在有线电视交换盒,PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构; JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对wep程序的开发 JAVASE: Java Platform Enterprise Edition, 完成桌面应用程序的开发是其他两者的基础; JAVAME: Java DevelopmentKit, java的开发和运行环境,java的开发工具jre;

JDK, JRE: 1JDK:java DevelopmentKit , java的开发和运行环境,java的开发工具和jre。 2JRE:java Runtime Environment, java程序的运行环境,java运行的所需的类库+JVM(java 虚拟机)。 3配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 1) 永久配置方式: JAVA_HOME=%安装路径%\Java\jbk Path=%JAVA_HOME%\bin 2) 配置临时方式: setpath=%path%C:\ProgramFiles\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置路径下找。 classpath的配置: 1)永久配置方式:classpath=.;c:\;e:\ 2)临时配置方式:setclasspath=.c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况: 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件。如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1)如果classpath的值结果有分号,在具体路径中没有找到运行的类,会默认在前目录 在找一次。 2)如果classpath的值结果处没有分号,在具体路径中没有找到运行的类,不会再当前 目录找。 一般不指定分号,如果没有在指定目录下找到想运行的类文件,就报错,这样可以调试程序4javac命令和java命令做什么事情呢? 要知道java是分两部分的: 一个人是编译,一个是运行。 Javac: 负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java 文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件也就是java的运行程序。 Java: 负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行. 一个文件要被执行,必须要有一个执行的起始点就是main函数(也叫方法)。

JAVA课程设计大纲

淮海工学院 课程设计教学大纲 课程名称:面向对象课程设计 开课系部:软件工程 撰写人:纪兆辉 审核人: 修(制)订日期:2008年3月 系(院)主管领导签章: 淮海工学院教务处

面向对象课程设计大纲 课程类别:必修学时:40 课程性质:集中实践教学学分:2 适用专业:软件工程、网络工程开课系部:软件工程 一、基本目的与任务 面向对象课程设计是软件工程、网络工程专业实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。其目的在于加深对面向对象理论和基本知识的理解,掌握使用Java语言进行面向对象程序设计的基本方法,提高运用面向对象知识解决实际问题的能力。基本任务是使得学生通过课程设计掌握利用java进行底层的网络应用程序设计、多媒体应用设计、JDBC编程的基本方法,学会综合利用awt包和Swing组件包进行图形用户界面的设计,同时,对java的事件委托模型、异常处理机制、包和接口的概念及多线程技术有比较熟练的把握。 二、教学基本内容 正确运用常用的包、工具类和算法,熟练进行对象类的定义和使用,综合运用图形界面元素构造应用程序界面,熟悉Applet的工作原理,熟练编写Java应用程序和Applet小程序。对网络编程、多媒体编程、JDBC技术能有较全面准确的把握并会综合运用解决实际问题。 在课程设计中,为了提高开发效率,建议尝试选用开发工具Eclipse、NetBeans、Jbuilder。设计的选题要围绕Java的面向对象特点,把如下一些知识点的运用组织到课程设计的选题当中: 包、接口、抽象类 常用工具与算法--数组、向量、字符串、链表等 Java的多线程技术与动画制作 Java的网络编程 Java的数据库连接技术---JDBC Java的异常处理机制 面向对象技术中的继承、重载、各种修饰符

《设计基础Ⅰ1305203239》教学大纲

《设计基础Ⅰ》教案大纲 适用专业:艺术设计(视觉传达)课程编号: 前修课程:素描色彩学分:总学时: 一、课程性质、目的与要求 课程性质:专业基础课 课程目的:通过本课程的学习,使学生了解平面构成、色彩构成的基础知识。又通过大量相关课题的训练,使学生熟练掌握二维平面构成规律及方法,色彩的心理功效、视觉规律及调和配置的方法,为将来艺术设计专业的灵活运用打下坚实的基础。 教案要求:通过学习,要求学生学会运用和掌握平面、色彩构成的设计方法、规律和技巧,提高学生的二维空间的形象思维能力、对色彩的感知能力、创造思维能力和对作品的表现能力。 二、教案内容理论总学时:学时 第一章:平面、色彩构成的基础理论学时 基本要求:通过设计构成基础知识的学习,使学生了解相关知识内涵,及相关的学习方法和构思方法,为后面章节的学习奠定基础。 重点:平面、色彩构成的基本含义及学习方法 难点:设计构成中抽象语言的表达 第二章:平面、色彩构成的要素及规律学时 基本要求:使学生通过学习,掌握点、线、面、色、光等基本要素的构成规律及法则,同时提高学生的抽象造型能力、画面组织能力,了解色彩的物理、心理、生理功效,色彩调和搭配能力以及灵活运用能力。 重点:掌握平面、色彩构成的基本要素及规律 难点:设计构成规律的灵活运用 第三章:色彩的调和、解构与重组学时

基本要求:使学生了解并掌握色彩调和、解构与重组的方法与技巧,提高学生对色彩的感知能力以及对色彩的联想和创意能力。 难点:色彩的调和 重点:色彩的解构与重组 第四章:平面、色彩构成与设计应用学时 基本要求:要求学生把所学的平面、色彩构成的知识灵活运用到艺术设计中,使它们在艺、术设计作品中发挥作用。 重点:对平面、色彩构成知识的全面、综合掌握 难点:综合知识的灵活运用 三、实践环节或相关课程实践总学时:学时

Java基础知识总结

基础预备:低级基础 1.1 java基本类型 byte(字节) short(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char(字符型) boolean(布尔型) 1.2值传递和引用传递的区别 值传递:实参初始化形参,两个存储单元不同,不影响实参的值 引用传递:实际参数与形式参数指向同一个地址,形式参数的改变将会影响实际参数1.3当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传递。方法调用该对象引用的参数,参数被改变,但是引用不会改变 1.4 &和&&的区别。 &和&&都是逻辑「与」,&&只要第一个表达式是false就不会计算第二个表达式 &也可以作为运算符 2.1使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变 引用变量不能变,引用变量所指向的对象中的内容可以改变 2.2final类型可不可以不初始化,如果没有初始化的final类型应该在哪里初始化? final一定有初始值,没有初始化叫空白final 如果没有需要声明之后在其构造器中赋值 2.3 "=="和equals方法究竟有什么区别? 「==」是看两个对象引用是否指向同一个对象 「 equals() 」是比较两个对象的内容是否相等 3.1静态变量和实例变量的区别 静态变量的变量前加了static 的修饰,其中一个对象将它值改变,其他对象得到的就是改变后的结果; 实例变量的变量前没加static 的修饰,某一个对象将其值改变,不影响其他对象

3.2是否可以从一个static方法内部发出对非static方法的调用?为什么? 不可以。使用非static方法需要先创建对象,而使用static方法则不用 4.1 java中什么是自动装箱与拆箱呢? 自动装箱是某地方需要Integer类型,你传int类型会自动生成Integer, 反之Integer变int,就是自动拆箱 4.2 int 和 Integer 有什么区别 Int是基本数据类型,Integer是int的封装类。 原始类型封装类 Boolean Boolean Char Character Byte Byte Short Short Int Integer Long Long Float Float Double Double 5.1请说出作用域public, protected,以及不写时的区别 不写是表示friendly。 作用域当前类同一package 子孙类其他package public √√√√ protected √√√× friendly √√×× private √××× 6.1能不能自己写个类,也叫https://www.doczj.com/doc/b113028985.html,ng.String? 可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载jre.jar包中的那个https://www.doczj.com/doc/b113028985.html,ng.String。 7.1 排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 冒泡,选择,插入,快速 冒泡排序:

java基础知识点

第一天课程(2012-7-10) JAVA常用的名词 JVM java 虚拟机 Application 应用程序必须有一个入口的方法叫做public static void main(String[] args){} Applet 小应用程序该程序必须要内嵌在一个容器中运行,它有自己的生命周期 重点: JAVA的开发环境 JDK: java 开发工具集 JDK版本问题1.4不支持泛型5.0 泛型 6.0枚举 默认安装路径C:\Program Files\Java\ JRE: JAVA运行时环境 环境变量的配置 (1)Path:window寻找可执行应用程序的一个查找路径不同的路径之间使用; 来分隔 配置一个路径C:\Program Files\Java\jdk1.6.0_26\bin (2)CLASSPATH 告诉系统到那些目录下面去查找对应的要执行的文件 .;D:\3020\j2se\cx\chapter1 .表示当前目录 预习作业: 常用的DOS命令 切换目录查询文件拷贝文件重命名移动文件 *表示通配符*.java *.* 常用java命令 Javac 编译命令主要将以.java结尾的Java文件编译生成以.Class结尾的二进制字节码文件。 Javac java文件名.java Java 运行命令java 类名 Javadoc生成帮助文档命令 javadoc java文件 面向对象的基本概念

类 (属性方法构造方法 ) 对象对象创建传递销毁 面向对象的三大基本特性:封装、继承、多态 OOP AOP 类 是由客观事物经过大脑抽象而形成概念,是对一类事物的描述 使用class 关键字来描述类 类中有属性和方法: 属性对应的是事物的静态特性(可以叫做成员变量) 方法对应的是事物的动态特性 对象:是类的一个具体的实例化 创建对象对象的方法: 类名对象名= new 类名(); 调用类的构造方法来创建对象构造方法是特殊的方法:方法名=类名 注意: 类中属性和方法必须在创建对象之后才能使用 对象.属性对象.方法.表示引用 第二天课程 (2012-7-11) JAVA语言描述 类的声明 语法格式: [< modifiers>] class < class_name> { [] [] } 修饰词class类名{ 属性定义部分<可选> 构造方法 <可选> 普通方法 <可选> } 用于修饰class的关键字有两种:(1) public 公共的 (2)缺省不写表示当前类只能在同一个包中使用 注意点:(1)一个java文件中最多只能有一个类被public 修饰,并且要求使用public

JavaWeb方向课程体系教学大纲

JavaWeb方向课程体系教学大纲 本课程体系模块如下: 1.Java面向对象程序设计 2.Java Web应用开发 3.Orcale数据库 4.J2EE框架技术– Struts 5.J2EE框架技术– hibernate 6.J2EE框架技术– spring 7.实战项目

Java面向对象程序设计 一、课程目标 掌握Java语言基础知识 理解面向对象的编程思想 运用Java编写命令行程序 运用Swing编写图形用户界面程序 运用JDBC编写数据库访问程序 运用Swing和JDBC实现C/S结构的应用程序 二、课程对象 长训班学员 短训班学员 三、预备课程 软件技术基础 计算机基础 程序设计和C 语言实现 四、课程学时 理论课上机课项目实战总学时 52 68 40 160 五、相关的项目案例 网络银行系统 连连看游戏项目 聊天室项目 六、课程地位 本课程作为Web方向的基础课程 本课程作为Android方向的基础课程 七、课程知识点 第1 章、Java 简介

1.了解 Java 语言 2.了解 Java 的特点 3.了解 Java 程序的类型 4.理解 Java 虚拟机 (JVM) 5.掌握 Java 程序的运行环境 第2 章、面向对象的程序设计 1. 了解Java中的程序设计简史 2.掌握对象、类、Java中类、属性、方法的定义 3.掌握类的构造器的定义,及创建对象中的作用 4.掌握信息的隐藏,信息的封装 5.掌握Java源文件的基本结构 6. 了解Java常用的包掌握创建和导入包的方法 7. 学会查阅Java API 文档 8.掌握面向对象编程的术语 第3 章、 Java 基础 1、掌握Java中的变量、运算符、表达式 2、掌握Java中的成员变量/局部变量 2、掌握Java中的值传递 3、掌握 Java编码规范 4、掌握Java中的分支语句、循环语句、break, continue语句的流程及使用特点 第4 章、数组 1、掌握数组的概念、数组的声明、数组的初始化 2 、学会数组排序、数组拷贝 3、掌握二维数组的使用 4、了解多维数组 第5 章、面向对象程序设计进阶 1.掌握继承、访问控制、方法覆盖的概念及应用特点 2.掌握Java中的super关键字、this关键字、的概念及在对象的构造和初始化分析、重载 的应用特点 3.学会使用Java中的封装类、==和equals()、toString()方法 第6 章、高级类特性 1、理解Java中的static变量、方法和初始化器 2 、理解Java中的final类、方法和变量 3 、理解Java中的abstract类和abstract方法 4 、理解Java中的模板设计模式 5 、理解并学会使用Java中的接口的概念、接口的继承、实现接口, 6、理解并学会使用Java中的多态概念 7、学会使用java中的虚方法调用、instanceof运算符、对象的造型(cast) 8、了解java中的内部类、修饰符的适用范围

ISEC设计基础(下)大纲

设计基础(下) Syllabus I.Course Description课程描述 设计基础(下)是艺术设计学科的专业基础课程之一,是从绘画性色彩转向设计性色彩的过渡课程。在写实性色彩原理的基础上逐步转向设计色彩的研究,进而认识理解设计色彩的特征,重点学习色彩分解、限制色彩、以及装饰性色彩和意向性色彩的特征及表现方法。以此强化设计意识,提高设计色彩的应用能力,为进入专业学习奠定良好的基础。 2. Pre-requisite Units and Assumed Knowledge: 先决条件的单位和假设知识: 具备一定的素描造型能力 3. Learning aims and outcomes 学习目标 Learning Outcome 1(目标1) 了解色彩的概念、起源、特征及表现形式 ASSESSMENT CRITERIA:评判标准 a (了解的起源和发展,进而理解现代设计色彩起源于20世纪初期的印象 派绘画艺术和德国包豪斯现代艺术。) b (了解色彩分解的由来、特征和作用;掌握分解色彩的调和方法。) Learning Outcome 2(目标2) 理解、掌握限制色彩的表现 ASSESSMENT CRITERIA:评判标准 a (了解同类色构成的主要特点,掌握单纯色彩在画面色调构成中的应用和表达) b (了解六种以下的色彩限制的特点。掌握以有限的色去表达无限的内容和特有的 美感。) Learning Outcome 3(目标3) 了解、掌握装饰色彩的表现

ASSESSMENT CRITERIA:评判标准 a (了解掌握装饰性的造型特征、装饰色彩的特征) b (了解装饰色彩的造型方法和规律,掌握装饰色彩写生的重点) Learning Outcome 4(目标4) 意向归纳色彩的表现 ASSESSMENT CRITERIA:评判标准 a (了解掌握色块意向、光色意向的特征和表现技法。) b (了解掌握抽象意向、肌理意向的特征和表现技法) 4.Weighting of final grade(打分比例) Grades will be assigned on the basis of the following percentages: 级别将被分配的基础上的百分比如下: Attendance考勤10 attitude, class activities, & participation 10 学习态度 Homework 1 (Learning outcome 1) 20 家庭作业1 Homework 2(Learning outcome 2) 20 家庭作业2 Homework 3(Learning outcome 3) 20 家庭作业3 Homework 4(Learning outcome 4) 20 家庭作业4 Total总分100 5.Grading等级

相关主题
文本预览
相关文档 最新文档