*常用类库(接口)*
jdk自带一些方法类,很多时候可以不用自己编写代码,直接调用类库中的类即可。
*泛型*
参数化类型,将类型由原来的具体类型参数化,不确定引用的参数类型时使用。
*泛型类*
class ClassData{
private T data;
private T getData(){
Return data();
}
Private T setData(){
This.data=data();
}
}
*泛型接口*
interface A{
T.getData();
}
*泛型在接口中使用与在类中使用区别:是否指定泛型*
指定:String text(String替换T)
不指定:T data(不替换)
*泛型方法*
private static 权限修饰符 方法名(T a, T b){ }
*泛型限制类型*
指定泛型的类:extends父类
*通配符?*
泛型的上界限定使用:<?extends 父类>
下界限定使用:<? supper 子类>
指定第一次调用的类型:<?>
*Objects*
Object是所有类的父类,顶级父类,其中有很多自带的方法。
Objects是jdk7添加的工具类,能用来进行一些常用的检查操作
如Objects.equals()
*Arrays*
包含了对数组操作的方法
如二分查找,排序等
*动态扩容*
(1)不调用类方法
创建一个更大的数组对象,让新的数组对象覆盖原来的数组对象。
arr={1,2,3}
int [] arr2=new int[10];
arr=arr2;
(2)调用类方法copyof()
arr=Arrays.copyof(arr,newLength:15);
*BigDecimal*
作用:解决java小数运算误差
*常用方法:*
加减乘除
*常用构造方法:*
BigDecimal(String val)
*其他方法*
*char[]*
*double*
*int*
*long*
*String*
*Date*
*功能:*
*常用构造方法:*
*常用方法:*
*DateFormat*
*作用*
*自定义日期格式*
SimpleDateFormat format=new SimpleDateFormat(pattern:“yyyy–MM-dd HH:mm ss”);
String text=format.format(new Date());//转换成文本
//parse:将日期字符串转换成date对象
*Calendar*
*国际化*
*静态方法getInstance获取对象(抽象类)*
Calendear c1=Calendar.getInstance();
*获取年月日*
*getTime将日历时间转换成Date对象*
Calendar c1=new Calendar();
Date d=c1.getTime();
*System*
*arraycopy与********Arrays类********coppyof方法作用相同*
*String*
一旦创建,无法更改内容(常量)
若两个字符串内容相同,共用一个内存地址
*字符串常量池*
*方法区*
方法区,又称永久代,被所有线程共享。
*堆*
新生代:更新访问频率快,垃圾回收频繁。
老年代:更新访问频率小,垃圾回收少。
永久代:用来类,常量,静态值。(jdk1.8之后,元空间替代了永久代)
*字符串拼接*
尽量不要使用String拼接(+)(特别是循环情况)
原因:会产生gc垃圾,浪费内存。
应该选择append方法(动态扩容),节省内存。
StringBuffer可变,线程安全的实现。
String定长
方法区,又称永久代,被所有线程共享。
*堆*
新生代:更新访问频率快,垃圾回收频繁。
老年代:更新访问频率小,垃圾回收少。
永久代:用来类,常量,静态值。(jdk1.8之后,元空间替代了永久代)
*字符串拼接*
尽量不要使用String拼接(+)(特别是循环情况)
原因:会产生gc垃圾,浪费内存。
[外链图片转存中…(img-hKfY08wT-1588068588353)]
应该选择append方法(动态扩容),节省内存。
StringBuffer可变,线程安全的实现。
String定长