一:StringBulider类
1.区别:
String:内容不可变,会在常量池中产生大量无效字符串
StringBuilder:内容可变,相当于容器,拼接时直接加入字符串,不会产生新字符串
2.构造方法:
public StringBuilder():构造一个空的字符串缓冲区 默认容量16
public StringBuilder(String str):构造一个字符串缓冲区,并将Str字符串存入缓冲区
3.常用方法:
public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身。
如果是自己笨类型 变为String
如果是引用类型 默认调用toString 变为字符串
此方法 会把当前的缓冲区对象 返回 方便链式调用
public StringBuilder reverse():返回反转的字符序列
public String toString():将当前StringBuilder对象转换为String对象。
二:Date类:
1.概念:
java.u 日期类
表示特定的瞬间,精确到毫秒,1000毫秒等于1秒。
时间原点:1970年1月1日 00:00:00
2.构造方法:
public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象。
public Date(long date):指定毫秒值的日期对象。
3.方法:
long getTime() 获取毫秒值,从时间原点到当前对象代表的日期多经历的毫秒值
setTime(long time) 设置毫秒值,将日期对象的设置为指定的毫秒值
三:DateFormat类
1.概念:
我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
由于DateFormat为抽象类不能直接使用,所以需要常用的子类SimpleDateFormat
2.SimpleDateFormat构造方法:
public SimpleDateFormat():
默认格式 21-5-16 上午10:32
public SimpleDateFormat(String pattern):
用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat
参数pattern是一个字符串,代表日期时间的自定义格式
y年M月d日H时m分s秒E星期几
3.方法:
String format(Date date)
传递日期对象,返回格式化后的字符串。
Date parse(String str)
传递字符串,返回日期对象。
四:Calendar类
1.概念:
Calendar是抽象类,不能创建对象,需要使用子类对象。
java.u是日历类,该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
2.获取对象:
Calendar是抽象类,不能创建对象,所以提供了静态方法 getInstance()直接获取子类的对象
静态方法直接类名.方法名就可以调用
public static Calendar getInstance():
使用默认时区和语言环境获得一个日历。
3.常用方法:
public int get(int field):
返回给定日历字段的值。
例:int i = c.ge);
Sy(i); //2021
public void set(int field, int value):
将给定的日历字段设置为给定值。
例:c.se,2000);
Sy(c.ge));//2000
public abstract void add(int field, int amount):
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
例:c.add,-1);
Sy(c.ge));//2020
public Date getTime():
返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
例:Date time = c.getTime();
YEAR 年
MONTH 月(从0开始,可以+1使用)
DAY_OF_MONTH 月中的天(几号)
HOUR 时(12小时制)
HOUR_OF_DAY 时(24小时制)
MINUTE 分
SECOND 秒
DAY_OF_WEEK 周中的天(周几,周日为1,可以-1使用)
五:System类:
1.概念:
System类私有修饰构造方法,不能创建对象,方法有静态修饰符,直接类名调用。
2.方法:
public static void exit(int status)终止当前运行的Java虚拟机,非零表示异常终止
public static void gc()运行垃圾回收器。
public static long currentTimeMillis()返回当前时间(以毫秒为单位)
public static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length)从指定源数组中复制一个数组
六:ArrayList添加删除元素原理:
1.ArrayList指定索引添加元素的原理
int size;
int index;
String element="";
int moveNum=size-index;
Sy(arr,index,arr,index+1,moveNum);
arr[index]=element;
size++;
2.ArrayList删除指定元素的原理
int size;
int index;
int moveNum=size-index-1;
Sy(arr,index+1,arr,index,moveNum);
arr[index]=element;
arr[--size]=null;
七:两个排序
1.冒泡排序
将数组中的元素按照 从小到大的顺序排序
原理:相邻的两个元素作比较 那个元素大 那个元素往后放
public static void main(String[] args){ int[] arr={3,8,5,2,0,1,4,6,9,10}; compare(arr); } public static void compare(int[] arr){ for(int b=arr.length-1,b>0,b--){ for(int a=0,a if(arr[a]>arr[a+1]){ int temp=arr[a]; arr[a]=arr[a+1]; arr[a+1]=temp; } } } }
2.二分查找:
前提条件:容器中数据必须有序;
public static void main(String[] args){ int[] arr={1,3,5,9,14,23,32,37,46,49,58}; int num=23; int index=find(arr,num); } public static int find(int[] arr,int num){ int max=arr.length-1; int min=0; int mid=(min+max)/2; if(arr[mid]>num){ max=mid-1; }else if(arr[mid] min=mid+1; }else{ return mid; } return -1; }
八:Arrays类
java.u 数组工具类
public static void toString(int[] a)
将给定的数组转换为字符串
public static void sort(int[] a)
对指定的int数组进行升序排列
public static int binarySearch(int[] a,int key)
对数组进行二分查找法,找不到元素返回(-插入点)-1
public static int[] copyOf(int[] a, int newLength)
复制数组,指定新的长度,如果长度超过原数组,将多余的元素设置为数组元素的默认值