API常见对象

异常

静态导入

格式:import static 包名.类名.方法名
作用:不用再使用类名.方法名调用,可直接使用方法名
注意:方法必须是静态的,若有多个同名静态方法,则不知道使用谁

可变参数

使用:在定义方法却不知道该定义多少个参数时
格式:修饰符 返回值类型 方法名(数据类型...变量名){}
注意:此变量其实是数组,若一个方法有可变参,并且有多个参数,那可变参放在最后一位
	当遇到重载时,优先考虑固定参数的方法,因为匹配度更高

类间转换

java.lang

  • 基础包–无需导包

1.Object类

  • 概述
1.所有的类都直接或间接的继承自Object2.子类构造方法默认先访问父类无参构造方法
	Object类的构造方法只有一个,且是无参构造
 - native本地的 不通过Java实现
  • 方法
public boolean equals(Object obj)
	默认情况下,比较的是地址值是否相同--return (this==obj);
	但比较地址值是没有意义的,所以一般子类会重写该方法
		--->使用String类中已经重写好的equals比较字面值
	当此方法被重写时,hashCode也有必要重写	
public int hashCode()
	返回对象的哈希值,通过哈希值确定对象在哈希表中的索引位置
	注意:哈希值是根据哈希算法计算出来的一个值,该值与地址有关
public final Class getClass()
	返回Object运行时类
public String toString()
	返回对象的字符串表示
		默认是由类的全路径+'@'+哈希值的十六进制表示
		this.getClass().getName()+"@"+Integer.toHexString(this.hashCode())
	这个表示是没有意义的,所以一般子类都会重写该方法
	直接输出对象名 == 调用该对象的toString()
protected void finalize()
	用于垃圾回收,在不确定的时间
protected Object clone()
	对象的克隆
	需实现Cloneable接口
	只是复制一份,地址值并没有关联
  • 注意
==equals()的区别
	==
	 基本类型:比较的是值是否相同
	 引用类型:比较的是地址值是否相同
    equals()
	 只可用于引用类型
	 引用类型默认情况下比较的是地址值是否相同,但可根据自己的需要重写该方法
	 String类重写equals(),比较值是否相等
  • 为什么需要hashCode(以HashSet查重为例)
当对象加入HashSet时,计算该对象的hashCode来确定对象的加入位置,同时与其他hashCode相比较
若hashCode不同,则HashSet认为对象未重复
若hashCode相同,则调用equals判断对象是否真相同
若相同,则不让其加入,若不同,则按哈希冲突处理办法
这样做减少了equals的次数,大大提高执行速度

2.String类

  • 概述
1.字符串:多个字符组成的数据,可看成是字符数组
2.字符串字面值"abc"可以看成是字符串对象
	String str="abc"
3.字符串是常量,一旦赋值就不能改变
	底层使用private final char[] ch来保存字符串,不向外暴露,也不能被子类继承,所以不可变
	由于字符串不可变,可以认为是常量,线程安全
4.字符串常量池是Java为提升性能,减少内存消耗开辟的区域,主要为了避免字符串重复创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 构造方法
public String()
	无参构造
public String(String str)
	将字符串常量值转成字符串
public String(StringBuffer sb)StringBuffer值转成字符串
public String(byte[] bytes)
	将字节数组转成字符串
public String(byte[] bytes,int index,int length)
	将字节数组的一部分转成字符串
public String(char[] value)
	将字符数组转成字符串
public String(char[] value,int index,int count)
	将字符数组的一部分转成字符串
  • 成员方法
判断功能
	boolean equals(Object obj)
		比较字符串内容是否相同,区分大小写
	boolean equalsIgnoreCase(String str)
		比较字符串内容是否相同,忽略大小写
	boolean contains(String str)
		判断大字符串中是否包含小字符串,注意字符串是一个整体
	boolean startsWith(String str)
		判断字符串是否以某个指定的字符串开头
	boolean endsWith(String str)
		判断字符串是否以某个指定的字符串结尾
	boolean isEmpty()
		判断字符串是否为空
获取功能
	int length()
		获取字符串长度
	char charAt(int index)
		获取指定索引位置的字符,第一个元素的索引是0
	int indexOf(int ch)
		获取指定字符在此字符串中第一次出现的索引
		为什么是int类型而不是char类型?'a'97都可以代表a
	int indexOf(String str)
		获取指定字符串在此字符串中第一次出现的索引
	int indexOf(int ch,int fromIndex)
		获取指定字符在此字符串中从指定位置后第一次出现的索引
	int indexOf(String str,int fromIndex)
		获取指定字符串在此字符串中从指定位置后第一次出现的索引
	String substring(int start)
		从指定位置开始截取字符串,默认到末尾
	String substring(int start,int end)
		从指定位置开始到指定位置结束截取字符串 包左不包右
