Java常用类

Java常用类学习笔记

Object类

Object类是 java.lang 包下的核心类,Object类是所有类的父类,何一个类时候如果没有明确的继承一个父类的话,那么它就是Object的子类;

Object类的方法:

  1. clone( ):创建并返回此对象的一个副本。
  2. equals(Object obj):指示其他某个对象是否与此对象“相等”。
  3. finalize( ):当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
  4. getClasss( ):返回此 Object 的运行时类。
  5. hashCode( ):返回该对象的哈希码值。
  6. toString( ):返回该对象的字符串表示。
  7. notify( ):唤醒在此对象监视器上等待的单个线程。
  8. notifyAll( ):唤醒在此对象监视器上等待的所有线程。
  9. wait( ):在其他线程调用此对象的notify( )方法或 notifyAll( )方法前,导致当前线程等待。(还有几个参数方法参考API文档)

面试题:
为什么重写equals 的时候必须重写hashcode 方法?

如果要比较两个对象是否相等,先需要重写 hashcode() 方法,然后再去重写equals() 方法,才能保证对象相等,保证对象能够相等

标注黑体的是常用方法

Math类

成员方法
abs(int a):绝对值
ceil(double d):向上取整
floor(double d):向下取整
max(int a,int b):最大值
pow(double a,double b):a的b次幂
random():随机数[0.0,1.0]
round(float f):四舍五入
sqrt(double d):算术平方根

Random类

1)构造方法
Random():以当前时间毫秒值作为种子,创建Random对象
Random(long seed):以指定种子创建Random对象
2)成员方法
nextInt():生成1个int类型范围的随机数
nextInt(int n):产生1个[0,n-1]范围内的随机数

生成0~n之间的数
①(int)Math.random()(n+1)
②Random r = new Random();
r.nextInt(m)表示生成[0,m-1]之间的随机数,也就是说random.nextInt(m+1),将生成[0,m]之间的随机整数。
r.nextInt(n+1)
生成n~m之间的随机数
①n+(int)(Math.random()
(m+1-n));
②Random r = new Random();
r.nextInt(m+1-n)+n;

包装类

BigInteger类

1)构造方法
BigInteger(String s):通过字符串创建BigInteger对象
2)成员方法
add(BigInteger bi):+
subtract(BigInteger bi):-
multiply(BigInteger bi): *
divide(BigInteger bi): /

BigDecimal类

用于解决浮点型运算精度损失的问题
1)构造方法
BigDecimal(String s):通过字符创建BigDecimal对象
2)成员方法
add(BigDecimal bi):+
subtract(BigDecimal bi):-
multiply(BigDecimal bi): *
divide(BigDecimal bi): /

Date类

表示特定的瞬间,精确到毫秒值
1)构造方法
Date():以当前时间毫秒值创建Date对象
Date(long time):以指定的毫秒值创建Date对象
2)成员方法
long getTime():获取Date对象的毫秒值
setTime(long time):设置Data对象的毫秒值

DateFormat

它是一个抽象类,用来格式化或者解析日期
格式化:Date————》String
解析:String————》Date

getDateInstance(int style,Locale loc):获取日期格式器,该格式器具有给定的语言环境和给定的格式化风格
String format(Date date):格式化
Date parse(String time):解析

SimpleDateFormat

它是DateFormat的子类
1)构造方法
SimpleDateFormat():以默认模式创建对象
SimpleDateFormat(String pattern):以指定模式创建对象

常用模式
yyyy:年 MM:月 dd:日
HH:时 mm:分 ss:秒

2)常成员方法
String format(Date date):格式化
Date parse(String time):解析

Calendar类

日历类,用于获取或者操作日历字段(年月日)
该类是一个抽象类,不可以实例化
成员方法
static Calender getInstance():以默认时区和语言创建日历
int get(int field):获取指定字段的日历值
set(int field,int value):给指定的日历字段设置指定的值
set(int year,int month,int date):设置年月日
Date getTime():获取日历对象的日期
setTime(Date d):设置日历对象的日期
add(int field,int amount):对指定的日历字段添加指定的值

String类

表示的是字符串,字符串是常量(值定义了之后,不可修改)
字符串可以看出是多个字符的连接
1)构造方法
String():创建一个空的字符串
String(byte[] bys):通过字节数组创建字符串
String(char[] chs):通过字符数组创建字符串
String(byte[] bys,int offset,int length):通过字节数组一部分创建字符串
String(char[] chs,int offset,int length):通过字符数组一部分创建字符串
String(String original):通过字符串常量值创建字符串

2)成员方法
1》判断功能
equals(Object obj):比较两个字符串是否相等
equalsIngnoreCase(Object obj):忽略大小写比较两个字符串是否相等
contains(String str):是否包含指定字符串
startsWith(String str):是否以指定的字符串开头
endWith(String str):是否以指定的字符串结尾
isEmpty():是否为空
matches(String regex):判断字符串是否匹配给定的正则表达式。

