Java 常用类

1、 System类

  • System类代表当前Java程序的运行平台,程序不能创建System类的对象,System类提供了一些类变量和类方法,允许直接通过System类来调用这些类变量和类方法。
修饰符返回值类型方法说明
staticlongcurrentTimeMillis()返回以毫秒为单位的当前时间
staticvoidexit(int status)终止当前正在运行的Java虚拟机
staticvoidgc()运行垃圾回收器
staticMapgetenv()返回一个不能修改的当前系统环境的字符串映射视图
staticStringgetenv(String name)获取指定的环境变量值
staticPropertiesgetProperties()确认当前系统属性
staticStringgetProperty(String key)获取指定键指示的系统属性
staticStringgetProperty(String key,String def)获取用指定键描述的系统属性
staticintidentityHashCode(Objectx)返回给定对象的哈希吗,该代码与默认的方法hashCode()返回的代码一样,无论给定对象的类是否重写hashCode()
staticlongnanoTime()返回最准确的可用系统计时器的当前值,以毫微秒为单位

2、 Runtime类

  • Runtime类代表Java程序的运行时环境,可以访问Java的相关信息,每个Java程序都有一个与之对应的Runtime实例,应用程序通过该对象与其运行时环境相连。应用程序不能创建自己的Runtime实例,但可以通过getRuntime()方法获取与之关联的Runtime类。
  • Runtime类是饿汉式单例类。
修饰符返回值类型方法说明
staticRuntimegetRuntime()返回与当前Java应用程序相关的运行时对象
staticintavailableProcesssors()向Java虚拟机返回可用处理器的数目
staticlongtotalMemory()返回Java虚拟机中的内存总量
staticlongfreeMemory()返回Java虚拟机中的空闲内存量
staticlongmaxMemory()返回Java虚拟机试图使用的最大内存量
staticProcessexec(String ommand)在单独的进程中执行指定的字符串命令
staticvoidgc()运行垃圾回收器
staticvoidexit(int status)通过启动虚拟机的关闭序列,终止当前正在运行的Java虚拟机
staticvoidhalt(int status)强行终止目前正在运行的Java虚拟机

3、 String类
3.1、String类常用的构造器

构造器说明
String()初始化一个新创建的String对象,使其表示一个空字符串序列。
String(byte[ ] bytes)通过使用平台的默认字符集码指定的byte数组,构造一个新的String。
String(byte[ ] bytes,Charset charset)通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。
String(byte[ ] bytes,String charsetName)通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。
String(byte[ ] bytes,int offset,int length)通过使用平台的默认字符集码指定的byte子数组,构造一个新的String。
String(byte[ ] bytes, int offset,int length,Charset charset)通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。
String(byte[ ] bytes, int offset,int length, String charsetName)通过使用指定的字符集码指定的byte子数组,构造一个新的String。
String (char[ ] value)分配一个新的String,使其表示字符数组参数中当前包含的字符序列。
String (char[ ] value,int offset,int count)分配一个新的String,它包含取自字符数组参数一个子数组的字符。
String (String original)初始化一个新创建的String对象,使其表示一个与参数相同的字符序列;新创建的字符串是该参数字符串的副本。
String(StringBuffer buffer)分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列。
String(StringBuffer builder)分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列。

3.2、String常用判断方法

返回值类型方法名称说明
booleanequals(Object obj)比较字符串的内容是否相同,区分大小写
booleanequalslgnoreCase(String str)比较字符串的内存是否相同,忽略大小写
booleancontains(String str)判断大字符串中是否包含小字符串
booleanstartsWith(String str)判断字符串是否以某个指定的字符串开头
booleanendsWith(String str)判断字符串是否以某个指定的字符串结尾
booleanisEmpty()判断字符串是否为空

3.3、String类常用的获取方法