转换功能
	byte[] getBytes(String str)
		将字符串转换为字节数字
	char[] toCharArray(String str)
		将字符串转换为字符数组
	static String valueOf(XXX xxx)
		String类的valueOf方法可以将任意类型的数据转成字符串
	String toLowerCase()
		将字符串转成小写
	String toUpperCase()
		将字符串转成大写
	String concat(String str)
		将字符串拼接  +其实也可以拼接
其他功能
	替换功能
		String replace(char old,char newCh)
		String replace(String old,String newCh)
	去除字符串两端的空格
		String trim()
	按字典顺序比较两字符串
		int compareTo(String str):区分大小写
		int compareToIgnoreCase(String str):不区分大小写
	将指定字符串保存到常量池 native intern()
		常量池中存在该对象,直接返回
		常量池中不存在该对象,创建指向该对象的引用后返回

/

3.StringBuffer类

  • 线程安全
安全——同步
	我在操作时,别人不能操作(银行取钱)
	数据安全
不安全——不同步
	效率高
  • 作用
线程安全的可变字符串
	解决对字符串每次拼接都要建立新String类耗时废空间的问题,提高字符串的操作效率
**不能直接将String类型的值赋给StringBuffer 
  • StringBuffer与String的区别
1.StringBuffer:线程安全的可变字符串,即长度内容可变
	继承AbstractStringBuilder,同样使用字符数组保存数组,但未只用private final修饰,所以长度可变
	方法加了同步锁,所以线程安全
2.String:长度内容不可变
  • 构造方法
public StringBuffer()
	无参构造方法
public StringBuffer(int capacity)
	指定容量的字符串缓冲区对象
public StringBuffer(String str)
	指定字符串内容的字符串缓冲区对象
  • 成员方法
获取功能
	int capacity()
		返回当前容量,理论值  
		默认16,指定容量创建时为创建容量,指定字符串创建时为16+字符串长度
	int length()
		返回当前长度,实际值
添加功能
	Stringbuffer append(XXX xxx)
		将任意的类型添加到字符串缓冲区里,并返回字符串缓冲区本身
	Stringbuffer insert(int offset,XXX xxx)
		指定位置将任意类型的数据插入到字符串缓冲区里,并返回字符串缓冲区本身
删除功能
	StringBuffer deleteCharAt(int index)
		删除指定位置的字符(一个),并返回本身
	StringBuffer delete(int start,int end)
		删除从指定位置开始到指定位置结束的内容,并返回本身,包左不包右**
替换功能
	StringBuffer replace(int start,int end,String str)
		从指定位置开始到指定位置结束间的字符串被str替换,包左不包右**
反转功能
	StringBuffer reverse()
		输入abc,输出cba
截取功能
	String substring(int start)
	String substring(int start,int end)
	注意返回值类型是String类型,即不改变创建的StringBuffer对象的内容
	***以上的功能都是对本身进行操作

在这里插入图片描述

  • 思考题
    在这里插入图片描述

4.StringBuilder类

  • 线程不安全,不同步,效率高
  • 字符串拼接符+底层使用StringBuilder的append,每次+都会创建对象(+和+=是Java唯一重载的字符串)

5.包装类

  • 概述
1.为了对基本数据类型进行更多更方便的操作,Java针对每种基本类型提供了对应的类类型
2.为了方便与String的作用
  • boolean–Boolean
  • byte–Byte
  • char–Character
构造方法
	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)
		将给定的字符转换为小写字符
  • short–Short
  • int–Integer
字段摘要
	public static final int MAX_VALUE
		获取int类型最大值
	public static final int MIN_VALUE
		获取int类型最小值
构造方法
	public Integer(int value)
	public Integer(String s)
		注意:这个字符串必须由数字字符组成
成员方法
	基本进制转换
		public static String toBinaryString(int i)
		public static String toOctalString(int i)
		public static String toHexString(int i)
		public static String toString(int i,int radix)
			radix表示进制数
	类型转换
		public static int parseInt(String s)
			将字符串类型转换成整形
		public static int parseInt(String s,int radix)
			radix表示进制数
	保存值
		public static Integer valueOf(String s)
			返回保存指定的 String 的值的 Integer 对象
		public static Integer valueOf(String s,int radix)
			返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值
		public static Integer valueOf(int i)
			返回一个表示指定的 int 值的 Integer 实例

在这里插入图片描述

  • long–Long
  • float–Float
  • double–Double

6.自动拆装箱

  • 自动装箱:将基本类型转换成包装类型 valueOf()
  • 自动拆箱:将包装类型转换成基本类型 xxValue()
Integer itg = 100;(自动装箱)
int i = itg;(自动拆箱)

7.常量池技术

  • Byte,Short,Integer,Long创建[-128,127]缓冲区
  • Character创建[0,127]缓冲区
  • Boolean直接返回true或false
  • Float与Double不存在缓冲区
  • 超出缓冲区范围才会创建新对象
    在这里插入图片描述

