日期
类Date:
Date da1 = new Date(); //当前时间
Date da2 = new Date(System.currentTimeMillis()+100); //当前时间后100ms
boolean after(Date when) //判断该日期是否在指定日期之后
boolean before(Date when) //判断该日期是否在指定日期之前
long getTime(); //获取时间
void setTime() //设置该对象时间
类Calendar: 是抽象类,代替Date,是所有日历类的模板,提供了GregorianCalendar子类,创建返回该子类实例
Calendar calendar = Calendar.getInstance();
void add(int field,int amount) //为给定的日历字段或减去指定的时间量
int get(int field) //获取指定日历字段的值
int getActualMaximum(int field) //返回给定字段的最大值,如月,最大值11
int getActualMinimum(int field) //返回给定字段的最小值,如月,最小值0
void roll(int field,int amount) //和add()类似,区别是不会进位
void set(int field,int value) //给定字段设值,延迟修改,在下次调用获取时间方法
//或时间加减方法时才计算
void set(int year,int month,int date) 设置年月日三个字段值
void set(int year,int month,int date,int hourOFDay,int minute,int second)
//设置年月日时分秒值
setlenient(false); //关闭兼容性, 设置不合法数据会报错。
类DateFormat: 抽象类 ,转换的格式是固定的
DateFormat df = DateFormat.getInstance();
DateFormat df = DateFormat.getInstance();
Date d = new Date();
String time = df.format(d);
df = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
time = df.format(d);
Date d = df.parse(time);
类SimpleDateFormat: DateFormat子类,支持自定义格式模式
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern("yyyy/mm/dd");
String time = sdf.format(new Date);
Date d = sdf.parse(time);
//yMdHms:年月日时分秒
随机数
类Random: Random类用于生产一个伪随机数(通过相同的种子,产生的随机数是相同的)。
Random ran = new Random();
public Random():使用默认的种子(以当前系统时间作为种子)。
public Random(long seed):根据指定的种子。
ran.nextBoolean();
ran.nextDouble();
ran.nextInt();
ran.nextInt(10);
类ThreadLocalRandom: Java7,是Random类的子类,是线程安全的
因构造器是默认权限,要通过ThreadLocalRandom.current()返回当前类对象
ThreadLocalRandom random = ThreadLocalRandom.current();
random.nextInt(34,179);//生产(34,179)之间的随机数
类UUID: 通用惟一识别:Universally Unique Identifier; 在一台机器上生成的数字,
它保证对在同一时空中的所有机器都是唯一的。UUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成UUID.
我们一般用来表示:随机的唯一的字符串.
String uuid = UUID.randomUUID().toString();
字符串
CharSequence接口
实现类:String,StringBuffer,StringBuilder,CharBuffer,Segment
String:
String的创建和转换:
byte[] getBytes():把字符串转换为byte数组
char[] toCharArray():把字符串转换为char数组
String(byte[] bytes):把byte数组转换为字符串
String(char[] value):把char数组转换为字符串
获取字符串信息
int length() 返回此字符串的长度
char charAt(int index) 返回指定索引处的 char 值
int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引。
int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引
int indexOf(int ch);//
int lastIndexOf(int ch);//
字符串比较判断
boolean equals(Object anObject) //比较。
boolean equalsIgnoreCase(String anotherString) //比较不考虑大小写
boolean contentEquals(StringBuilder cs) //内容比较
String concat(String str);//连接字符串
boolean startsWith(String prefix);
boolean startsWith(String prefix,int toffset);//从toffset位置起是否以prefix开始
String replace(char oldChar,char newChar);//替换
String substring(int beginIndex);
String substring(int beginIndex,int endIndex);
static String valueOf(X x);//基本类型转换成字符串
字符串大小写转换
String toUpperCase() 把当前字符串转换为大写(谁调用该方法,谁就是当前字符)
String toLowerCase() 把当前字符串转换为小写
StringBuffer:
方法与String相同;
StringBuilder:
方法与String相同;
注意:Sting是不可变的,每次内容改变都会在内存中创建新的对象,做字符串拼接,性能极低.
拼接字符串要使用StringBuffer/StringBuilder,不要使用String.
StringBuffer和StringBuilde区别(建议使用StringBuilder):
StringBuffer和StringBuilder都表示可变的字符串,功能方法都是相同的.
唯一的区别:
StringBuffer: StringBuffer中的方法都使用了synchronized修饰符,
表示同步的,在多线程并发的时候可以保证线程安全,保证线程安全的时候,性能(速度)较低.
StringBuilder:StringBuilder中的方法都没有使用了synchronized修饰符,不安全,但是性能较高.