学习笔记-马士兵java- 常用类
1. 字符串相关类(String、StringBuffer)
a. Sting类
① java.lang.String 类代表 不可变 的字符序列。
② “XXXXX”为该类的一个对象。
③ String 类的常见构造方法:
ⅠString(Sting original) 创建一个String对象为 original 的拷贝。
Ⅱ String(char[] value) 用一个字符数组创建一个 String 对象。
Ⅲ Sting(char[] value, int offset, int count) 用一个字符数组从 offset 项开始的 count 个字符序列创建一个 String 对象。
④ 字符串相等判断:
Ⅰ String s1 = "hello"; String s2 = "hello"; s1==s2 // true
说明:字符串常量在data segment 只有一份(data segment对数据优化,不再创建新的重复数据),所以两个普通相同的字符串引用相等。
Ⅱ Sting s1 = new String("hello"); Sting s2 = new Sting("hello"); s1==s2 // false s1.equals(s2) // true (new出来的对象若想==,则必须为统一对象 )
说明:若两个字符串均为 new 出来(在堆中创建字符串),因 String 重写 equals 方法(只要内容相同,不必为同一对象,则equal),顾 s1 equals s2。
补充说明:API帮助文档中标有 Deprecated 并用斜体标注的方法为已经废弃的(方法已过时,不推荐使用)。
⑤ Sting 类常用方法:
⑴ public char charAt(int index) 放回字符串中第 index 个字符(从0开始计算 )。
⑵ public int length() 返回字符串的长度。
⑶ public int indexOf(Sting str) 返回字符串中出现str的第一个位置。
⑷ public int indexOf(String str, int fromIndex) 返回字符串中从 fromIndex 开始出现str的第一个位置。
⑸ public boolean equalsIgnoreCase(String another) 比较字符串与 another 是否一样(忽略大小写)。
⑹ public Sting replace(char oldChar, char newChar) 在字符串中用 newChar 字符串替换 oldChar 字符。
⑺ public boolean startsWith(String prefix) 判断字符串是否以 prefix 字符串开头。
⑻ public boolean endsWith(Sting suffix) 判断字符串是否以 prefix 字符串结尾。
⑼ public String toUpperCase() 返回一个字符串为该字符串的大写形式。
⑽ public String toLowerCase() 返回一个字符串为该字符串的小写形式。
⑾ public String substring(int beginIndex) 返回该字符串从 beginIndex(以0开始计算) 开始到结尾的子字符串。
⑿ public String substring(int beginIndex, int endIndex) 返回该字符串从 beginIndex 开始到 endIndex 结尾的子字符串。
⒀ public String trim() 返回将该字符串去掉开头和结尾空格后的字符串。
⑥ String 类静态重载方法:
Ⅰpublic static String valueOf(...) 可以将基本类型数据转换为字符串;
例如:
public static String valueOf(double d)
public static String valueOf(int i)
……(查API帮助文档)
⑦ 方法:public String[] split(String regex) 可以将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组。
b. StringBuffer 类
① java.lang.StringBuffer 代表 可变的 字符序列。
② StringBuffer 和 String 类似,但 StingBuffer 可以对其字符串进行改变。
③ StringBuffer 类的常见构造方法:
⑴ StringBuffer() 创建一个不包含字符序列的“空”的 StringBuffer 对象。
⑵ StringBuffer(String str) 创建一个 StringBuffer 对象,包含与 String 对象 str 相同的字符序列。
④ StringBuffer 类常用方法:
⑴ 重载方法 pbulic StringBuffer append(...) 可以为该 StringBuffer 对象添加字符串序列,返回添加后的该StringBuffer对象引用。例如:
public StringBuffer append(String str)
public StringBuffer append(StringBuffer sbuf)
public StringBuffer append(char[] str)
public StringBuffer append(char[] str, int offset, int len)
public StringBuffer append(double d)
public StringBuffer append(object obj)
……
⑵ 重载方法 public StringBuffer insert(...) 可以为 StringBuffer 对象在制定位置插入字符序列,返回修改后的该 StringBuffer 对象引用。例如:
public StringBuffer insert(int offset, String str)
public StringBuffer insert(int offset, double d)
……
⑶ 方法 public StringBuffer delete(int start, int end) 可以删除从start开始到 end-1 为止的一段字符串序列,返回修改后的该 StringBuffer 对象引用。
⑷ 和 String 类含义类似的方法:
public int indexOf(String str)
public int indexOf(String str, int fromIndex)
public String substring(int start)
public String substring(int start, int end)
public int length()
⑸ 方法 public StringBuffer reverse() 用于将字符序列逆序,返回修改后的该StringBuffer的对象引用。
补充说明:可变与不可变的字符序列区别:
Ⅰ不可变的字符序列(String类)(s1=s1+s2,先开辟s1+s2长度大小的空间,再将s1、s2分别赋值到新的空间,最后将s1指向新的空间)。
Ⅱ可变的字符序列(StringBuffer类)(s1=s1+s2,直接在s1后开辟内存将s2复制到开辟的内存)。
补充说明:JAVA1.4以后正则表达式完全替代StringTokenizer类。
2. 基本数据类型包装类(想要将栈上开辟的空间创建的基础类型改为堆上开辟,用包装类)
a. 包装类(如:Integer,Double 等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作。
b. 以 java.lang.Integer 类为例;(详细查看API帮助文档)
① 构造方法:
⑴ Integer(int value)
⑵ Integer(String s)
② 常用属性、 方法:
⑴ public static final int MAX_VALUE 最大的 int 型数(2^31-1)。
⑵ public static final int MIN_VALUE 最小的 int 型数(-2^31)。
⑶ public long longValue() 返回封装数据的 long 型值。
⑷ public double doubleValue() 返回封装数据的 double 型值。
⑸ public int intValue() 返回封装数据的 int 型值。
⑹ public static int parseInt(String s) throws NumberFormatException 将字符串解析成 int 型数据,返回该数据。
⑺ public static Integer valueOf(String s) throws NumberFormatException 返回 Integer 对象,其中封装的整型数据位字符串 s 所表示。
补充说明:其他类具体属性、方法查看 API 帮助文档。
3. Math类(游戏和图形学常用):
a. java.lang.Math 类,提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为 double 型。
b. 常用:
⑴ abs // 绝对值
⑵ acos, asin, atan, cos, sin, tan
⑶ sqrt // 平方根
⑷ pow(double a, double b) // a 的 b 次幂
⑸ log // 自然对数
⑹ exp // e 为底指数
⑺ max(double a, double b)
⑻ min(double a, double b)
⑼ random() // 返回 0.0 到 1.0 的随机数
⑽ long round(double a) // double 型的数据 a 转换为 long 型(四舍五入)
⑾ toDegrees(double angrad) // 弧度-->角度
⑿ toRadians(double angdeg) //角度-->弧度
4. File类:
a. java.io.File 类代表系统文件名(路径和文件名)。
b. File 类的常见构造方法:
① public File(String pathname) 以 pathname 为路径创建 File 对象,如果 pathname 是相对路径,则默认的当前路径在系统属性 user.dir 中存储。
② public File(String parent, String chile) 以 parent 为父路径,chile 为子路径创建 File 对象。
c. File 的静态属性:String separator 存储了当前系统的路径分隔符。
d. 通过 File 对象可以访问文件的属性:
⑴ public boolean canRead() // 能不能读
⑵ public boolean canWrite() // 能不能写
⑶ public boolean exists() // 文件是否存在
⑷ public boolean isDirectory() // 是不是目录
⑸ public boolean isFile() // 是不是文件
⑹ public boolean isHidden() // 是不是隐藏的
⑺ public long lastModified() // 上次修改时间
补充说明:计算机内时间存储方式:从1970年1月1日0时0分0秒0毫秒开始到目前为止的毫秒数(这种方式只用一个 long 型变量则可存储整个时间及日期)
⑻ public long length() // 这个文件内容长度
⑼ public Sting getName() // 得到文件名
⑽ public String getPath() // 得到文件路径(包名不在其中)
⑾ public String getAbsolutePath() // 得到文件绝对路径
⑿ public String getParentFile() // 获得class文件(最上层包)的父目录(包名与文件算为一体)
e. 通过 File 对象创建空文件或目录(在该对象所指的文件或目录不粗才能在的情况下)
⑴ public boolean createNewFile(0 throws IOException // 创建一个空文件
⑵ public boolean delete() // 删除文件
⑶ public boolean mkdir() // 创建目录
⑷ public boolean mkdirs() // 创建在路径中的一系列目录
5. 枚举类:
a. java.lang.Enum 类
b. 枚举类型:
① 只能够取特定值中的一个
② 使用 enum 关键字
③ 是 java.lang.Enum 类型
c. 举例:
public enum MyColor {red, green, blue}; // MyColor为类,enum 与 static 类似,可以用“类名.取值”
MyColor m = MyColor.red;
补充说明:错误越早发生越好(最好在编译时)

浙公网安备 33010602011771号