针对八种基本数据类型相应的引用类型—包装类
包装类和基本数据类型的转换
装箱:基本数据类型->包装类型
拆箱:包装类型->基本数据类型
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'));//转成小写
? 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代表的是可变的字符序列,可以对字符串的内容进行增删
很多方法与String相同,但StringBuffer是可变长度的
StringBuffer是一个容器
因为 StringBuffer 字符内容是存在 char[] value, 所有在变化(增加/删除)不用每次都更换地址(即不是每次创建新对象), 所以效率高于 String
String VS StringBuffer
String保存的是字符串常量,里面的值不能更改,每次String类的更新实际上都是更新地址,效率低
StringBuffer保存的是字符串变量,里面的值可以修改,每次更新实际上是更新内容,而不是地址
一个可变的字符序列,此类提供了一个与StringBuffer相兼容的API,但不保证同步(StringBuilder不是线程安全的)它用在字符串缓冲区被单个线程使用的时候
StringBuilder上的主要操作时apend和insert方法,可以重载这些方法。
abs()// 绝对值
pow()// 求幂
ceil()// 向上取整,返回>=该参数的最小整数(转成 double)
floor()// 向下取整,返回<=该参数的最大整数(转成 double)
round()// 四舍五入 Math.floor(该参数+0.5)
sqrt()// 求开方
random()// 求随机数,random 返回的是 0 <= x < 1 之间的一个随机小数
max() , min() //返回最大值和最小值
常见方法
Arrays里面包含了一系列静态方法,用于管理或操作数组
toString()//返回数组字符串形式
sort()//排序
binarySearch()//通过二分搜索法进行查找,要求必须排好序
copyOf()//数组元素的复制
fill()//数组元素的填充
equals()//比较两个数组元素内容是否完全一致
asList()//将一组值转换为List
常见方法
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 的毫秒数