ImageVerifierCode 换一换
格式:DOCX , 页数:46 ,大小:43.39KB ,
资源ID:13620543      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13620543.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高手总结java常用API.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

高手总结java常用API.docx

1、高手总结java常用APIJava常用API的运用,效率及技巧1. Java面向对象基本概念2. System3. String, StringBuffer4. 数值,字符,布尔对象与简单类型的操作5. Class, ClassLoader6. Java IO系统7. Java集合类8. ResourceBundle, Properties9. Exceptions10.JDBC类库11.常用设计模式1.Java面向对象基本概念Java基本上是面向对象的程序设计语言, 除了一些简单类型(primitive)的变量以外,一切都是对象, 程序是对象的组合, 每个对象都有自己的空间, 并且每个对象都

2、有一种类型, 同一类所有对象都能接受相同的消息。 下面只对Java中对象的结构作简单的说明:类(class):class是定义类的关键字,类中包含类变量, 方法, 内部类, 内部接口等。由class可以生成类的实例, 即一个个对象。 如果一个类的成员被定义成static的,则这个成员不专属于任何对象, 而是属于这个类, 所有的对象共享这个成员。抽象类(abstract class):抽象类不能直接生成一个实例, 抽象类中必需有方法是abstract的,抽象类的意思就是它实现了一部分的方法, 而定义为abstract的方法则需要在它的子类中去实现。接口(interface):接口可以理解为纯抽象

3、的类, 它的每个方法都是未实现的, 它可以有成员变量, 但必须是static的。一个类如果从这个接口继承(implements)则它必须实现这个接口的所有方法。继承类用关键字:extends,继承接口用关键字:implements。 一个类只能从一个类继承下来, 但可以从多个接口继承(类似于C+的多重继承)。 子类可以覆盖父类的方法(method), 但不能覆盖父类的成员变量(field)。 如果父类的方法为final或static的则不能被覆盖。类的初始化顺序是, 如果有父类, 则先初始化父类的field,然后执行父类的构造函数, 如果子类没有显式的去调父类的构造函数则缺省的会去调父类的无参

4、数构造函数。 然后是子类的field与构造函数的初始化。public interfaceSuperInterface public staitcString SOME_FLAG = “1”;public voidsomeMethod();public ClassSuperClass System.out.println(“init SuperClass field”);publicSuperClass() System.out.println(“init SuperClass Constructor”); public voidrunMethod() System.out.println(“r

5、un SuperClass runMethod()”); public ClassSubClassextendsSuperClass implementsSuperInterfaceSystem.out.println(“init SubClass field”); publicSubClass() System.out.println(“init SubClass Constructor”); public voidsomeMethod() System.out.println(“run SubClass someMethod()”); public voidrunMethod() Syst

6、em.out.println(“run SubClass runMethod()”); 有以下test代码:public classTest public voidmain(String args) SubClass sub =newSubClass();sub. runMethod();则会输出:init SuperClass fieldinit SuperClass Constructorinit SubClass fieldinit SubClass Constructorrun SubClass runMethod()以下章节所讲述到的常用的Java API就是一些Java自带的一些C

7、lass或Interface的用法。2SystemSystem类位于package java.lang下面,凡是此package下面的类我们可以直接引用无需先import进来,因为JVM缺省就load了这下面的所有class。System包含了一些我们常用的方法与成员变量。System不能被实例化,所有的方法都可以直接引用。主要作用大致有:输入输出流:(PrintStream) System.out(标准终端输出流),(PrintStream) System.err(标准错误输出流),(InputStream) System.in(标准输入流)。我们还可以重定向这些流,比如将所有的System

