没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Java常用 API 的运用,效率及技巧
面向对象基本概念
数值,字符,布尔对象与简单类型的操作
!
系统
"
集合类
#$%&'
()*%'
+,
类库
常用设计模式
1.Java 面向对象基本概念
基本上是面向对象的程序设计语言, 除了一些简单类型-'.的变量以外,一切都
是对象, 程序是对象的组合, 每个对象都有自己的空间, 并且每个对象都有一种类型, 同一
类所有对象都能接受相同的消息。 下面只对 中对象的结构作简单的说明:
类(%)/% 是定义类的关键字, 类中包含类变量, 方法, 内部类, 内部
接口等。由 % 可以生成类的实例, 即一个个对象。 如果一个类的成员被定义成
% 的,则这个成员不专属于任何对象, 而是属于这个类, 所有的对象共享这个
成员。
抽象类-0%%./抽象类不能直接生成一个实例, 抽象类中必需有方法是
0% 的,抽象类的意思就是它实现了一部分的方法, 而定义为 0% 的方法
则需要在它的子类中去实现。
接口-1%./接口可以理解为纯抽象的类, 它的每个方法都是未实现的, 它可
以有成员变量, 但必须是 % 的。 一个类如果从这个接口继承(')
则它必须实现这个接口的所有方法。
继承类用关键字:*,继承接口用关键字:'。 一个类只能从一个类继承下
来, 但可以从多个接口继承(类似于 22的多重继承)。 子类可以覆盖父类的方法
-3., 但不能覆盖父类的成员变量-4.。 如果父类的方法为 4 或 % 的则不能
被覆盖。类的初始化顺序是, 如果有父类, 则先初始化父类的 4,然后执行父类的构造函
数, 如果子类没有显式的去调父类的构造函数则缺省的会去调父类的无参数构造函数。 然后
是子类的 4 与构造函数的初始化。
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(“run SuperClass runMethod()”); }
}
public ClassSubClassextendsSuperClass implementsSuperInterface{
{System.out.println(“init SubClass field”); }
publicSubClass() {System.out.println(“init SubClass Constructor”); }
public voidsomeMethod() {System.out.println(“run SubClass someMethod()”); }
public voidrunMethod() {System.out.println(“run SubClass runMethod()”); }
}
有以下 test 代码:
public classTest {
public voidmain(String[] args) {
SubClass sub =newSubClass();
sub. runMethod();
}
}
则会输出:
init SuperClass field
init SuperClass Constructor
init SubClass field
init SubClass Constructor
run SubClass runMethod()
以下章节所讲述到的常用的 Java API 就是一些 Java 自带的一些 Class 或 Interface 的用法。
2.System
System 类位于 package java.lang 下面, 凡是此 package 下面的类我们可以直接引用无需先
import 进来, 因为 JVM 缺省就 load 了这下面的所有 class。
System 包含了一些我们常用的方法与成员变量。 System 不能被实例化, 所有的方法都可以直
接引用。 主要作用大致有:
输入输出流:
(PrintStream) System.out(标准终端输出流),
(PrintStream) System.err(标准错误输出流),
(InputStream) System.in(标准输入流)。
我们还可以重定向这些流, 比如将所有的 System.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 time = ” + (System. currentTimeMillis() – beginTime));
数组拷贝:
System.arraycopy(Objectsrc, intsrc_position,Objectdst, intdst_position,
intlength)
%: 源数组。
%5': 源数组拷贝的起始位置。
: 目标数组
5': 拷贝至目标数组的起始位置
3: 拷贝元素的长度
利用 %' 进行数组的拷贝效率是最高的, 一般情况下我们自己很少
直接用到这个方法,但在集合类的内部中都大量使用了这个方法。
例:
6789:;
6789"#:;
8<6#7;
%'-++.;
%'-.;
此时 89"#:
这比用 1 循环来进行赋值效率要高。
存取系统的 &':
&'-.:取得当前所有的 &', &' 将在后面的
集合一节进行详细的论述。
&'-&'''.:设置系统的 &'。
&'-=.: 根据一个键值来取得一个 &'。
&'-=.: 设置系统的一个 &'。
>? 起动的时候将会有一些缺省的 &' 值, 例如:
@ 运行环境版本
@3 主目录 %
@%'3的 %'3
@* 的扩展目录路径
4'文件分隔符-ABACD E.
'3'路径分隔符-A/ACD E.
'行分隔符 -AFACD E.
用户名
3用户主目录
用户当前工作目录
更详细的信息请参照 G& 。 另外在起动一个 @ 程序的时候可以通过H, 来设
置系统的 &', 比如 @I,@048@05J&J在 &J 里面
就可以通过 &'-K@04L.来取得值 @05J。
其它
loadLibrary(String libname): 加载 native 的动态库。 可以用 C 写 JNI 的库,
然后在 java 中通过 native 方法来调用。
System.setSecurityManager(SecurityManager s)
System.getSecurityManager(): 设置与取得系统的 security class。
3.String, StringBuer
3.1基本用法
String 可以说是我们最常用的一个类, 熟练掌握它的一些基本用法是很有用的。
String 是由一组字符组成的字符串, 下标由 0 开始。 一旦有必要改变原来的内容, 每个 String
方法都有返回了一个新的 String 对象。
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, int count)
将 data 数组转换至 String
boolean endsWith(String suffix)测试此 String 是否以 suffix 结尾。
boolean startsWith(String prefix)测试此 String 是否以 prefix 开头。
boolean equals(Object anObject)
boolean equalsIgnoreCase(String anotherString)
比较两字符串的值。 不相等则返回 false
byte[] getBytes()根据缺省的字符编码将 String 转换成字节数组。
byte[] getBytes(String enc)根据指定的编码将 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 都返回-1
int lastIndexOf(int ch)从字串的最终位置往前查找第一次出现 ch 的位置
int lastIndexOf(int ch, int fromIndex)从指定的位置往前查找第一次出现 ch 的位置,
int lastIndexOf(String str)
int lastIndexOf(String str, int fromIndex)
如果不存在则返回-1
int length()该字符串的字符长度(一个全角的汉字长度为 1)
String replace(char oldChar, char newChar)将字符 oldChar 全部替换为 newChar, 返
回一个新的字符串。
String substring(int beginIndex)返回从 beginIndex 开始的字符串子集
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()覆盖了 Object 的 toString 方法, 返回本身。
String trim()将字符串两边的半角空白字符去掉, 如果需要去掉全角的空白字符
得要自己写。
static String valueOf(primitive p)将其它的简单类型的值转换为一个 String
StingBuffer 是一个可变的字符串,它可以被更改。同时 StringBuffer 是 Thread safe 的, 你可以
放心的使用, 常用的方法如下:
StringBuffer append(param)在 StringBuffer 对象之后追加 param(可以为所有的简单
类型和 Object)返回追加后的 StringBuffer, 与原来的对象是同一份。
char charAt(int index)返回指定位置 index 的字符。
StringBuffer delete(int start, int end)删除指定区域 start~end 的字符。
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(为所有的简单
类型与 Object)
int length()同 String 的 length()
StringBuffer replace(int start, int end, String str)将指定区域 start~end 的字符串替换
为 str
StringBuffer reverse()反转字符的顺序
void setCharAt(int index, char ch)设置字符 ch 至 index 位置。
String substring(int start)
String substring(int start, int end)同 String 的 subString
String toString()返回一个 String
大家可能已经注意到很多方法都返回了一个 StringBuffer 对象, 但返回的这个对象与 String 的
方法返回的 String 不一样, 返回的 StringBuffer 对象与被操作的 StringBuffer 对象是同一份, 而
String 的方法返回的 String 则肯定是重新生成的一个 String。
3.2 性能对比
剩余27页未读,继续阅读
donwoods
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页