




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.数组变量的声明P39声明数组包括数组的名字、数组包含的元素的数据类型。即:数组元素类型 数组名; 例:float boy;或数组元素类型 数组名; 例:double girl;2.Java的控制语句 P3038分支控制语句:if、ifelse、switch循环控制语句:while、dowhile、for、foreach3.Java的类声明P47一个类的定义包含两部分:类声明和类体。格式如下:类修饰符 class 类名 extends 父类名 implements 接口名列表/类体声明声明成员变量;声明方法;其中,class为关键字,类名有用户给定。类修饰符有public、private、protected、abstract(抽象类)、final(最终类)。对于一般的类通常只有两种访问权限:public(共有)和default(友好)。用public修饰的类,可以被不同包下的类引用,友好的类只能在同一包下被引用。4.Java的类变量声明 (这个弄不懂,求懂的大神指教)5.Java命令运行,怎么样指定classpath,使得JVM虚拟机可以找到类(3月5日的视频)Java -cp c:f test.Test用“-cp 要执行class文件的路径”来告诉JVM虚拟机文件的位置。6.Javac命令,在编译的时候,怎么样指定classpath,使得在源文件中引用的类可以找到(3月5日的视频)Javac -cp c:f c:ftestTest.java (编译生成class文件)用“-cp 引用类的路径”来告诉JVM虚拟机引用类的位置。7.怎么样指定path,使得在命令窗口下,任何路径都可以访问到一个可执行文件(3月5日的视频)Java cp c:f;c: test.Test指定多条路径,用“;”分隔8.理解面向对象的特点1封装性 封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义: 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。 封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的交叉感染,使软件错误能够局部化,大大减少查错和排错的难度。 2继承性 特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。 在java语言中,通常我们称一般类为父类(superclass,超类),特殊类为子类(subclass)。 3多态性 对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个 特殊类中具有不同的语义。例如:几何图形的绘图方法,椭圆和多边形都是几何图的子类,其绘图方法功能不同。9.String类的常用方法P98-104(1)创建字符串。1)public String():创建一个空的字符串常量。例如:String test = new String();2)public String(String value):用一个已经存在的字符串 常量作为参数来创建一个新的字符串常量。如:String k=”Hi.”;等同于String temp=new String(“Hi.”);String k=temp;3)public String(char value):用一个字符串数组作为参数来创建一个新的字符串常量。4)public String(StringBuffer buffer),用一个StringBuffer类的对象作为参数来创建一个新的字符串常量。(2)求字符串的长度。public int length():返回字符串的实际长度。例如:String s=”abc”;int result=s.length();(3)抽取字符串1)puclic char charAt(int index):获取字符串常量中的一个字符。参数index指定从字符串中返回第几个字符,这个方法返回一个字符串常量。注意:字符串第一个字符的index值为0.(4)字符串比较。1)public int compareTo(String anotherString):按Unicode码来比较字符串常量的大小,参数antherString为另一个字符串常量。若返回值为0,则两个字符串常量相同;若返回值大于0,则表示当前字符串常量大;若返回值小于0,则表示参数字符串常量大。2)public Boolean equals(Object anObject):将当前字符串与anObject进行比较,若相同,返回true,否则返回false.(5)字符串连接1)+号2)public String concat(String str):把参数str接在当前字符串常量的后面,生成一个新的字符串常量,并返回。(6)字符串检索1)public int indexOf(int ch):返回字符ch在字符串常量中(从左到右)第一次出现的位置。若不存在,则返回1;2)public int indexOf(String str):这个重载方法返回str在当前字符串常量中第一次出现的位置,若不存在,则返回1。(7)字符串转换1)public static String valueOf(boolean b).2)public static String valueOf(char c).3)public static String valueOf(int i).4)public static String valueOf(long l).5)public static String valueOf(float f).6)public static String valueOf(double d).以上6个方法分别将boolean、char、int、long、float和double 6种类型的变量转换为String类的对象。7)public String toLowerCase():将字符串变为小写字符串。8)public String toUpperCase():将字符串变为大写字符串。(8)判断字符串的前缀和后缀1)public Boolean startsWith(String prefix):判断当前字符串的前缀是否是prefix.2)public Boolean endsWith(String suffix):判断当前字符串的前缀是否是suffix.10.Java的修饰符public, protected,缺省,private P49501)public:类中限定为public的成员,可以被所以的类访问。2)protected:类中限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中和不同包中的子类)以及同一个包中的所以其他类访问。3)缺省:不加修饰符时,默认为default友好的。4)private:类中限定为private的成员,只能被这个类本身访问。11.静态变量,方法的声明,什么时候使用静态变量? P50Static 数据类型 变量名;Static:静态变量,限定该成员变量为类变量,可直接通过类名来访问。如:class StaticExamplestatic int num=0;public static void main (String args)system.out.println(StaticExample.num);当你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。声明为static的方法有以下几条限制: 它们仅能调用其他的static 方法。 它们只能访问static数据。它们不能以任何方式引用this 或super12.构造函数的声明及子类父类构造函数之间的关系 P53构造函数=构造方法; 构造方法是一种特殊的方法,具有以下特点。 (1)构造方法的方法名必须与类名相同。 (2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。 (3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。 (4)构造方法不能由编程人员调用,而要系统调用。 (5)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。 (6)构造方法可以重载,以参数的个数,类型,或排列顺序区分。构造函数的声明:public|protected|private 类名 (paramList)一个子类的实例时,首先要执行子类的构造函数,但是由于子类继承父类,所以子类的缺省构造函数自动调用父类的缺省构造函数。13.接口的声明 P81接口声明的格式如下:public interface 接口名 extends 父类接口名一个接口可有多个父接口,用逗号隔开,而一个类只能有一个父类。14.接口的实现 P81在类的声明中用implements子句来表示一个类实现某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所以抽象方法。一个类可以实现多个接口,在implements子句中用逗号分开。例子:public interface MyInterface public void add(int x,int y);public void volume(int x,int y,int z);public class InterfaceDemo implements MyInterface public void add(int x,int y)System.out.println(和:+(x+y);public void volume(int x,int y,int z)System.out.println(积:+(x*y*z);public static void main(String args) MyInterface d = new InterfaceDemo();d.add(10, 10);d.volume(10, 10,10);15.什么是抽象类,抽象方法 P79抽象方法只需声明,无需实现;抽象类不能被实例化,必须通过抽象类的子类来间接实现;抽象类不一定要包含抽象方法,若类中包含了抽象方法,则该类必须被定义为抽象类。抽象类可以包含非抽象类方法。继承抽象类的类必须实现抽象类的抽象方法,否则也必须定义成抽象类。使用抽象类的目的是,使更高层次的类只需知道行为是什么,不用知道具体怎么做。它为子类规定了统一的、要具体实现的行为。16. 了解一些常用的java类 StringBuffer, Vector, List, ArrayList, HashMap, HashTable(这个真心太多了,大家可以看课本的第六章和Java API文档)(1)StringBuffer类:P1021033种构造方法:StringBuffer ():创建一个空的StringBuffer类的对象,初始长度默认为16个字符。StringBuffer(int length):创建一个长度为参数length的StringBuffer类的对象。StringBuffer(String str):用一个已存在的字符串常量来创建StringBuffer类的对象,另外再分配16个字符的额外空间。StringBuffer类的常用方法:1)public String toString():将StringBuffer类的对象转换为String类的对象,再将它的值显示出来。2)追加字符/字符串。3)插入字符。4)获取长度 public int length() 返回字符串变量的长度。5)求逆字符串public StringBuffer reverse():返回字符串的逆串;6)读取和修改字符(2)Vector类的构造方法Vector() 构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。Vector(Collectionc) 构造一个包含指定集合中的元素的向量,这些元素按其集合的迭代器返回元素的顺序排列。Vector(intinitialCapacity) 使用指定的初始容量和等于零的容量增量构造一个空向量。Vector(intinitialCapacity, intcapacityIncrement) 使用指定的初始容量和容量增量构造一个空的向量。17.HashMap与HashTable的区别1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。3.HashTable有一个contains(Objectvalue),功能和containsValue(Objectvalue)功能一样。4.HashTable使用Enumeration,HashMap使用Iterator。5.HashTable中hash数组默认大小是11,增加的方式是old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。6.哈希值的使用不同,HashTable直接使用对象的hashCode两句话总结:HashMap = 不同步、空键值、效率高;Hashtable = 同步、非空键值、效率略低18.File类的使用 P131133文件和目录路径名的抽象表示形式。File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。要注意的是,不管是文件还是目录,在JAVA中都是以File的实例来表示。1)File类的常见构造方法:File(Fileparent, Stringchild) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。File(Stringpathname)通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。File(Stringparent, Stringchild)根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。File(URIuri)通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。2)File类常用的方法booleancanRead()测试应用程序是否可以读取此抽象路径名表示的文件。booleancanWrite()测试应用程序是否可以修改此抽象路径名表示的文件。booleanexists()测试此抽象路径名表示的文件或目录是否存在。booleanequals(Objectobj)测试此抽象路径名与给定对象是否相等。booleanisDirectory()测试此抽象路径名表示的文件是否是一个目录。booleanisDirectory()测试此抽象路径名表示的文件是否是一个目录。booleanisFile()测试此抽象路径名表示的文件是否是一个标准文件。booleanisHidden()测试此抽象路径名指定的文件是否是一个隐藏文件。longlastModified()返回此抽象路径名表示的文件最后一次被修改的时间。longlength()返回由此抽象路径名表示的文件的长度。longlength()返回由此抽象路径名表示的文件的长度。StringgetName() 返回由此抽象路径名表示的文件或目录的名称。StringgetParent()返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。StringgetPath()将此抽象路径名转换为一个路径名字符串。StringgetAbsolutePath() 返回抽象路径名的绝对路径名字符串。Stringlist() 返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。Stringlist(FilenameFilterfilter) 返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。booleanmkdir() 创建此抽象路径名指定的目录。booleanmkdirs() 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。例题:P133 8119.InputStream,InputStreamReader来读输入流,Scanner,BufferedReader来读取输入流InputStreams是所以表示字节输入流类的父类,它是一个抽象类,数据单位为字节,继承它的子类必须重新定义其中的所以抽象方法。P138InputStreamReader构造方法:InputStreamReader(InputStreamin) 创建一个使用默认字符集的 InputStreamReader。InputStreamReader(InputStreamin, Charsetcs) 创建使用给定字符集的 InputStreamReader。InputStreamReader(InputStreamin, CharsetDecoderdec) 创建使用给定字符集解码器的 InputStreamReader。InputStreamReader(InputStreamin, StringcharsetName) 创建使用指定字符集的 InputStreamReader。InputStreamReader基本方法:voidclose()关闭该流。StringgetEncoding()返回此流使用的字符编码的名称。intread()读取单个字符。intread(charcbuf, intoffset, intlength)将字符读入数组中的某一部分。booleanready()告知是否准备读取此流。Scanner:一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器。 Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。Scanner构造方法:Scanner(Filesource) 构造一个新的 Scanner,它生成的值是从指定文件扫描的。Scanner(Filesource, StringcharsetName) 构造一个新的 Scanner,它生成的值是从指定文件扫描的。Scanner(InputStreamsource)构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。Scanner(InputStreamsource, StringcharsetName) 构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。Scanner(Readablesource) 构造一个新的 Scanner,它生成的值是从指定源扫描的。Scanner(ReadableByteChannelsource) 构造一个新的 Scanner,它生成的值是从指定信道扫描的。Scanner(ReadableByteChannelsource, StringcharsetName) 构造一个新的 Scanner,它生成的值是从指定信道扫描的。Scanner(Stringsource) 构造一个新的 Scanner,它生成的值是从指定字符串扫描的。Scanner常用方法:voidclose()关闭此扫描器。booleanhasNext()如果此扫描器的输入中有另一个标记,则返回 true。booleanhasNext(Patternpattern)如果下一个完整标记与指定模式匹配,则返回 true。booleanhasNext(Stringpattern)如果下一个标记与从指定字符串构造的模式匹配,则返回 true。Stringnext()查找并返回来自此扫描器的下一个完整标记。Stringnext(Patternpattern)如果下一个标记与指定模式匹配,则返回下一个标记。bytenextByte()将输入信息的下一个标记扫描为一个 byte。doublenextDouble()将输入信息的下一个标记扫描为一个 double。floatnextFloat()将输入信息的下一个标记扫描为一个 float。intnextInt()将输入信息的下一个标记扫描为一个 int。longnextLong()将输入信息的下一个标记扫描为一个 long。shortnextShort()将输入信息的下一个标记扫描为一个 short。例:Scanner input = new Scanner(System.in);int money = input.nextInt();BufferedReader构造方法:BufferedReader(Readerin) 创建一个使用默认大小输入缓冲区的缓冲字符输入流。BufferedReader(Readerin, intsz) 创建一个使用指定大小输入缓冲区的缓冲字符输入流。BufferedReader常用方法:voidclose()关闭该流。voidmark(intreadAheadLimit)标记流中的当前位置。booleanmarkSupported()判断此流是否支持 mark() 操作(它一定支持)。intread()读取单个字符。intread(charcbuf, intoff, intlen)将字符读入数组的某一部分。StringreadLine()读取一个文本行。booleanready()判断此流是否已准备好被读取。voidreset()将流重置为最新的标记。longskip(longn)跳过字符。例:BufferedReader reader = new BufferedReader(new InputStreamReader(System.in);String info = reader.readLine(); /读取一个文本行20.HashMap类怎么保存数据,怎么取数据 P109HashMap通过映射关系来确定对象的位置,实现了“键值”对应的快速存取。HashMap是实现Map接口的类。它允许任何类型的键和值对象V,并允许使用null值。但HashMap不能保证其元素的数序恒久不变。HashMap构造方法:HashMap()构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。HashMap(intinitialCapacity)构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。HashMap(intinitialCapacity, floatloadFactor) 构造一个带指定初始容量和加载因子的空 HashMap。HashMap(Mapm) 构造一个映射关系与指定 Map 相同的 HashMap。HashMap常用方法:Voidput(Kkey, Vvalue) 给对象value设置一个关键字key,并将其加到HashMap中。Vget(Objectkey)返回指定键在此标识哈希映射中所映射的值,如果对于此键来说,映射不包含任何映射关系,则返回 null。booleancontainsKey(Objectkey) 判断散列表中是否包含关键字keybooleancontainsValue(Objectvalue) 判断value是否为散列表中的一个元素Collectionvalues()返回元素值所对应的 collection 视图。Objectremove(object key)从散列表中删除关键字key所对应的对象。例:HashMap map = new HashMap();map.put(name,stud);21.List的数据保存,读取 P108List是有序的Collection,使用此接口能够精确地控制每个元素插入的位置。E代表Java支持的任意一种数据类型。实现List接口的常用类有LinkedList、ArrayList、Vector和Stack.例子:import java.util.ArrayList;public class ArrayListTest public static void main(String args) ArrayList list = new ArrayList();list.add(aaa);list.add(bbb);list.add(ccc);if (list.indexOf(bbb)=0) System.out.println(有此人!);else System.out.println(无此人);22.Java的重载与重写(类的多态)P69在java中,可以在同一个类中用相同的名称定义两个或多个方法,但参数项不同。当两个方法名称相同而参数项不同时,那么认为此方法被重载,而此过程称为“方法重载”。调用重载方法时,java使用参数的类型和数量决定实际调用重载方法的哪个版本。重载方法可以有不同的返回类型,但返回类型本身不足以区分方法的两个版本。重载方法的参数类型和数量必须不同。另外java也支持对构造方法的重载,这样一个类就可以有多个同名不同参的构造方法。当用new运算符来创建一个类的对象时,编译器会根据提供的参数个数以及类型来区分调用哪个构造方法。列子:public class DisplayNubmer void display()System.out.println(无参方法!);void display(int num1,int num2)System.out.println(整形方法,两参数值为:+num1+,+num2);void display(double count)System.out.println(浮点方法,参数值为+count);public static void main(String args) DisplayNubmer dispObj = new DisplayNubmer();dispObj.display();dispObj.display(30, 40);dispObj.display(30.5);方法重写:P70在类层次结构中,当子类的成员变量与父类的成员变量同名时,子类的成员变量会隐藏父类的成员变量;当子类的方法与父类的方法具有相同的名字、参数列表、返回值类型时,子类的方法就叫做重写了父类的方法,当重写的方法被子类的对象调用时,它总是参考在子类中定义的版本,在父类中定义的方法就被隐藏。子类通过成员变量的隐藏和方法的重写可以把父类的状态和行为改变自身的状态和行为。列子:public class Square int length;public Square(int len) length = len;void getPerimeter()System.out.println(正方形周长:+(length*4);public class Rectangle extends Square /继承了Square 但getPerimeter被重写过int width;public Rectangle(int len,int wid) super(len);width = wid;void getPerimeter()System.out.println(长方形周长:+(2*(length+width);public class CalculaterPerimeter public static void main(String args) Square sq = new Square(4);sq.getPerimeter();Rectangle re = new Rectangle(10, 12);re.getPerimeter();23.Iterator类的使用public interface Iterator对集合进行迭代的迭代器。迭代器代替了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同: 迭代器允许调用方利用定义良好的语义在迭代期间从迭代器所指向的集合移除元素。 方法名称得到了改进。Iterator模式是用于遍历集合类的标准访问方法,它可以把访问逻辑从不同类型的集合中抽象出来,从而避免向客户端暴露集合的内部结构。Iterator常用方法:booleanhasNext()如果仍有元素可以迭代,则返回 true。Enext()返回迭代的下一个元素。voidremove()从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。例子:P110的HashMap示例24.应用SimpleDateFormat,String与Date之间互相转换SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 - 文本)、分析(文本 - 日期)和规范化。SimpleDateFormat构造方法:SimpleDateFormat()用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。SimpleDateFormat(Stringpattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。SimpleDateFormat(Stringpattern, DateFormatSymbolsformatSymbols) 用给定的模式和日期符号构造 SimpleDateFormat。SimpleDateFormat(Stringpattern, Localelocale) 用给定的模式和给定语言环境的默认日期格式符号构造 SimpleDateFormat。SimpleDateFormat常用方法:voidapplyLocalizedPattern(Stringpattern) 将给定的本地化模式字符串应用于此日期格式Dateparse(Stringtext, ParsePositionpos)分析字符串的文本,生成 Date。StringBufferformat(Datedate, StringBuffertoAppendTo, FieldPositionpos)将给定的 Date 格式化为日期/时间字符串,并将结果追加到给定的 StringBuffer。例子:String str = “2000/11/11;SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);SimpleDateFormat sdf1 = new SimpleDateFormat(“yyyy/MM/dd”);try Date dt = sdf1.parse(str);System.out.println(sdf1.format(dt); catch (ParseException e) / TODO Auto-generated catch blocke.printStackTrace();25.JDBC数据库访问 P193JDBC驱动的4种类型:1)JDBC-ODBC桥;2)本地API驱动;3)KDBCNet纯Java驱动程序;4)本地协议,纯Java驱动程序。 1)Driver:每个数据库驱动程序必须实现Driver接口。在编程时要连接数据库,必须先装载特定厂商提供的数据库驱动程序(Driver),即调用Class.forName()方法装载一个JDBC驱动实例。方法如下:Class.forName(driverName); 例如:Class.forName(“sun.jdbc.odbc.JdbcodbcDriver”);装载JDBC-ODBC桥接器驱动2)Connection类代表与数据库连接。连接过程包括所执行的SQL语句以及在该连接上所返回的结果。一个应用程序可与单个接口有一个或多个连接,或者可与多个数据库有连接。使用DriverManager.getConnection方法来建立连接。Connection con = getConnection(dbur1,user,password);例如:Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/hotel,root,123456);3)Statement类用来发送并执行SQL语句。构造方法:Statement(Objecttarget, StringmethodName, Objectarguments) 按照所给参数创建一个新的 Statement 对象,使其具有 target、methodName 和arguments。常用方法:voidexecute()执行方法找到一个与 methodName 属性同名的方法,并在目标上调用该方法。ObjectgetArguments() 返回此语句的参数。StringgetMethodName()返回方法的名称。ObjectgetTarget()返回此语句的目标。StringtoString()使用 Java 风格的语法打印此语句的值。例如:Statement stmt = conn.createStatement();4)ResultSet类用来存放查询操作返回的数据结果集(包括行、列)。它包含符合SQL语句条件的所以行,可以使用getXXX()方法对这些行的数据进行访问。对象的创建方法为:Connection con = DriverManager.getConnection(urlString);Statement stmt = con.createStatement();ResultSet rst = stmt.executeQuery(sqlString);数据库编程的一般过程:1)引入JDBC访问所需的类。2)注册并加载驱动程序。3)创建数据库连接。4)获取执行SQL语句的Statement对象。5)执行SQL语句。6)处理结果集。7)关闭打开的JDBC对象。数据库访问结束后,要关闭已经打开的JDBC对象,释放占有的资源。方法如下:rs.close();stmt.close();con.close();26.Java的异常处理trycatch P123在运行时发生的错误称为“异常“。在运行时跟踪这些异常被称为“异常处理”。获得异常信息的方法有:1)toString():获取当前异常的简单描述;2)getMessage():获取当前信息的详细信息; 3)printStackTrace():获取异常出现时堆栈调用的过程信息。异常处理的方法通常有两种,一种是使用trycatchfinally捕捉异常,一种是采用throws和throw抛出异常。在Java中,只要程序中可能发生异常,最好进行显示处理,为此可以通过trycatchfinally结构来捕获一个或多个异常,其基本形式如下: Try /要监控的异常代码块Catch(Exception e1)/ Exception e1的异常处理程序Catch(Exception e2)/ Exception e2的异常处理程序Finally/在try结束前要执行的代码块,一般是一些清理工作的语句,如cleanup()其中最后的finally子句可以省略。Java程序中加入异常后,其执行流程图有异常无异常try块catch块finally块执行catch块后的程序27.Finally,final,finalize只要不出现极端情况(线程被interrupted,或被kill,或者程序通过system.exit(0)直接退出虚拟机),程序进入了try语句 块,对应的finally程序块就肯定会执行,如果try中存在return语句,则finally中语句块肯定是在return语句执行前执行。例如:public class Test1 public static void main(String args) try System.out.println(try); return; catch(Exception e) System.out.println(catch); finally System.out.println(finally); 程序输出结果是:tryfinally由此可见,finally 是在return语句执行前执行。关键字final(P50)有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 final不能用于修饰构造方法。 注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。(1).对象不一定会被回收。(2).垃圾回收不是析构函数。(3).垃圾回收只与内存有关。(4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。有时当撤消一个对象时,需要完成一些操作。例如,如果一个对象正在处理的是非Java 资源,如文件句柄或window 字符字体,这时你要确认在一个对象被撤消以前要保证这些资源被释放。为处理这样的状况,J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网红品牌孵化器与加速器创新创业项目商业计划书
- 农产品电商邮件营销创新创业项目商业计划书
- 2025年福清市消防员考试笔试试题(含答案)
- 移动社区服务系统创新创业项目商业计划书
- 自动驾驶车辆车载厨房创新创业项目商业计划书
- 辐射安全知识培训课件通知书
- 现场急救培训知识课件
- 2025年工业互联网NFV技术优化工业网络安全实践报告
- 2025年工业互联网平台传感器网络自组网技术在智能仓储中的解决方案
- 2025年教育信息化2.0背景下教师教育技术装备应用现状与对策报告
- 2025四川省公安厅招聘辅警(448人)笔试备考题库及答案解析
- 土地使用权法律风险尽职调查指南
- 2025年内容分发网络(CDN)行业当前市场规模及未来五到十年发展趋势报告
- 故宫博物馆院课件
- 2025年8月16日贵州省黔东南州事业单位遴选笔试真题及答案解析(专业水平测试)
- 2025-2026秋季学年第一学期学生国旗下演讲稿(20周):第一周 新程启航礼润心田-开学典礼
- 2025年教师招聘小学语文真题及答案
- 2025年突发疾病应急演练方案(脚本)
- 幼儿园保安人员培训记录
- 2025年运城社区专职工作人员招聘真题
- 设备晨会管理办法
评论
0/150
提交评论