API.常用类大总结

常用类

1. Object

1.1 构造方法

public Object();

1.2 成员方法

public int hashCode() 返回对象的hashCode值(默认地址值经过运算得到的一个int值)

public final Class getClass() 获得Class对象,该对象中包含所有类的信息

public String toString(): 对象的字符串形式(默认是全类名+地址值),可重写

public boolean equals(Object obj): 判断两个对象是否是同一个对象,默认用==实现

native: 修饰方法,被native修饰的方法底层一般是使用C语言实现的; 效率高

重写toString 案例

如果想要在打印对象的时候,打印出来的是属性值,可以通过重写toString方法的方式实现

右键->source-> generate toString

1.3 hashCode和equals

hashCode:

​ 如果两个对象的hashCode值不同,代表他们一定不是同一个对象,

​ 如果得到的hashCode值相同, 也不一定是同一个对象

​ hashCode默认比较的是地址值

equals:

​ 判断两个对象是否是同一个对象(默认是== 实现的,可重写)

用法:

​ 一般我们在比较对象是否是同一个对象的时候,是同时使用hashCode和equals

​ 1. 先用hashCode作比较:

​ 如果hashCode不同: 一定不是同一个对象

​ 如果hashCode相同: 不一定,继续比较equals:

​ equals:

​ true 说明是同一个对象

​ false 不是同一个对象

​ 2. 为了保证equals和 hashCode结果的一致性

​ 我们在重写equals方法的同时,也要重写hashCode(约定俗称)

重写hashCode和equals比较属性值的方法

​ 右键->source-> generate hashCode and equals

==:能够比较基本类型 也能够比较引用类型

​ 比较基本类型 比较的是值是否相同

​ 比较引用类型 比较的是地址值是否相同

equals:只能比较引用类型

​ 比较引用类型 比较的是内容是否相同

2. String

2.1 构造方法

public String() 创建一个空的字符串 “” 空(null)是指没有地址值

public String(byte[] bytes) 把一个byte类型的数组转换为字符串

public String(byte[] bytes,int offset,int length) offset:偏移量 length:长度 把一个byte类型的数 组变成字符串 从offset开始 转换length个长度

public String(char[] value) 把一个char数组转为字符串

public String(char[] value,int offset,int count) 把一个char类型的数组变成字符串 从offset开始 转换count个数量


public String(String original)

public class StringDemo1 {
		public static void main(String[] args) {
			String s = new String();	   
       System.out.println(s);
	
	    byte[] by = {97,98,99,100};
	
	    String s1 = new String(by);
	    System.out.println(s1);
    String s2 = new String(by,1,2);
    System.out.println(s2);

    String ss = new String("helloworld");
    String ss2 = "helloworld";

    System.out.println(ss == ss2);
    }
}

2.2 内存分析

如果直接赋值,是存储在常量池中的,相同内容的字符串在常量池中值存储一份
使用new的方式创建的话,存储在堆空间中

我们在使用+ 拼接字符串的时候,如果拼接的内容中存在变量: 存放在堆内存中(底层使用new StringBuilder)

如果都是常量: 存放在常量池中

2.3 成员方法

2.3.1 判断功能

boolean equals(Object obj) 比较字符串的内容

boolean equalsIgnoreCase(String str) 忽略大小写比较字符串的内容

boolean contains(String str) 是否包含

boolean startsWith(String str) 是否以…开始

boolean endsWith(String str) 是否以…结束

boolean isEmpty() 是否为空串​

public static void main(String[] args) {
		String s1 = "java";
		String s2 = "Java";       
        System.out.println(s1.equals(s2));	
	System.out.println(s1.equalsIgnoreCase(s2));
	
	String s3 = "javaphppythonscalajs";
	
	System.out.println(s3.contains(s1));
	
	System.out.println(s3.startsWith("j"));
		
    System.out.println(s3.endsWith("aj"));

String s4 = "";
String s5 = null;

System.out.println(s4.isEmpty());
System.out.println(s5.isEmpty());
}
2.3.2 获取功能

int length() 获取字符串的长度

char charAt(int index) 得到index(从0开始)对应的字符

int indexOf(String str) 返回str在字符串中第一次出现的索引值,不存在返回-1

String substring(int start) 字符串的截取,从start一直截取到最后,包含start

String substring(int start,int end) 截取,[start-end)包含start,不包含end