返回值类型方法名称说明
intlength()获取字符串的长度。
charcharAt(int index)获取指定索引位置的字符。
intindexOf(int ch)返回指定字符在此字符串中第一次出现处的索引。
intindexOf(int ch,int formindex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
intindexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引。
intindexOf(String str,int fromindex)返回指定字符串在此字符串中第一次出现处的索引,从指定的索引开始。
intlastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引。
intlastIndexOf(int ch,int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
intlastIndexOf(String str)返回指定字符串在此字符串中最右边出现处的索引。
intlastIndexOf(String str,int fromIndex)返回指定字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
Stringsubstring(int start)从指定位置开始截取字符串,默认到末尾。
Stringsubstring(int start,int end)从指定位置开始到指定位置结束截取字符串。

3.4、String的常用转换方法

返回值类型方法名称说明
byte[ ]getBytes()把字符串转换为字节数组。
char[ ]toCharArray()把字符串转换为字符数组。
staticString ValueOf()把传入的变量转成字符串。
StringtoLowerCase()把字符串转成小写。
StringtoUpperCase()把字符串转成大写。
Stringconcat(String str)把字符串拼接。

例子:

       //getBytes把字符串转换为字节数组。		
		String str = "你好,肥怡";
		byte[] bs;
		try {
			bs=str.getBytes("gbk");
			System.out.print("你好,肥怡的gbk 编码:[");
			for (byte b : bs) {
				System.out.print(b+",");				
			}
			System.out.print("]");
			System.out.println();	
			System.out.print("\nutf-8 编码:[");
			bs=str.getBytes();
			for (byte b : bs) {
				System.out.print(b+",");
			}
			System.out.print("]");
			System.out.println();
			String newStr = new String(bs);
			System.out.println(newStr);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		//toCharArray把字符串转换为字符数组。		
		String str1 = "超级大肥嘟";			
        char[] arr = str1.toCharArray(); // 将字符串转换为字符数组
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + ",");
        }
		System.out.println();		
        //valueOf把字符数组转成字符串		
		String str2 = "String.valueOf(arr):将字符数组转换成对应的字符串-->"+String.valueOf(arr); 
		System.out.println(str2);		
		//toLowerCase将所有的字符转换成小写;toUpperCase将所有的字符转换成大写				
		String str4 = "abcDEFgh";		
		System.out.println("toLowerCase:将所有的字符转换成小写"+str4.toLowerCase()); 
		System.out.println("toUpperCase:将所有的字符转换成大写"+str4.toUpperCase()); 		
		//concat将两个字符串连接		
		String str5 = "abc"; String str6 = "def";
		String str7 = "str5.concat(str6):将两个字符串连接-->"+str5.concat(str6); 
		System.out.println(str7);

输出结果:

你好,肥怡的gbk 编码:[-60,-29,-70,-61,-93,-84,-73,-54,-30,-7,]

utf-8 编码:[-60,-29,-70,-61,-93,-84,-73,-54,-30,-7,]
你好,肥怡
超,级,大,肥,嘟,
String.valueOf(arr):将字符数组转换成对应的字符串-->超级大肥嘟
toLowerCase:将所有的字符转换成小写abcdefgh
toUpperCase:将所有的字符转换成大写ABCDEFGH
str5.concat(str6):将两个字符串连接-->abcdef

3.5、String类其他常用方法

返回值类型方法名称说明
Stringreplace(char old,char new)返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的。
Stringreplace(String old,String new)使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
Stringtrim()返回字符串的副本,忽略前导空白和尾部空白。
intcompareTo(String str)按字典顺序比较两个字符串。
intcompareTolgnoreCase(String str)按字典顺序比较两个字符串。不考虑大小写。
String[ ]split(String regex)根据给定正则表达式的匹配拆分此字符串。
String[ ]split(String regex,int limit)根据匹配给定的正则表达式来拆分此字符串。

例子:

public static void main(String[] args) {
		//replace
		String str1 = "abcdefg";		
		String str3 = str1.replace("fg", "ooo");
		System.out.println("replace:替换,返回替换后的字符串;如果没有被替换的字符,返回原字符串-->"+str3);
		//trim
		String str4 = "    abcdefg    ";
		String str5 = str4.trim(); // 去除前后空格
		System.out.println("trim:去除前后空格-->"+str5);	
		//compareTo;compareToIgnoreCase		
		String str6 = "aaa"; String str7 = "acc"; 
		int inta = str6.compareTo(str7); // 按照码表值比较两个字符串的大小
		System.out.println("str6.compareTo(str7):按照码表值比较两个字符串的大小-->"+inta);
		inta = str6.compareToIgnoreCase(str7); // 按照码表值比较两个字符串的大小
		System.out.println("str6.compareToIgnoreCase(str7):按照码表值比较两个字符串的大小-->"+inta);		
		//split
		String str8 = "asdgjkl;sadfg;fasdfg;rtscvb;rewe;d;;fg;hrew;5623;";
		String[] strings = str8.split(";");//默认为0
		for (String string : strings) {
			System.out.print("\"" + string + "\",");
		}
		System.out.println();		
	    //如果 n > 0,模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入 
		//如果 n < 0,模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将保留。 
		//如果 n = 0,模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。		 
		String[] strings2 = str8.split(";",3);
		for (String string : strings2) {
			System.out.print("\"" + string + "\",");
		}
	}

输出结果:

replace:替换,返回替换后的字符串;如果没有被替换的字符,返回原字符串-->abcdeooo
trim:去除前后空格-->abcdefg
str6.compareTo(str7):按照码表值比较两个字符串的大小-->-2
str6.compareToIgnoreCase(str7):按照码表值比较两个字符串的大小-->-2
"asdgjkl","sadfg","fasdfg","rtscvb","rewe","d","","fg","hrew","5623",
"asdgjkl","sadfg","fasdfg;rtscvb;rewe;d;;fg;hrew;5623;",

3.6、String、StringBuffer和StringBuilder

  • String类对象不可变,一旦修改String的值就是隐形的重建了一个新的对象,释放了原String对象。
  • StringBuffer和StringBuilder类是可以通过append()、insert()、reverse()…等方法来修改值。创建的对象是可变。
  • StringBuffer:线程安全的; StringBuilder:线程非安全的
  • 字符串连接 String 的 + 比 StringBuffer(StringBuilder) 的 Append() 性能差了很多
  • 三者在执行速度方面的比较:StringBuilder > StringBuffer > String
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值