8.Math类

  • 概述:包含基本数学运算的方法
  • 成员变量
public static final double PI
public static final double E
  • 成员方法
public static int abs(int a)
	绝对值
public static double ceil(double a)
	向上取整
public static double floor(double a)
	向下取整,小数部分取0
public static int round(float a)
	四舍五入
public static int round(double a)
	四舍五入
public static int max(int a,int b)
	最大值
public static int min(int a,int b)
	最小值
public static double pow(double a,double b)
	a的b次幂
public static double sqrt(double a)
	正平方根
public static double random()
	随机数[0.0,1.0)
		获取在start到end之间的随机数
			int number=(int)(Math.random()*(end-start+1))+start;

9.System类

  • 不能被实例化
  • 成员方法
public static void exit(int atatus)
	终止当前正在运行的虚拟机
	参数用作状态码
		非0表示异常终止
		0表示正常
public static long currentTimeMillis()
	返回以毫秒为单位的当前时间
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
	从指定源数组src中复制到新数组dest,复制从指定位置开始,到目标数组的指定位置结束

10.反射

java.util

  • 工具包–必须要导包

1.Scanner类

  • 构造方法
public Scanner(InputStream source)
	
创建sc对象的一般格式
	Scanner sc=new Scanner(System.in)
		System.in:System中静态字段,记录键盘录入信息
  • 成员方法
public boolean hasNextXxx()
	判断是否还有下一个输入,Xxx代表类型
	若判断是否包容下一个字符串可省Xxx
public Xxx nextXxx()
	获取下一个输入项
	nextInt():获取intnextLine():获取字符串
  • 注意
使用同一sc获取值时,若先获取一个int,再获取一个StringString类型则会被int输入完后的回车键所替代

解决办法
	1.int值输入后,使用空nextLine()接收回车,再用nextLine()正常接收字符串
	2.将所有的数据都按字符串获取,然后需要什么类型在强制类型转换即可

2.Arrays类

  • 概述:针对数组进行操作的工具类
  • 成员方法
public static String toString(int[] a)
	将数组转成字符串[元素1,元素2,...]
public static void sort(int[] a)
	对数组排序--->底层:快速排序
public static void sort(Object[] a)
	对对象数组进行排序
	数组中的所有元素都必须实现 Comparable 接口
		Students implements Comparable{
			重写compareTo方法
		}
		Students []s = new Students[5];
	    Arrays.sort(s);//数组中的所有元素都必须实现 Comparable 接口
public static int binarySearch(int[] a,int key)
	二分查找
public static <T> List <T> asList(T...s)
	将数组转成集合,但是长度还是不能改变

sort实现Comparable接口–重写compareTo方法
在这里插入图片描述
在这里插入图片描述

3.Random类

  • 作用:产生随机数
  • 构造方法
public Random()
	没给种子,用的是默认的种子,是当前时间的毫秒值,即每次产生的随机数不同
public Random(long seed)
	给出指定的种子,每次产生的随机数相同
  • 成员方法
public int nextInt()
	返回的是int范围内的随机数
public int nextInt(int n)
	返回的是[0,n)范围内的随机数

4.Date类

  • 表示特定的瞬间,精确到毫秒
  • 构造方法
public Date()
	根据当前的默认毫秒值创建日期对象
public Date(long date)
	根据给定的毫秒值创建日期对象
	应用场景:文件最后修改时间获取的是毫秒数 需要通过构造函数创建日期对象
  • 成员方法
public long getTime()
	获取时间,以毫秒为单位
public void setTime(long time)
	设置时间

在这里插入图片描述

5.DateFormat类

  • 日期或字符串的格式化解析
  • 抽象类,使用具体子类SimpleDateFormat

6.SimpleDateFormat类

  • 构造方法
SimpleDateFormat()
	默认格式,线程不安全
SimpleDateFormat(String pattern)
	给定格式,SimpleDateFormat("yyyy-MM-dd hh:mm:ss E")
  • 成员方法
format(Date date)
	将一个 Date 格式化为日期/时间字符串
parse(String s)
	解析字符串的文本,生成 Date
	进行解析时,字符串格式必须和SimpleDateFormat(String pattern)中的模式相匹配

在这里插入图片描述

7.Calendar类

  • 为特定瞬间和一组形如YEAR DAY_OF_MONTH等日历字段之间的转换提供方法
  • Calendar c = Calendar.getInstance();//不可以直接new,必须调用此方法创建实例对象
  • 成员方法
public int get(int field)
	返回给定日历字段的值
	日历类中每个日历字段都是静态成员变量,并且是int类型
public void add(int field,int amount)
	为给定的日历字段添加或减去指定的时间量
		c.add(Calendar.YEAR, 2);
		c.add(Calendar.YEAR, -4);
public final void set(int year,int month,int date)
	设置当前日历的年月日

集合

IO流

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值