2.3.3 转换功能

byte[] getBytes() 把一个字符串转成byte数组

char[] toCharArray() 转成char数组

static String valueOf(int i) 把int 转成字符串

String toLowerCase() 转成小写

String toUpperCase() 转成大写

String concat(String str) 字符串的拼接

2.3.4 其他功能

String replace(char old,char new) 替换

String replace(String old,String new) 替换

String trim() 去除首尾空格

int compareTo(String str) 按照字典顺序比较

int compareToIgnoreCase(String str) 不区分大小写按照字典顺序比较

StringBuffer/StringBuilder

3.1 区别

StringBuilder/StringBuffer

​ StringBuilder 线程不安全的(效率高) StringBuffer: 线程安全的

​ String 和 StringBuffer/StringBuilder

​ String: 每次更改,创建新的对象,性能低:
​ StringBuilder: 不需要创建新的,效率高

3.2 构造方法

public StringBuffer()

public StringBuffer(int capacity) 获取容量

public StringBuffer(String str)

成员方法

添加功能

public StringBuffer append(String str) 追加

public StringBuffer insert(int offset,String str) 插入

删除功能

​ public StringBuffer deleteCharAt(int index) 删除执行索引对应的字符

public StringBuffer delete(int start,int end) 删除从[start-end)

替换功能

​ public StringBuffer replace(int start,int end,String str)

反转功能

public StringBuffer reverse() 反转

截取功能

​ public String substring(int start) 字符串的截取

​ public String substring(int start,int end)

可变的字符序列:

  • StringBuffer:线程安全的 速度慢
  • StringBuilder:线程不安全的 速度快
  • public StringBuffer() 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
    public StringBuffer(int capacity)//返回当前容量。
    public StringBuffer(String str)//返回一个新的 String,它包含此序列当前所包含的字符子序列
  • append()往字符串缓冲区里面添加元素

4.Arrays

Arrays类概述:针对数组进行操作的工具类。

​ 提供了排序,查找等功能。

成员方法:public static String toString(int[] a) 打印功能

​ public static void sort(int[] a) 升序功能

