java常用类库(1)

一.泛型

1.泛型的概念:就是将类型由原来的具体的类型参数化,这样可以提高代码的复用性和灵活性。

2.泛型可以用在那里:(1)类  (2)接口   (3)方法

3.格式:<T>(里面的字母任意)

4.示例:

1)用在类中

1 public class className<T>{
2       private T data;
3       public className(){};
4       public className(T data){
5           this.data = data;
6        }
7 }

2)  用在接口中

public interface interfaceName<T>{
     T show();
T show2(); }

实现泛型的时候可以考虑是否指定泛型:
1)指定泛型:
public class className implements interfaceName<String>{
private String name;
}

2)不指定泛型
public class className<T> implements interfaceName<T>{
private T data;
}

3) 用在方法中

public static <T> void show(){
      System.out.print("方法中的泛型跟在权限修饰符之后");
}

 

5.泛型限定和通配符

1)在使用泛型时, 可以指定泛型的限定区域

例如:必须是某某类的子类或 某某接口的实现类

<T extends 类或者接口> (采用extends关键字)

2)通配符:

类型通配符是使用?代替方法具体的类型实参。 
1 <? extends Parent> 指定了泛型类型的上届
2 <? super Child> 指定了泛型类型的下届
3 <?> 指定了没有限制的泛型类型

 

二:Object类:

1.object类是所有类的超类,所有的类都继承自Object类。

2.Object中有很多方法:

1)checkFromIndexSize​(int fromIndex, int size, int length);判断范围是否越界(fromindex子范围的下线,size范围,length范围的上线)

2)checkIndex(int index,length);检查下表index是否在0-length范围内

3)equals(Object a,Object b);比较a和b,通常要重写

4)CompareTo(T a,T b)通常要重写

5)hashCode(Object a);返回哈希值

6)isNull();判断是否为空

7)toString();打印,通常要重写

三:Math类:

1.math类有很多关于算术运算的方法,当我们遇见一些算术问题,首先想到的因该是查找API文档

2.常见的运算方法:

1)Math.abs(参数);返回绝对值

2)Math.ceil(参数);返回大于或等于参数且等于数学整数的最小值

3)  Math.max(a,b);

4)  Math.min(a,n);

5)  Math.round(a);四舍五入

6) Math.floor(a);返回小于或等于参数且等于数学整数的最小值

 

四:Arrays类:

1.arrays类提供了很多操作数组的方法。

2.常用方法:

1)Arrays.toString(a[]);打印出数组的值

2)Arrays.sort(a[]);对数组排序

3)  Arrays.binarySearch(a[],key);打印特定下标的数据

4)arr = Arrays.copyOf(arr,arr.length*2);数组扩容

 

 

 

五:BigDecimal类

1.作用:由于小数的运算精度会出现误差,采用该类来解决

2.使用方式:

//创建对象
BigDecimal b1 = new BigDecimal("0.2");
BigDecimal b2 = new BigDecimal("0.1");
//加法运算
BigDecimal b3 = b1.add(b2);
System.out.print(b3);

/*
1.add();加法
2.subtruct();减法
3.multiply();乘法
4.devide();除法
*/

六:Data类:

1.该类很多方法都被弃用。

2.构造方法:

1.无参构造:
//创建一个当前时间对象 Data data
= new Data();

System.out.print(data.toString());//打印出当前的时间

System.out.print(data.getTime());//获取当前的毫秒值

 

七:DateFormat类:

1.dateFormat类是抽象类,在使用是要使用他的实现类simpleDateFormat

2.dateFormat是日期格式类

3.如何使用,以及常用的方法

//创建日期格式化对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm  ss");
//1.format()方法,将日期转化为我们定义的格式
String date = sdf.format(new date());
System.out.print(date);


//2.parse()方法,将yyyy-MM-dd  HH:mm  ss转换为日期对象
Date date = sdf.parse("2021-02-03  12:12  12");
//转换为日期类可以进行相应的计算,例如:
System.out.print(((new Date()).getTime - date.getTime())/1000/60/60/24);

八:Calendar日历类

1.calendar是一个抽象类,它里面提供了getInstance()方法来创建按对象

2.通过设置和获取来操作时间

