java常用类
包装类
针对八种基本数据类型相应的引用类型—包装类
-
包装类和基本数据类型的转换
装箱:基本数据类型->包装类型
拆箱:包装类型->基本数据类型
int n1 = 100; Integer integer = new Integer(n1);//手动装箱 int i = integer.intValue();//手动拆箱 --- int n2=200; Integer integer = n2;//自动装箱 int n3 = integer;//自动拆箱
-
Integer 类和 Character 类的常用方法
System.out.println(Integer.MIN_VALUE); //返回最小值 System.out.println(Integer.MAX_VALUE);//返回最大值 System.out.println(Character.isDigit('a'));//判断是不是数字 System.out.println(Character.isLetter('a'));//判断是不是字母 System.out.println(Character.isUpperCase('a'));//判断是不是大写 System.out.println(Character.isLowerCase('a'));//判断是不是小写 System.out.println(Character.isWhitespace('a'));//判断是不是空格 System.out.println(Character.toUpperCase('a'));//转成大写 System.out.println(Character.toLowerCase('A'));//转成小写
String类
1.String 对象用于保存字符串,也就是一组字符序列
“jack” 字符串常量, 双引号括起的字符序列
字符串的字符使用 Unicode 字符编码,一个字符(不区分字母还是汉字)占两个字节
String 类有很多构造器,构造器的重载
. String 类实现了接口 Serializable【String 可以串行化:可以在网络传输】接口 Comparable [String 对象可以比较大小]
String 是 final 类,不能被其他的类继承
. String 有属性 private final char value[]; 用于存放字符串内容
一定要注意:value 是一个 final 类型, 不可以修改(需要功力):即 value 不能指向新的地址,但是单个字符内容是可以变化
-
创建string对象的两种方式
String s1 = "xun"; //先从常量池中查看是否有`xun`的数据空间,如果有,直接指向;如果没有,则重新创建,然后指向,s1最终指向的是常量池的空间地址 String s2 = new String("xun"); //现在堆中创建空间,里面维护了value属性,指向常量池的xun空间,如果常量池中没有xun,重新创建,如果有,直接通过value指向,最终指向的是堆内的空间
-
String类的常见方法
String类是保存字符串常量的,每次更新都需要重新开辟空间,效率极其低,因此还提供了StringBuffer和StringBuilder来增强String的功能来提高效率
equals()//区分大小写,判断内容是否相等
equalsIgnoreCase() //忽略大小写的判断内容是否相等
length()// 获取字符的个数,字符串的长度
indexOf()// 获取字符在字符串对象中第一次出现的索引,索引从 0 开始,如果找不到,返回-1
lastIndexOf()// 获取字符在字符串中最后一次出现的索引,索引从 0 开始,如果找不到,返回-1
substring()// 截取指定范围的子串
toUpperCase()// 转换成大写
toLowerCase()//转换成小写
concat()// 拼接字符串
replace()// 替换字符串中的字符
split()// 分割字符串, 对于某些分割字符,我们需要 转义比如 |
toCharArray()// 转换成字符数组
compareTo()// 比较两个字符串的大小,如果前者大,则返回正数,后者大,则返回负数,如果相等,返回 0
StringBuffer类
StringBuffer代表的是可变的字符序列,可以对字符串的内容进行增删
很多方法与String相同,但StringBuffer是可变长度的
StringBuffer是一个容器
因为 StringBuffer 字符内容是存在 char[] value, 所有在变化(增加/删除)不用每次都更换地址(即不是每次创建新对象), 所以效率高于 String
-
String VS StringBuffer
String保存的是字符串常量,里面的值不能更改,每次String类的更新实际上都是更新地址,效率低
StringBuffer保存的是字符串变量,里面的值可以修改,每次更新实际上是更新内容,而不是地址
StringBuilder类
一个可变的字符序列,此类提供了一个与StringBuffer相兼容的API,但不保证同步(StringBuilder不是线程安全的)它用在字符串缓冲区被单个线程使用的时候
StringBuilder上的主要操作时apend和insert方法,可以重载这些方法。
- String:不可变字符序列,效率低,复用率高
- StringBuffer:可变字符序列,效率较高(增删),线程安全
- StringBuilder:可变字符序列,效率最高,线程不安全
Math类
abs()// 绝对值
pow()// 求幂
ceil()// 向上取整,返回>=该参数的最小整数(转成 double)
floor()// 向下取整,返回<=该参数的最大整数(转成 double)
round()// 四舍五入 Math.floor(该参数+0.5)
sqrt()// 求开方
random()// 求随机数,random 返回的是 0 <= x < 1 之间的一个随机小数
max() , min() //返回最大值和最小值
Arrays类
-
常见方法
Arrays里面包含了一系列静态方法,用于管理或操作数组 toString()//返回数组字符串形式 sort()//排序 binarySearch()//通过二分搜索法进行查找,要求必须排好序 copyOf()//数组元素的复制 fill()//数组元素的填充 equals()//比较两个数组元素内容是否完全一致 asList()//将一组值转换为List
System类
-
常见方法
System.exit(0); //1. exit(0) 表示程序退出 //2. 0 表示一个状态 , 正常的状态 System.arraycopy(src, 0, dest, 0, src.length); //srcPos: 从源数组的哪个索引位置开始拷贝 //dest : 目标数组,即把源数组的数据拷贝到哪个数组 // length: 从源数组拷贝多少个数据到目标数组 System.currentTimeMillis() //currentTimeMillens:返回当前时间距离 1970-1-1 的毫秒数