2》获取功能
length():获取长度
charAt(int index): 获取指定索引位置处的字符
indexOf(int ch):获取指定字符第一次出现的索引值(从0开始)
indexOf(int ch,int fromIndex):获取从指定索引位置开始,获取指定字符第一次出现的索引值
indexOf(String s):获取指定字符串第一次出现的索引值
indexOf(String s,int fromIndex):获取从指定索引位置开始,获取指定字符串第一次出现的索引值
lastIndexOf(int ch):获取指定字符最后一次出现的索引值
substring(int start):从指定位置开始一直截取到末尾
substring(int start,int end):截取[start,end-1]范围

3》转换功能
byte[] getBytes():将字符串转成字节数组
char[] toCharArray():将字符串转成字符数组
static valueOf(char[] chs):将char[]转成字符串
static valueOf(int num):将int类型转成字符串
static valueOf(Object obj):将任意类型转成字符串
toLowerCase():转成小写
toUpcase():转成大写
concat(String str):字符连接

4》其他功能
replace(char old,char new):将old字符替换成new字符
replace(String old,String new):将old字符串替换成new字符串
trim():去除两边空格
int compareTo(String s):字典比较,如果前面值小于后面值返回负数,否则返回正数,先比较第一个元素,如果相等再比较第二个元素...返回元素之间的差值;如果比较字符串有包含关系,返回的值是它们长度的差值
int compareToIgnoreCase(String s):忽略大小写字典比较

String replaceAll(String regex, String replacement):使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex, String replacement):使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
String[] split(String regex): 根据给定正则表达式的匹配拆分此字符串。
String[] split(String regex, int limit): 根据匹配给定的正则表达式来拆分此字符串。

/*
 * 字符串做连接操作
 * 如果是两个变量进行连接,先开辟空间,再连接
 * 如果是两个常量进行连接,先连接,获取连接结构值。然后在常量池里面查找有没有这个结果值,如果有,直接给地址值;没有,开辟空间
 */
public class StringTest02 {
	public static void main(String[] args) {
		String s1 = "hello";
		String s2 = "world";
		String s3 = "helloworld";	
		System.out.println(s3 == s1+s2);                  //false
		System.out.println(s3.equals(s1+s2));             //true
		System.out.println(s3 == "hello"+"world");        //true
		System.out.println(s3.equals("hello"+"world"));   //true
	}
}

编码表
编码表:由现实世界的字符和对应的数值组成的一张表
常见的有:
1)ASCII码:最高为是符号为,其他是数值位
2)ISO-8859-1:拉丁码表
3)BG2312:中文编码表
4)GBK:GB2312的升级版,1个汉字对应2个字节
5)GB18030:GBK的升级版
6)BIG-5:中文繁体编码表,俗称"大5码"
7)Unicode:国际标注码。所有字符都有两个字节表示
Java默认使用该编码表
8)UTF-8:万国码,一个汉字对应3个字节
tips:所有编码表都兼容ASCII码表

String中与字符集相关的方法
String(byte[] by,String charset):通过指定的字符集,将指定的字节数组转成字符串(解码)
byte[] getBytes(String charset):通过指定的字符集,将字符串转成字节数组(编码)

正则表达式
负责字符串的匹配处理(一般用于校验字符串格式)
规则
1)字符
x:x字符,a表a字符
\:反斜线字符
\n:换行符
\r:回车符
2)字符类

3)预定义字符类
.:表示任意字符
.:表示'.'字符
\d:表示数字字符,[0-9]
\w:表示单词字符,[a-zA-Z_0-9]
4)边界匹配器
^:表示行的开头
$:表示行的结尾
\b:表示单词的边界
5)数量词
?:表示0次或者1次
*:表示0次或者多次
+:表示1次或者多次
{n}:表示n次
{n,}:表示至少n次
{n,m}:n~m次

StringBuilder类

线程不安全的可变字符序列
1)构造方法
StringBuilder():以默认容量创建空的StringBuilder对象
StringBuilder(int capacity):以指定容量创建空的StringBuilder对象
StringBuilder(String str):以指定的字符串创建StringBuilder对象
2)成员方法
获取功能
int capacity():获取容量
int length():获取长度
添加功能
append(int value):追加。可以追加多种类型
insert(int offset,String s):在指定的位置插入指定数据
删除功能
deleteCharAt(int index):删除指定索引处的元素
delete(int start,int end):删除[start,start-1]范围内的元素
替换功能
replace(int start,int end,String s):将[start,end-1]范围内的元素替换成指定字符串
反转功能
reverse():元素反转
截取功能
String subString(int start):截取指定位置一直到末尾
String subString(int start,int end):截取[start,end-1]范围

String、StringBuilder和StringBuffer的区别?
String内容不可改变
StringBuilder和StringBuffer内容可变
StringBuilder是线程不安全的,不同步,效率高
StringBuffer是线程安全的,同步,效率低

posted @ 2021-02-02 15:15  橘子有点甜  阅读(52)  评论(0编辑  收藏  举报