//创建Calendar对象
Calendar cl = Calendar.getInstance();
//设置时间
cl.set(Calendar.YEAR,2021);
//获取时间
int year = cl.get(Calendar.YEAR);
System.out.print(year);//结果为2021年,如果不设置,则为系统默认时间
//还可以用于计算这是一年的第几天这类问题
int day = cl.get(Calendar.WEEK_OF_YEAR);
System.out.print(day);//一年的第几天

 

3.Calendar类的计算:

 1 //创建当前日期对象
 2 Calendar cl = Calendar.getInstance();
 3 //对当前日期对象的年加一
 4 //1.add()加法
 5 int year = cl.add(Calendar.YEAR,1);
 6 System.out.print(year);
7 //2.getTime()方法,获取日历时间表示的Date对象 8 Date date = cl.getTime();
9 //3.getActuralMaxmum();获取最大值 10 int day = cl.getActuralMaxmum(Calendar.DAT_OF_MONTH); 11 System.out.print(dat);//获取月份中最大的天数

 

 

九:System类

1.该类提供了标准的输入流(in)输出流(out)以及标准错误流(err).

2.该类中一些常见的方法:

1)

arraycopy​(Object src, int srcPos, Object dest, int destPos, int length)
将指定源数组中的数组从指定位置开始复制到目标数组的指定位置。 

   (src - 源数组,srcPos - 源数组中的起始位置,dest - 目标数组,destPos - 目标数据中的起始位置,length - 要复制的数组元素的数量)

2)gc();运行垃圾回收器

3)exit();中止当前Java虚拟机  0表示正常中止,非0表示非正常中止

 

十:String类

1.String 表示字符串,字符串是不可以更改的,当两个对象的字符串数组一样时,他们共享一个内存空间

例如:String text1 = "123";

           String text2 = "123";

           System.out.print(text1==text2);  // ==号比较的是内存的地址,结果为true

如果是String text2 = new String("123");这时开创了新的内存空间,结果为false

2.字符串常量池:

1)堆在结构上分为三种:

       新生代:经常被GC垃圾回收器访问

       老年代:被垃圾回收器GC访问的次数少于15次

       永久代:从不被垃圾回收器GC访问

3.字符串拼接:

 

 字符串拼接很浪费空间,一般都不采用+的方式来拼接字符串。采用StringBuffer(线程安全)或者StringBuilder(线程不安全)来实现

例如:StringBuilder sb = new StringBuilder();

           sb.append("1");

           sb.append("2");

           sb.append("3");

           String text =  sb.toString();  //该方法可以将StringBuilder类型转换为String类型。

           System.out.print(text);  //123

4.String类的构造方法:一般为无参构造,偶尔会传入byte或者char类型的数组

5.String类的常用方法:

1)charAt(int index);返回index处的char值

2)concat(String str);将指定字符串拼接到此字符串的末尾

3)compareTo(String str);根据字典顺序比较字符串

4)compareToIngnoreCase(String str);根据字典顺序比较字符串,忽略大小写

5)contains(charSequence s);当且仅当该字符串包含指定的char值时,返回true

6)contents(charSequence ce);  contents(StringBuffer sb);都是当前字符串于参数比较,相同就返回true

7)copyValueOf(char[]);将字符数组转换为字符串

8)endWiths(String s);测试字符串是否由指定的字符串结尾

9)equals(Object obj);将此字符串同指定的字符串比较

10)toCharArray(String str);将此字符串转换为新的字符数组

11)toString();打印

12)subString(int begin);    subString(int begin,int end);截取子字符串

13)valueOf(各种数据类型 a);将不同数据类型转换为字符串

14)split(String regex, int limit);参数regex指定正则表达式分隔符,limit指定分割的份数

15)trim();去掉字符串两端的多余的空格,注意,是两端的空格,且无论两端的空格有多少个都会去掉,当然. 中间的那些空格不会被去掉

        等等。。。。。。。。

6.String类与StringBuilder类的相互转换

1).String类转换为StringBuilder类

public class String12 {
    public static void main(String[] args){
        String s = "hello";
        StringBuilder sb = new StringBuilder(s);
        System.out.println(sb);
    }
}
2).StringBuilder类转换为String类
public class String12 {
    public static void main(String[] args){
        StringBuilder sb = new StringBuilder();
        sb.append("abc").append("efg");
        String s = sb.toString();
        System.out.println(s);
    }
}

 

posted @ 2021-06-06 20:49  白杨树&  阅读(118)  评论(0编辑  收藏  举报