1.String
String 类是final类,不能被继承。
字符串对象一旦被初始化就不会被改变。
面试题:
1)String a=”abc”;String b=”abc”;a==b -->true
2)String a=”abc”;String b=new String(“abc”);a==b-->false
3)String a=”abc”;String b=new String(“abc”);a.equals(b)-->true
原因:a是在常量池中的字符串,b中是 堆内存中的创建的对象,String类重写了equals方法,只比较内容。
常用的String 构造函数与其对应的数组转换函数
字节数组String(byte[] value) <------------> String.getBytes();
字符数组String(char[] value) <------------> String.toCharArray();
常用方法:
.getLength():拿到长度
.charAt(int index);拿到第几个字符
.indexOf()拿到字符,子字符串的位置
.subString(索引)拿到子字符串
切割:.split(String s)按字符串切割
大小写:.toUpperCase();.toLowerCase()
替换.replace(oldValue,newValue)
去除空格:.trim()
忽略大小写比较.equalsIgnoreCase()
是否包含Contains(String s)
以XX开头或结尾:.startWith(String s) .endWith(String s)
连接:.contact(String s) 与+号效果一样
1.1StringBuilder (线程不同步,速度比StringBuffer快)
特点:长度可变,可储存不同长度的数据,最后要转成字符串使用。
1)增 .append(data a)【可链式调用】,.insert(index data a)
2)删 .delete(start,end) .deleteCharAt(int index)
3)改 replace(),setCharAt
4)查 charAt(), indexOf(),lastIndexOf()
5)其他.reverse()
2.包装类:
Int-Integer ,char -character 其他就是基本数据类型首字母改大写
与字符串的转换
转成基本类型Integer.parseInt(String s) Integer.valueOf(String s)
转成String :String.valueOf();基本数据类型+””
3.System类
System类中字段和方法都是静态的
Long currentTimeMillis();获取当前的毫秒值,常用与计算程序运行时间,时间戳等。
.in->inputStream .out->printSteam
getProperties()返回系统的属性值
4.Properties
a) .load(InputStream)载入
b) .list(PrintWriter/PrintOutputStream)输出
c) .setProperty(String key,String value)设置
d) .store((PrintWriter/PrintOutputStream, String comments)比list多了个注释功能
5.Runtime类
应用程序有一个Runtime实例
Runtime r=New Runtime();
Process p=r.exec(notepad.exe “某文件.txt”);
P.detroy();
6.Math
.ceil()返回大于该值的最小整数
.floor()相反
.round()四舍五入
.pow(x,y)次方
.random 0~1之间的伪随机数。更多随机数在util.Random中
7.Date DateFomat
Date 构造Date(long time), .set(long time)
输出Date d=new Date();syso(d),syso(d.toString())
DateFormat 格式化日期
String format(Date date)
将一个 Date 格式化为日期/时间字符串
DateFormat df=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String s=df.format(date);
public class DateTest {
public static void main(String[] args) {
//以毫秒值为对象创建
Long time=System.currentTimeMillis();
Date d1 =new Date(time);
System.out.println(d1);
// Date--------》String
Date date=new Date();
DateFormat df=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String s=df.format(date);
System.out.println(s);
//String--------》Date
String s1="2046年12月23日";
try {
Date date1=df.parse(s1);
System.out.println(date1);
} catch (Exception e) {
// TODO: handle exception
}
}
}
8.calendar 提供了更好的解析日期的方法
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
set(int field, int value)
将给定的日历字段设置为给定值。
set(int year, int month, int date)
设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
9 Arrays
.asList() 转成list
binarySearch() 二分法查找
.fill 填充
.sort 【常用】 排序
.toString 【好用】,测试的时候不用写循环了
10.Collections
.reverse(list) 反转列表的顺序
.reverseOder()返回一个反转的比较器
.shuffle()洗牌
.sort() 排序
.swap(list ,int ,int)调换元素位置
.synchronizedlist/map(list / map)返回线程安全的list或map