常用类

string类

string是一个不可变的字符序列,一旦定义好,则无法再修改内容,所谓修改,其实只是用修改了变量指向的字符串对象地址。

常用方法
public class StringTest {

	public static void main(String[] args) {
		
		String s1 = "helloworld";
		s1 = "你好世界";
		
		s1 = "d:/test/music/小苹果.mP3";
		
		//将当前字符串转换为小写并返回
		System.out.println(s1.toLowerCase());
		//将当前字符串转换为大写并返回
		System.out.println(s1.toUpperCase());
		//判断当前字符串是否以指定后缀结尾
		System.out.println(s1.toLowerCase().endsWith(".mp3"));
		
		String a = "helloworld";
		String b = "HelloWorld";
		//比较两个字符串对象是否一致
		System.out.println(a.equals(b));
		//忽略大小写的情况下比较两个对象是否一致
		System.out.println(a.equalsIgnoreCase(b));
		
		//将字符串转换为字节数组
		byte[] byt = a.getBytes();
		System.out.println(byt.length);
		//遍历获取数组中每一个元素(就是一个字符的ascii码)
		for (int i = 0; i < byt.length; i++) {
			System.out.print((char)byt[i]+" ");
		}
		System.out.println();
		
		//使用字节数组构建一个String对象
		a = new String(byt);
		System.out.println(a);
		
		System.out.println(a.indexOf(101));
		
		System.out.println(b.intern());
		
		// "" != null
		a = ""; 
		//获取字符串的长度(字符的个数)
		System.out.println(a.length());
		//判断当前字符串是否为空(length是否为0)
		System.out.println(a.isEmpty());
		
		//使用指定的分隔符将后续所有的字符串对象进行拼接成为一个整个字符串对象
		System.out.println(String.join("/", "hello","world","softem","你好世界")); 
		
		a = "src/a.txt";
		//字符串截取
		System.out.println(a.substring(4));
		//获取指定字符串在目标字符串中最后一次出现的位置
		System.out.println(a.lastIndexOf("t"));
		
		String phone = "13876543218";
		//判断当前字符串是否匹配给定正则表达式
		System.out.println(phone.matches("^1\\d{10}")); 
		
		//将字符串中指定的字符替换为目标字符
		System.out.println("helloworld".replace('o','O'));
		
		//将字符串中指定的子串替换为目标字符串
		System.out.println("helloworldhelloworld".replace("hello", "你好"));
		//将字符串中匹配指定正则表达式规则的子串替换为目标字符串
		System.out.println("132876543212world13287653122world".replaceAll("1\\d{10}", "手机号"));
		
		//你小子真是个**,**的
		System.out.println("你小子真是个狗蛋,你妹的!");
		
		String str = "GET /~minift/epretty/pretty.zip HTTP/1.1";
		String[] ss = str.split(" ");
		for (String s : ss) {
			System.out.println(s);
		}
		
		String fileName = "你从哪里来.mp3";
		System.out.println(fileName.split("\\.")[0]);
		//输入学生的学号,姓名,性别,年龄,专业
		//判断指定字符串是否以某一个子串开头
		System.out.println("softeem123".startsWith("softeem"));
		
		//去除字符串前后空格
		System.out.println("       你好     世界         ".trim()); 
		
		//将其他类型数据转换为字符串
		System.out.println(String.valueOf(10) + 10);
	}

}
String,StringBuffer与StringBuilder区别
String是一个不可变的字符序列,在每一次做字符串拼接时实际都是在创建新的字符串对象,因此在做大量字符串拼接时会不断创建新的对象,在效率上非常差;StringBuffer跟String都是从CharSequence接口实现,StringBuffer是一个可变长的字符序列,每次在进行字符串拼接(追加)时只是向原来序列中新增数据,并未反复创建新对象,所以在拼接效率方面远远高于String,并且StringBuffer是线程安全的实现;StringBuilder跟StringBuffer共享相同的API(相同的方法),但是StringBuilder是线程不安全的实现,在多线程运行时效率比StringBuffer要高,但是对于字符串的安全性没有保障。

static关键字

static关键字可用于修饰一个类中的属性,方法,以及内部类,被static修饰的以上元素称之为:静态属性,静态方法,静态内部类;被static修饰的元素与对象无关(在使用时无需创建对象,使用对象调用),他们直接与类相关,在调用时只需要通过“类名.*”即可调用。

final关键字

final关键字可用于修饰类,属性,方法。被final修饰的类不允许被继承,被final修饰的变量不允许被改变(可看作常量),被final修饰的方法不允许被重写。
abstract关键字和抽象类

abstract(抽象)可以用于修饰一个类,方法;被abstract修饰类成为抽象类,被abstract修饰方法,称之为抽象方法。抽象方法只能出现在抽象类或者接口中。

为什么需要抽象类

在实际开发中,对于某些需求具体的实现不确定时,可以将这些需求对应的功能定义为抽象方法,等待后期子类进行实现,从而提高程序的扩展性。

抽象类特点

  1. 抽象类中可以包含普通类的一些特性(属性,方法,构造器)
  2. 抽象类中除了包含一些已实现的方法外还包含抽象方法(未实现)
  3. 抽象类存在构造器,但是不允许被实例化
  4. 抽象类一般由子类继承,但是子类继承了抽象类之后就必须实现抽象方法(除非子类也是抽象类)
  5. 抽象类也可以继承其他抽象类
  6. 如果子类继承了多个抽象类(多重继承) 则子类必须实现所有抽象类中未实现的方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值