Java Api实用类介绍

一、枚举类型

1.枚举指由一组固定的常量组成的类型
2.枚举的定义和使用

public enum Genders{
	Male,Female
}
System.out.println(Sex.Male);
System.out.println(Sex.Female);

3.枚举作用
1)类型安全
2)易于输入和赋值
3)代码清晰

二、常用Java API

1.java.lang:
Enum、包装类、Math、String、StringBuffer、System…
2.java.util
3.java.io
4.java.sql

三、包装类

1.包装类把基本类型数据转换成对象
每个基本类型在java.lang包中都有一个相应的包装类
2.包装类的作用
1)提供了一系列实用的方法
2)集合不允许存放基本数据类型数据,存放数字时,要用包装类型

 3.包装类的构造方法
1)所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例

如:Integer i=new Integer(1);

除Character类外,其他包装类可将一个字符串作为参数构造它们的实例

如:Integer i=new Integer("123");

2)注意事项:
Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false。
当Number包装类构造方法参数为String 类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译不通过,运行时会抛出NumberFormatException异常。
4.包装类的常用方法
1)XXXValue():包装类转换成基本类型
2)toString():以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)
3)parseXXX():把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)
4)valueOf():
所有包装类都有如下方法(基本类型->包装类)

如:Integer intValue=Integer.valueOf(21);

除Character类外,其他包装类都有如下方法(字符串->包装类)

如:Integer intValue=Integer.valueOf("21");

5.装箱和拆箱
1)装箱:基本类型转换为包装类的对象
2)拆箱:包装类对象转换为基本类型的值

四、Math类

        double pi=Math.PI;//圆周率
        double e=Math.E;//自然对数的底数
        double v=Math.random();//0~1之间的随机数
        int a =Math.abs(-123);//绝对值
        long b=Math.round(12.5);//四舍五入
        int c=Math.round(12.5f);
        System.out.println(Math.floor(12.9));//向下取整
        System.out.println(Math.ceil(12.3));//向上取整
        System.out.println(Math.sqrt(2));//开根号
        System.out.println(Math.log(e));
        System.out.println(Math.log10(1));

五、Random类,生成随机数

Random r=new Random();//创建一个Random对象
System.out.println(r.nextInt());//范围在全int的范围
System.out.println(r.nextInt(100));//范围在0~100
Random ran=new Random(2);//伪随机,当种子值固定时,就没办法随机
System.out.println(ran.nextInt(100));

六、String类

String类本身用final修饰,不能被继承,如果方法上用final修饰,不能被重写。

String s="abc";//String类型底层存储时char类型的数组
String a=new String("abc");//很少用
char[] c={'a','b','c'};
String s1=new String(c);
System.out.println(s1.length());//确定字符串的长度
System.out.println(s.equals(s1));//用equals比较
String s2=String.valueOf(c);//valueOf常用于接收数组
char[] chars=s2.toCharArray();//将字符串转换为字符数组
String test="  abc,  123 , hello ,nihao ";
System.out.println(test.trim());//左右去空格
String[] strs=test.split(",");//可以匹配正则表达式
System.out.println(Arrays.toString(strs));//这种切分会切成String数组
byte[] bytes=test.getBytes();//可以获取ascii码值
String abc=new String(bytes);
System.out.println(abc.startsWith(",  ", 5));//用于检测字符串是否以指定的前缀开始
System.out.println(abc.charAt(15));//用于返回指定索引处的字符,索引范围为从 0 到 length() - 1
System.out.println(abc.indexOf(","));//搜索第一个出现的字符
System.out.println(abc.substring(5, 10));//左闭右开
System.out.println(abc.contains("123 "));//是否包含
abc.compareTo("  abc,");//这里的比较规则,会先按位比较,其次就按长度比较
String aaa = abc.concat("aaa");//拼接字符串,等同于+拼接
String s3= aaa.replace('a','m');//替换字母
System.out.println(s3.toUpperCase());//小写字母转大写字母

七、StringBuffer类

  1. //StringBuffer是线程安全的类型,StringBuilder是单线程类型
    StringBuffer sb=new StringBuffer();
    sb.append("abc,");
    sb.append(123);
    char[] c={',','h','e','l','l','o',','};
    sb.append(c);
    sb.append(12.5f);
    System.out.println(sb);
    String s=sb.toString();//StringBuffer转成String
    StringBuffer ss=new StringBuffer(s);//使用构造方法将String转换成StringBuffer
    StringBuffer replace = ss.replace(1, 10, "kb11 nb");
    System.out.println(replace);
    

八、String类和StringBuffer类异同点

String:

  1. 底层是一个不可变的char数组常量
  2. 变更时会先新建String对象,再新建char[],再重新赋值

 StringBuffer

  1. 底层是可变的char数组变量
  2. 如果在长度以内,变更时不会再次新建StringBuffer对象和char[]对象
  3. 如果超出长度,变更时也不会新建StringBuffer对象,只是新建char[]对象
  4. 对性能消耗非常小

String安全性最高,性能最低
StringBuilder的安全性最低,性能最高
StringBuffer折中,在实际工作当中,只要可能涉及多线程,就会使用StringBuffer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值