​ public static int binarySearch(int 二分查找功能

5.基本类型包装类

含义:为每种基本数据类型都提供了对象的引用数据类型

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

1.和String相互转换

装箱: 把基本数据类型转成包装类(jdk1.5 后,支持自动的拆装箱了)
拆箱: 把包装类转成基本数据类型

基本数据类型和String之间的相互转换:

int – String:直接相加空字符串 基本类型怎么变成字符串

String – int:public static int parseInt(String s) 字符串怎么变成基本类型

2. Integer

概述:Integer 类在对象中包装了一个基本类型 int 的值,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法

构造方法:public Integer(int value)

​ public Integer(String s)

常用的基本进制转换
​ public static String toBinaryString(int i) 转成2进制的字符串
​ public static String toOctalString(int i) 转成8进制的字符串
​ public static String toHexString(int i) 转成16进制的字符串
十进制到其他进制
​ public static String toString(int i,int radix) radix: 转成几进制
其他进制到十进制
​ public static int parseInt(String s,int radix); s: 其他进制的字符串 radix: 该字符串对应的进制



/*
 * 基本类型怎么变成字符串
 * 字符串怎么变成基本类型
 * 
 *  
 */
public class IntegerDemo3 {
	public static void main(String[] args) {
		int a = 12;
		
		String s = a + "";
		
		String s2 = String.valueOf(a);
		
		System.out.println(s + "--" + s2);
		
		System.out.println(s == s2);
		
		
		String ss = "123465";
		
		int i = Integer.parseInt(ss);
		
		System.out.println(i);
	}
}

3.Character

概述:Character 类在对象中包装一个基本类型 char 的值,此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然

构造方法:public Character(char value)

public static boolean isUpperCase(char ch)
public static boolean isLowerCase(char ch)
public static boolean isDigit(char ch)
public static char toUpperCase(char ch)
public static char toLowerCase(char ch)

4.Math

概述:Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

数学工具类 Math

public static int abs(int a) 求绝对值
public static double ceil(double a) 向上取整
public static double floor(double a) 向下取整
public static double pow(double a,double b) a的b次方
public static double random() 求随机数: [0-1)
public static int round(float a) 四舍五入取整
public static double sqrt(double a) 求算数平方根

5.Random

概述:此类用于产生随机数,如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

构造方法:public Random()

​ public Random(long seed)

成员方法:public int nextInt()

​ public int nextInt(int n)

6.System

概述:System 类包含一些有用的类字段和方法。它不能被实例化。l成员方法

成员方法:public static void gc()

​ public static void exit(int status)

​ public static long currentTimeMillis()

​ public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

7.Date

Date类概述:类 Date 表示特定的瞬间,精确到毫秒。

构造方法:public Date() 表示当前时间的一个对象

​ public Date(long date) 得到指定long值对应时间的对象

成员方法:public long getTime() 把日期对象转成毫秒值

​ public void setTime(long time) 将日期设置为毫秒值对应的时间

8.DateFormat

概述:DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat

SimpleDateFormat构造方法:public SimpleDateFormat()

​ public SimpleDateFormat(String pattern)

成员方法:public final String format(Date date) 将一个 Date 格式化为日期/时间字符串。

​ public Date parse(String source) 从给定字符串的开始解析文本,以生成一个日期。

9.正则表达式

概述:是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。

​ 正则表达式本身也是一个字符串,他是有一些特殊含义的字符构成的

​ 正则的实际意义就是为了过滤咱们写的那个字符串

规则字符在java.util.regex Pattern类中

9.1常见组成规则:字符 字符类 预定义字符类​ 边界匹配器 数量词

​ . 任何字符(与行结束符可能匹配也可能不匹配)

​ \d 数字:[0-9]

​ \D 非数字: [ ^0-9 ]

​ \s 空白字符:[ \t\n\x0B\f\r]

​ \S 非空白字符:[ ^\s ]

​ \w 单词字符:[a-zA-Z_0-9]

​ \W 非单词字符:[ ^\w ]

​ X? X, 0次或1次

​ X* X,零次或多次 最少0次

​ X+ X,一次或多次 最少一次

​ X{n} X,恰好 n 次

​ X{n,} X,至少 n 次

​ X{n,m} X,至少 n 次,但是不超过 m 次

​ [abc] a、b 或 c(简单类)

​ \b 单词边界

​ (X) 将X表示的单个或者多个字符当成一组

​ (X){n}

**9.2匹配功能:**使用的是String中的成员方法matches

​ public boolean matches(String regex);

9.3分割功能:

String中的split方法,返回String 数组

String[] split(String regex);

9.4替换功能

String: replaceAll(String regex,String repalcement);

9.5获取功能:

案例:获取字符串"jin tian yao xia yu,da jia pa bu pa ? huang bu huang ? are you sure?" 中使用三个字母组成的单词

正则表达式的获取功能

jin tian yao xia yu, da jia pa bu pa ? huang bu huang ? are you sure ?
​ 获取由三个字符组成的单词
wordcount

//1. 获取Pattern对象
Pattern p = Pattern.compile("\\b[a-zA-Z]{3}\\b");

//2. 获取Matcher,Matcher中封装了所有匹配的结果
Matcher m = p.matcher(str);

//3. 获取结果
while(m.find()) {
	System.out.println(m.group());
}

//System.out.println(m.group());//不能单独使用,需要先调用find()  java.lang.IllegalStateException: No match found

1.find()方法是部分匹配,是查找输入串中与模式匹配的子串,如果该匹配的串有组还可以使用group()函数。matches()是全部匹配,是将整个输入串与模式匹配,如果要验证一个输入的数据是否为数字类型或其他类型,一般要用matches()。

2.Pattern pattern= Pattern.compile(".?,(.)");Matcher matcher = pattern.matcher(result);if (matcher.find()) {return matcher.group(1);}

3.详解:matchespublic static boolean matches(String regex, CharSequence input)编译给定正则表达式并尝试将给定输入与其匹配。 调用此便捷方法的形式 Pattern.matches(regex, input);Pattern.compile(regex).matcher(input).matches() ;如果要多次使用一种模式,编译一次后重用此模式比每次都调用此方法效率更高。

参数:regex - 要编译的表达式input - 要匹配的字符序列 抛出: PatternSyntaxException - 如果表达式的语法无效findpublic boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。

此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。 如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 matcher.start() 返回匹配到的子字符串在字符串中的索引位置.matcher.end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置.matcher.group()返回匹配到的子字符串返回:当且仅当输入序列的子序列匹配此匹配器的模式时才返回 true。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值