java常用类
1.String
- String表示字符串,所谓字符串,就是一连串的字符;
- String是不可变类,一旦String对象被创建,包含在对象中的字符序列(内容)是不可变的,直到对象被销毁;
2.String常量池
String使用private final char value[]来实现字符串的存储,也就是说String对象创建之后,就不能再修改此对象中存储的字符串内容,就是因为如此,才说String类型是不可变的.
String对象比较:
- 单独使用""引号创建的字符串都是常量,编译期就已经确定存储到常量池中;
- 使用new String("")创建的对象会存储到堆内存中,是运行期新创建的;
- 使用只包含常量的字符串连接符如"aa" + "bb"创建的也是常量,编译期就能确定,已经确定存储到常量池中;
- 使用包含变量的字符串连接符如"aa" + s1创建的对象是运行期才创建的,存储在堆中;
- 常用方法:
String():初始化一个新的 String 对象,使其表示一个空字符序列,并不是返回空(不等于 null)。
String(StringBuffer buffer):根据StringBuffer对象来创建String对象;
String(StringBuilder builder):同上
char charAt(int index):取字符串中指定位置的字符,index从0开始计算。
String concat(String str):连接字符串,等同于 “+”;
boolean contentEquals(StringBuffer buffer):若二者包含的字符序列相同时就返回true;
boolean equals(Object obj):将该字符串与指定对象比较,若二者包含的字符序列相等返回true;
boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写;
byte[] getBytes():将该字符串转换成byte数组;
int indexOf(String str):找出str字符串在该字符串中第一次出现的位置;
int indexOf(String str, int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始;
int lastIndexOf(String str) 返回指定子字符串在此字符串中最后一次出现处的索引;
int length():返回当前字符串长度;
String replace(char oldChar, char newChar) :返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replaceAll(String regex, String replacement) 使用给定的 字符串replacement 替换此字符串所有的regex字符串;
boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始.
String[] split(String regex): 把字符串按指定的字符串分隔开。
String substring(int beginIndex) 返回一个新的字符串,从beginIndex开始截取,它是此字符串的一个子字符串;
String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串;[begin,end)
char[] toCharArray() 将此字符串转换为一个新的字符数组。
String toLowerCase() 将此 String 中的所有字符都转换为小写;
String toUpperCase()转成大写;
static String valueOf(基本类型 obj):把基本类型值转成字符串;
String trim() :忽略字符串前导空白和尾部空白。
3.StringBuffer& StringBuilder
- StringBuffer: 是线程安全的;
- StringBuilder: 是线程不安全的,性能高点,推荐使StringBuilder;(jdk1.5出现)
- StringBuffer的字符序列是可变的(通过append等方法操作)
- StringBuffer 和 String之间的转换;
- String toString() 返回此序列中数据的字符串表示形式。
- StringBuffer(String str):以指定的字符串创建StringBuffer对象。
- public StringBuilder()构造一个不带任何字符的StringBuilder对象。
- StringBuffer(String str) :构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
- StringBuffer append(Object o) :将指定的任意类型对象追加到此StringBuffer 对象。
- StringBuffer insert(int offset, Object o) :将任意类型参数的字符串表示形式插入此序列中。
- StringBuffer delete(int start, int end) :移除此序列的子字符串中的字符。
- StringBuffer deleteCharAt(int index): 移除此序列指定位置的 char。
4.Math
- public final class Math extends Object以下X表示double,float,int, long
- abs(X x):求绝对值
- max(X x1,X x2):求最大值
- min(X x1,X x2):求最小值
- public static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。和使用new java.util.Random一样
- Math.PI;
5.Random
- 负责生成伪随机数;
Random() 创建一个新的随机数生成器。
int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值n(不包括)之间均匀分布的 int 值。
6.BigInteger
- 若操作的时候一个整数数据范围超出long的范围,则数据无法装入,此时只有使用BigInteger了。
- 常见方法:
BigInteger(String val) 将 十进制字符串表示形式转换为 BigInteger。
add 取代 +
subtract 取代 -
multiply 取代 *
divide 取代 /
BigInteger[] divideAndRemainder(BigInteger val) :数组的第一个元素表示商,数组第二个元素表示余数:(this / val)。
7.BigDecimal
- 在处理金钱或者 要求高精度的数据的时候,推荐使用;
xx xxValue() 将此 BigDecimal 转换为 xx类型(xx表示基本数据类型,char,boolean除外)。 - 能准确表示和计算浮点数
add 取代 +
subtract 取代 -
multiply 取代 *
divide 取代 /
8.Date(java.util.Date)
- 处理日期,时间;
- 大部分的方法已过时,不推荐使用,但是你使用过时的方法也不会报错。
- Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
- Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
- boolean after(Date when) 测试此日期是否在指定日期之后。
- boolean before(Date when) 测试此日期是否在指定日期之前。
9.SimpleDateFormat
- java.text.SimpleDateFormat
- SimpleDateFormat 是一个与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
- SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
- public final String format(Date date)将一个 Date 格式化为日期/时间字符串。
- public Date parse(String source) throws ParseException:把字符串source表示的时间按source的格式转成Date对象。
10.Calendar
- 推荐使用处理日期和时间的类Calendar;
是抽象类,不能实例化,通过
static Calendar getInstance() 获得一个Calendar对象。
int get(int field):返回指定日历字段值 - 静态常量:
YEAR 表示年的字段数字。
MONTH 表示月份字段数字,月份范围是[0,11]。
DATE 表示一个月中的某天。
DAY_OF_MONTH 表示一个月中的某天。
DAY_OF_WEEK 表示一个星期中的某天。
HOUR_OF_DAY / HOUR 表示第几小时
MINUTE 表示第几分钟
SECOND 表示第几秒
11.System
- System 类包含一些与系统相关的类字段和方法。它不能被实例化,类中所有属性和方法都是static,可直接被System调用。
- 常用方法:
static void exit(int status) 终止虚拟机的运行.对于发生了异常情况而想终止虚拟机的运行,传递一个非0数值,对于正常情况下退出系统传递0值; 该方法实际调用的是 Runtime.getRuntime().exit(int status);
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 数组拷贝
static long currentTimeMillis() 返回以毫秒为单位的当前时间。
String getenv(String name) 获得指定的环境变量;
static void gc() 运行垃圾回收器。
实际上调用了 Runtime中的gc()方法;
Runtime.getRuntime().exec("notepad ");
static Properties getProperties() 取得当前的系统属性。
static String getProperty(String key) 取得指定键指示的系统属性。
static String getProperty(String key, String def) 获取用指定键描述的系统属性,def表示默认信息。
12.正则表达式
Pattern类和Matcher类
两个类存在于java.util.regex包中;
Pattern类主要是编写正则表达式规范;
Matcher类主要是执行规范,验证字符串是否符合其规范;