0
点赞
收藏
分享

微信扫一扫

Java基础之常用API(七)

黎轩的闲暇时光 2022-03-22 阅读 92
java

Java常用API(类)----还用很多可以查手册

Java中Object类的方法

Object类是所有类的根父类, Java中的类要么直接继承Object要么间接继承Object

Java中的继承是可传递的, 所以Object类的方法所有的类都能继承到

protected Object:clone() 对象的克隆

	对象克隆, 是在堆中再创建一个完全一样的对象 

boolean:equals(Object obj) 判断对象的内容是否一样.

​ 使用关系运算符 == 判断两个引用是否指向堆中的同一个对象

​ 用equals()方法判断两个对象的内容是否一样,即各个字段值是否相等

protected void:finalize() 当垃圾回收器回收这个对象时,会调用该方法

​ 当一个对象没有变量引用它时, 垃圾回收器就会把这个对象释放, 回收该对象时会调用对象的finalize()方法, 垃圾回收器在什么时候回收这个对象不确定, finalize()方法的执行时间不确定, 该方法一般不用

Class<?>:getClass() 返回对象的运行时类.

​ 返回对象的运行时类对象

int:hashCode() 返回对象的哈希码.

​ 如果两个对象equals()相等, 这两个对象的哈希码也应该相等

​ 在重写equals()方法时,必须同时重写hashCode()

void:notify() 唤醒等待中的线程