8、.out的输出全部重定向至一文件中去。System.setOut(PrintStream)标准输出重定向System.setErr(PrintStream)标准错误输出重定向System.setIn(InputStream)标准输入重定向取当前时间:System.currentTimeMillis()所取到的时间是从1970/01/01以来1/1000秒计算的long型值。这个值可以转换至Date或Timestamp值。它一般还可以用来计算程序执行的时间。例:longbeginTime = System. currentTimeMillis();System.out.println(“run

9、time = ” + (System. currentTimeMillis() beginTime);数组拷贝:System.arraycopy(Objectsrc, intsrc_position,Objectdst, intdst_position, intlength)src: 源数组。src_position: 源数组拷贝的起始位置。dst: 目标数组dst_position: 拷贝至目标数组的起始位置length: 拷贝元素的长度利用System.arraycopy进行数组的拷贝效率是最高的, 一般情况下我们自己很少直接用到这个方法,但在集合类的内部中都大量使用了这个方法。例:int

10、 array1 = 1, 2, 3, 4, 5;int array2 = 4, 5, 6, 7, 8;int array3 = new int8;System.arraycopy(array1, 0, array3, 0, 5);System.arraycopy(array2, 2, array3, 5, 3);此时array3 = 1, 2, 3, 4, 5, 6, 7, 8这比用for循环来进行赋值效率要高。存取系统的Properties:System.getProperties():取得当前所有的Properties,Properties将在后面的集合一节进行详细的论述。System.s

11、etProperties(Properties props):设置系统的Properties。System.getProperty(String key): 根据一个键值来取得一个Property。System.setProperty(String key, String value): 设置系统的一个Property。JVM起动的时候将会有一些缺省的Properties值, 例如:java.versionJava运行环境版本java.homeJava主目录installation directoryjava.class.pathJava的class pathjava.ext.dirsJava

12、的扩展目录路径file.separator文件分隔符(/ on UNIX)path.separator路径分隔符(: on UNIX)line.separator行分隔符(n on UNIX)user.name用户名user.home用户主目录user.dir用户当前工作目录更详细的信息请参照Java API。 另外在起动一个java程序的时候可以通过-D来设置系统的Property, 比如java Dejb.file=ejb_Test PrintTest在PrintTest里面就可以通过System.getProperty(“ejb.file”)来取得值ejb_Test。其它System.l

13、oadLibrary(String libname):加载native的动态库。可以用C写JNI的库,然后在java中通过native方法来调用。System.setSecurityManager(SecurityManager s)System.getSecurityManager():设置与取得系统的security class。3String, StringBuffer3.1基本用法String可以说是我们最常用的一个类,熟练掌握它的一些基本用法是很有用的。String是由一组字符组成的字符串,下标由0开始。一旦有必要改变原来的内容,每个String方法都有返回了一个新的String对象

14、。char charAt(int index)返回指定位置的字符。int compareTo(Object o)int compareTo(String anotherString)与另外一个对象进行比较。int compareToIgnoreCase(String str)与另一个String进行比较,不区分大小写String concat(String str)连接两字符串,可以直接用+,因为Java给String覆盖了+static String copyValueOf(char data)static String copyValueOf(char data, int offset,

15、int count)将data数组转换至Stringboolean endsWith(String suffix)测试此String是否以suffix结尾。boolean startsWith(String prefix)测试此String是否以prefix开头。boolean equals(Object anObject)boolean equalsIgnoreCase(String anotherString)比较两字符串的值。不相等则返回falsebyte getBytes()根据缺省的字符编码将String转换成字节数组。byte getBytes(String enc)根据指定的编码

16、将String转换万字节数组。void getChars(int srcBegin, int srcEnd, char dst, int dstBegin)拷贝字符至一数组中int indexOf(int ch)从字串的起始位置查找字符ch第一次出现的位置int indexOf(int ch, int fromIndex)从指定的fromIndex位置向后查找第一次出现ch的位置,int indexOf(String str)int indexOf(String str, int fromIndex)如果不存在ch或str都返回-1int lastIndexOf(int ch)从字串的最终位置

17、往前查找第一次出现ch的位置int lastIndexOf(int ch, int fromIndex)从指定的位置往前查找第一次出现ch的位置,int lastIndexOf(String str)int lastIndexOf(String str, int fromIndex)如果不存在则返回-1int length()该字符串的字符长度(一个全角的汉字长度为1)String replace(char oldChar, char newChar)将字符oldChar全部替换为newChar,返回一个新的字符串。String substring(int beginIndex)返回从begi

18、nIndex开始的字符串子集String substring(int beginIndex, int endIndex)返回从beginIndex至endIndex结束的字符串的子集。其中endIndex beginIndex等于子集的字符串长度char toCharArray()返回该字符串的内部字符数组String toLowerCase()转换至小写字母的字符串String toLowerCase(Locale locale)String toUpperCase()转换至大写字母的字符串String toUpperCase(Locale locale)String toString()覆

19、盖了Object的toString方法,返回本身。String trim()将字符串两边的半角空白字符去掉,如果需要去掉全角的空白字符得要自己写。static String valueOf(primitive p)将其它的简单类型的值转换为一个StringStingBuffer是一个可变的字符串,它可以被更改。同时StringBuffer是Thread safe的,你可以放心的使用,常用的方法如下:StringBuffer append(param)在StringBuffer对象之后追加param(可以为所有的简单类型和Object)返回追加后的StringBuffer,与原来的对象是同一份。

20、char charAt(int index)返回指定位置index的字符。StringBuffer delete(int start, int end)删除指定区域startend的字符。StringBuffer deleteCharAt(int index)删除指定位置index的字符。void getChars(int srcBegin, int srcEnd, char dst, int dstBegin)同String的getChars方法StringBuffer insert(int offset, boolean b)在指定位置offset插入param(为所有的简单类型与Obje

21、ct)int length()同String的length()StringBuffer replace(int start, int end, String str)将指定区域startend的字符串替换为strStringBuffer reverse()反转字符的顺序void setCharAt(int index, char ch)设置字符ch至index位置。String substring(int start)String substring(int start, int end)同String的subStringString toString()返回一个String大家可能已经注意到

22、很多方法都返回了一个StringBuffer对象,但返回的这个对象与String的方法返回的String不一样,返回的StringBuffer对象与被操作的StringBuffer对象是同一份,而String的方法返回的String则肯定是重新生成的一个String。3.2性能对比因为String被设计成一种安全的字符串,避免了C/C+中的尴尬。因此在内部操作的时候会频繁的进行对象的交换,因此它的效率不如StringBuffer。如果需要频繁的进行字符串的增删操作的话最好用StringBuffer。比如拼SQL文,写共函。另:编绎器对String的+操作进行了一定的优化。x = a + 4 +

23、 c会被编绎成x = new StringBuffer().append(a).append(4).append(c).toString()但:x = “a”;x = x + 4;x = x + “c”;则不会被优化。可以看出如果在一个表达式里面进行String的多次+操作会被优化,而多个表达式的+操作不会被优化。3.3技巧1.在Servlet2.3与JSP1.1以前画面post到后台的数据是通过ISO88591格式进行编码的,则当遇到全角日文字的时候,在后台request得到的数据可能就是乱码,这个时候就得自己进行编码转换,通过String.getBytes(String enc)方法得到一

24、个字节流,然后通过String(byte bytes, String enc)这个构造函数得到一个用新的编码生成的字符串.例如将ISO88591的字符串转换成Shift_JIS的字符串,方法如下:public staticString convertString(String str) if(str = null) returnnull; trybyte buf = str.getBytes(ISO8859_1);return newString(buf, Shift_JIS); catch (Exception ex) ex.printStackTrace();returnnull; 不过在

25、最新的Servlet2.3与Jsp1.2中可以通过request.setCharacterEncoding来进行设置取值的码制,不需要自己再做转换。2因为Java在计算String的长度是以字符为单位的,因此一个全角与半角的字符长度是一样的,但是DB中往往是根据字节来计算长度的,因此我们在做Check的时候得要判断String的字节长,可以用以下的方法:public staticString length(String str) if(str = null) return 0; returnstr.getBytes().length;4数值,字符,布尔对象与简单类型的操作简单的对照表如下:Ob

26、jectPrimitive范围NumberLonglong-9223372036854775808 to 9223372036854775807Integerint-2147483648 to 2147483647Shortshort-32768 to 32767Bytebyte-128 to 127DoubledoubleFloatfloatCharactercharu0000touffffBooleanbooleanfalse and true与C等其它语言不同的是数值的范围不随平台的改变而改变,这就保证了平台之间的统一性,提高了可移植性。Number:Number本身是个抽象类,不能直接

27、使用,所有直接从Number继承下来的子类都有以下几种方法:byte byteValue()返回字节值double doubleValue()返回double值float floatValue()返回float值int intValue()返回float值long longValue()返回long值short shortValue()返回short值在需要通过Object来取得简单数据类型的值的时候就得用到以上的方法,不过我不推荐不同类型之间的取值,比如Long型的Object不要直接去调用intValue(),精度可能会丢失。如果想通过String来得到一个数值类型的简单类型值,一般在每个

28、Number的类里面都有一个parseXXX(String)的静态方法,如下:byte Byte.parseByte(String s)double Double.parseDouble(String s)float Float.parseFloat(String s)int Integer.parseInt(String s)long Long.parseLong(String s)short Short.parseShort(String s)如果想直接从String得到一个Number型的Object,则每个Number类里面都有valueOf(String s)这个静态方法。如:Byte Byte.valueOf(String s)Double Doubl

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2