Calendar
概念
java,util.Calendar日历类,抽象类,在Date类后出现的,替换掉了很多Date类中的方法。该类将所有可能用到的时间信息封装为静态成员变量,通过类名.静态成员变量获取时间字段值。
获取方式
由于Calendar类是一个抽象类,语言敏感性,Calendar类并不是直接创建对象来获取时间属性值,而是通过静态方法创建,返回子类对象。
- public static Calendar getInstance():使用默认时区和默认的语言环境获取一个日历对象
例如:
import java.util.Calendar;
pubic class Demo01Calendar {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();// 获取一个日历的对象
}
}
常用的方法
- public int get(int filed):获取给定的日历字段值
- public void set(int field,int value):将给定的字段设定为给定的值
- public abstract void add(int filed,int amount):根据日历规则,将给定的日历字段添加或者减少指定的时间值
- public Date getTime():把日历对象转换成日期对象
- public long getTimeMillis():获取日历对象对应的毫秒值
字段值 | 含义 |
---|---|
YEAR | 年 |
MONTH | 月份 |
DATE | 月中的某一天(几号) |
DAY_OF_MONTH | 月中的第几天 |
HOUR | 时(12小时制) |
HOUR_OF_DAY | 时(24小时制) |
MINUTE | 分 |
SECOND | 秒 |
DAY_OF_WEEK | 一周中的第几天(周几,周日为1) |
备注:
- 在西方的星期,开始为周日,中国为周一
- 在Calendar类中,月份的表示是0-11代表的是1-12月
- 日期是有大小关系,时间靠后,时间越大.
System类
java.lang.System类中提供了大量的静态方法,主要是用来获取与系统相关的信息或者是进行系统级操作.
它不能被实例化,也不能被继承.
常用的api方法:
- public static long currentTimeMills():获取当前系统时间对应的毫秒值
- public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):将数组中指定的数据拷贝到另一个数组当中’’
- public static void exit(int status):终止当前正在执行的java虚拟机,0代表正常退出,非0代表异常退出.
currentTimeMills()方法
实际上,它获取到是距1970年1月1日 0时0分0秒到当前时间毫秒差值
arraycopy()方法
将一个数组当中的元素复制到另一个数据当中,数组的拷贝动作是一个系统级的操作,性能比较高.
arraycopy方法当中涉及到的5个参数:
参数列表 | 参数名称 | 参数类型 | 参数含义 |
---|---|---|---|
1 | src | Object | 源数组 |
2 | srcPos | int | 原数组索引的起始位置 |
3 | dest | Object | 目标数组 |
4 | destPos | int | 目标数组索引的起始位置 |
5 | length | int | 复制元素的个数 |
String类
String类不能被继承,String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。
字符串缓冲区(StringBuffer)支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
常用方法:
- char charAt(int index) :返回指定索引处的 char 值。
- boolean contains(CharSequence s) :当且仅当此字符串包含指定的 char 值序列时,返回 true。
- String replace(char oldChar, char newChar) :返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
- String replaceAll(String regex, String replacement) :使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
- String[] split(String regex) :根据给定正则表达式的匹配拆分此字符串。
- String substring(int beginIndex) : 返回一个新的字符串,它是此字符串的一个子字符串。
- String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串的一个子字符串。
- char[] toCharArray() :将此字符串转换为一个新的字符数组。
- String toString() :返回此对象本身(它已经是一个字符串!)。
- String trim() :返回字符串的副本,忽略前导空白和尾部空白
- stataic String valueOf(参数) 可以将任意数据类型的数据转为字符串返回
- boolean isEmpty() :当且仅当 length() 为 0 时返回 true。
- String concat(String str) :将指定字符串连接到此字符串的结尾。
- int compareTo(String anotherString) :按字典顺序比较两个字符串。
- int compareToIgnoreCase(String str) :按字典顺序比较两个字符串,不考虑大小写
- int indexOf(int ch) :返回指定字符在此字符串中第一次出现处的索引。
- int indexOf(int ch, int fromIndex) :返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
- boolean isEmpty() :当且仅当 length() 为 0 时返回 true。
- int length() :返回此字符串的长度。
String字符串底层是一个被final修饰的数组,不能改变,是一个常量
private final char value[];是以字节的形式存在在内存当中
StringBuffer类
线程安全的可变字符序列,效率低
StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后 将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。
- StringBuffer append(参数):将某参数的字符串表示形式追加到序列.
- StringBuffer insert():将参数的字符串表示形式插入此序列中.
- StringBuffer insert(int index, char[] str, int offset, int len):将数组参数 str 的子数组的字符串表示形式插入此序列中。
index - 要插入子数组中的位置。
str - 一个 char 数组。
offset - 将插入子数组中的第一个 char 的索引。
len - 将插入子数组中的 char 的数量。
StringBulider类
不保证线程安全的可变字符序列.与StringBuffer的API完全一致,效率高.
包装类
含义
包装类主要指 将8种基本类型包装成对应的类
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
大多数情况,包装类的主要作用是用于基本数据类型与字符串的相互转换
装箱
把基本数据类型的数据包装到包装类中(基本数据类型---->包装类型)
以Integer int的包装类
构造方法:
Integer(int value):构造一个新分配的Integer对象,它表示的指定的int类型的值
Integer(String s): 构造一个新分配的Integer对象,他表示的String参数类型指定的int值 “123”
静态方法:
static Integer valueOf(int i): 将指定的int类型值转换成Integer实例
static Integer valueOf(String s):将String类型的int值转换成Integer对象
public class IntegerDemo01 {
public static void main(String[] args) {
// 装箱:把基本数据类型的数据包装到包装类中(基本数据类型---->包装类型)
// 构造方法
Integer int01 = new Integer(123);
System.out.println(int01);// 内存地址值 123 重写Object类中的toString方法
System.out.println("=========================");
Integer int02 = new Integer("123");
System.out.println(int02.equals(int01));// true
System.out.println("==============================");
// 静态方法
Integer int03 = Integer.valueOf(127);
System.out.println(int03);// 123
Integer int04 = Integer.valueOf("127");
System.out.println( int03 == int04 );// true
System.out.println("===============================");
// 传递一个真的字符串 java.lang.NumberFormatException: For input string: "abc" 数字格式化异常
//Integer int05 = Integer.valueOf("abc");
//System.out.println(int05);
System.out.println("-------------------------");
//拆箱:从包装类中取出基本数据类型的数据(包装类------>基本数据类型)
Integer int06 = new Integer(123);
int i = int06.intValue();
System.out.println(i);
}
}