​ 线程等待/唤醒线程 ( wait()/notify()

void:notifyAll()

String:toString() 把对象转换为字符串.

​ 作用是把对象转换为字符串

void:wait() 线程等待

Java字符串类型

***String/StringBuffer/StringBuilder三个类,都是表示字符串的类 ***

String常用操作:

● String常用操作

char:charAt(int index) 返回指定索引位置的字符

int:compareTo(String anotherString) String类实现了Comaprable接口,可以比较两个字符串的大小, 遇到第一个不相同的字符, 码值相减

String:concat(String str) 在当前字符串的后面连接str字符串

boolean:contains(CharSequence s) 在当前字符串中判断是否包含指定的字符串s, 如果包含返回true

boolean:endsWith(String suffix) 判断当前字符串是否以suffix结尾

boolean:equals(Object anObject) 判断两个字符串的内容是否一样

boolean:equalsIgnoreCase(String anotherString)忽略大小写

staticString:format(String format, Object… args) 字符串的格式化

byte[]:getBytes() 返回当前字符串在默认的编码格式下对应的字节数组

byte[]:getBytes(String charsetName) 返回当前字符串在指定的编码格式下对应的字节数组

void:getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 把当前字符串[srcBegin,srcEnd) 范围内的字符复制到dst数组中desBegin开始的位置

int:hashCode()

int:indexOf(int ch) 返回字符ch在当前字符串中第一次出现的位置

int:indexOf(int ch, int fromIndex). 返回字符ch在当前字符串中从fromIndex开始第一次出现的位置

int:indexOf(String str) 返回字符串str在当前字符串中第一次出现的位置

int:indexOf(String str, int fromIndex) 返回字符串str在当前字符串中从fromIndex开始第一次出现的位置

String:intern()返回当前字符串对应的字符串常量

boolean:isEmpty() 判断当前字符串是否为空串

int:lastIndexOf(int ch) 返回字符ch在当前字符串中最后一次出现的位置

int:lastIndexOf(int ch, int fromIndex)

int:lastIndexOf(String str) 返回字符串str在当前字符串中最后一次出现的位置

int:lastIndexOf(String str, int fromIndex)

int:length() 返回字符串中字符的个数

boolean:matches(String regex) 判断当前字符串是否匹配指定的正则表达式

String:replaceAll(String regex, String replacement) 把当前字符串中符合regex正则表达式的字符串替换为replacement

String[]:split(String regex) 使用正则表达式regex把当前字符串进行分隔

boolean:startsWith(String prefix)

String:substring(int beginIndex) 返回从beginIndex开始到最后的子串

String:substring(int beginIndex, int endIndex) 返回从beginIndex开始到endIndex范围内的子串

char[]:toCharArray() 把字符串转换为字符数组

String:toLowerCase() 把大写字母转换为小写字母

String:toString()

String:toUpperCase() 把小写字母转换为大写字母

String:trim() 去掉前后的空白字符

staticString:valueOf(int i) 把基本类型转换为字符串

staticString:valueOf(Object obj)

String是不可变的:

在这里插入图片描述

StringBuilder/StringBuffer

1、String内容是不可变的字符,String底层使用了一个不可变的字符数组(final char[])

注:final修饰一个类,这个类不可以被继承,若是修饰一个变量,这个变量被赋值后不可以改变

StringBuilder和StringBuffer底层是可变的字符数组

String进行拼接 String = “a”+“b”;//在此创建了三个对象2)、

StringBuilder sb = new StringBuilder();

sb.append(“a”).append(“b”);

//仍然还是原来的对象所以拼接字符串尽量不要用String进行拼接

StringBuilder是线程不安全的效率高,StringBuffer是线程安全的,效率低

StringBuffer在append方法上增加了sycronize线程锁

常用方法:

append方法
public StringBuffer append(boolean b)
该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接,调用该方法以后,StringBuffer对象的内容也发生改 变。

deleteCharAt方法
public StringBuffer deleteCharAt(int index)
该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。

insert方法

public StringBuffer insert(int offset, boolean b),
该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串

reverse方法*
public StringBuffer reverse()
该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串

setCharAt方法
public void setCharAt(int index, char ch)该方法的作用是修改对象中索引值为index位置的字符为新的字符char.

trimToSize方法
public void trimToSize()
该方法的作用是将StringBuffer对象的中存储空间缩小到和字符串长度一样的长度,减少空间的浪费,和String的trim()是一样的作用,不在举例。

length方法
该方法的作用是获取字符串长度 ,不用再说了吧。

setlength方法
该方法的作用是设置字符串缓冲区大小。
StringBuffer sb=new StringBuffer();
sb.setlength(100);
如果用小于当前字符串长度的值调用setlength()方法,则新长度后面的字符将丢失。

sb.capacity方法

方法的作用是获取字符串的容量。
StringBuffer sb=new StringBuffer(“string”);
int i=sb.capacity();

ensureCapacity方法

方法的作用是重新设置字符串容量的大小。
StringBuffer sb=new StringBuffer();
sb.ensureCapacity(32); //预先设置sb的容量为32

getChars方法
该方法的作用是将字符串的子字符串复制给数组。
getChars(int start,int end,char chars[],int charStart);

java包装类

常用方法:

就是将int/String/long…变成对象,包装类;


	public static void main(String[] args) {
		Integer i1 = new Integer(147);
		
		//每个包装类都有一个value字段,保存的是这个包装类对应的基本类型数据
		//1) 从Number继承的方法,可以把包装类对象转换为基本类型的数据, 实际上是把value字段进行强制类型转换
		double dd = i1.doubleValue();
		byte bb = i1.byteValue(); 			//-128~127
		System.out.println( dd );
		System.out.println( bb  );
		
		//2)包装类都实现了Comparable接口,重写了compareTo()方法, 可以比较两个包装类的大小, 根据value字段
		Integer i2 = new Integer("258");
		System.out.println( i1.compareTo(i2));    		//-1  表示i1小于i2
		Boolean bb1 = new Boolean(true);
		Boolean bb2 = new Boolean(false);
		System.out.println( bb1.compareTo(bb2)); 		//1
		
		//3) 都重写了equals()
		System.out.println( i1.equals(i2));
		System.out.println( bb1.equals(bb2));
		//小数采用近似值保存,有时不准确, 如0.1在计算机中是无法准确的表示
		System.out.println( Double.doubleToLongBits(1.1));
		System.out.println( Double.doubleToLongBits(0.9));
		System.out.println( 2 - 1.1 );
		System.out.println( Double.doubleToLongBits(2-1.1));
		System.out.println( Double.doubleToLongBits(2-1.1) == Double.doubleToRawLongBits(0.9));
		
		//4) Integer.parseInt(String)可以把字符串转换为int数据
		String text = "456";
		int num = Integer.parseInt(text);
		System.out.println( num );
		//Double.parseDouble(String)可以把字符串转换为double数据
		double pi = Double.parseDouble("3.14");
		//Boolean.parseBoolean(String) 可以把字符串转换为boolean数据
		boolean flag = Boolean.parseBoolean("true");
		//在把字符串转换为基本类型数据时, 字符串要符合目标类型的格式
//		num = Integer.parseInt("3.14");  //java.lang.NumberFormatException
		
		//5) 把十进制数转换为二进制/八进制/十六进制
		System.out.println( Integer.toBinaryString(100));
		System.out.println( Integer.toOctalString(100));
		System.out.println( Integer.toHexString(100));
		
		//6) toString(int) 把基本类型转换为字符串
		text = Integer.toString(100);
		text = Double.toString(3.14);
		text = Boolean.toString(false);
		
		//7) valueOf() 把基本类型/字符串转换为包装类对象
		i1 = Integer.valueOf(258);
		i1 = Integer.valueOf("147");  	//字符串要符合数字格式		
		Double double1 = Double.valueOf(3.14);
		double1 = Double.valueOf("3.56");		
		Boolean boolean1 = Boolean.valueOf(false);
		boolean1 = Boolean.valueOf("adjklfj");	
举报

相关推荐

0 条评论