- 基本数据类型包装类
- 包装类都是 final修饰的
- JDK7.0版本之后- 自动装箱(基本数据类型 变 对应的 引用类型)自动拆箱(对应的 引用类型 变 基本数据类型)
- int-- Integer
- byte-- Byte
- short-- Short
- double-- Double
- char-- Character
- boolean-- Boolean
- 除了Character和Boolean都继承自Number类
- 方法
- parseInt(str) 将字符串字面解析成 基本数据类型
- Integer.valueOf(str)是把字符串或基本数据类型 变成基本数据类型包装类
- 异常Exception
- 继承自Throwable类
- 编译时异常- 受控异常, 可排查
- 运行时异常- 不可排查, 非受控异常
- try{}catch(){}finally{}
- try { 可以看做一个监视器, try块内如果存在异常, 就会被catch捕获 }
- catch(异常类 对象名) {对异常进行处理, 只有捕获到异常才能执行 }
- finally { finally内的操作一定会执行}
- throws 声明
- 跟在语句后边, 加异常类名, 可以跟多个
- 在方法后面跟上 throws xxxException 即为向上抛出异常
- throw 操作
- 异常类方法
- getMessage() 查看异常信息
- printStackTrace() 打印异常所在栈结构
- 字符串String
- 构造函数
- String s1 = "a"; 此时s1直接指向方法区的常量池, 如果常量池中此时没有"a" 则会在常量池中申请空间 将"a"存入
- 常量池中无重复数据, 如果数据完全相等, 则地址也就相同
- String s2 = new String("b"); 此时s2先在堆中开辟内存, 再去访问方法区的常量池找"b", 没有的话申请空间, 存入b, 本质上存的是堆中的地址, 由堆中的地址指向"b"
- s1 = s1 + s2; 此时 s1先复制一份, 复制这份放到堆中, 连接操作→位于堆中
- 常用方法
- equals(str) 返回boolean String类的equals() 比较的是值, 值相等返回true
- 重写了父类Object的equals() 添加了按位比较的方法
- equalsIgnoreCase(str) 返回boolean 忽略大小写比较
- endsWith(str) 返回boolean 判断字符串是否以指定的后缀结束, 传入字符或字符串
- 可以用于判断文件格式endsWith(".mp3");
- startWith(str)
- indexOf(s) 返回值int 取得指定字符首次出现在字符串中的位置
- lastIndexOf(s) 字符最后一次出现的位置
- length() 返回值int 获取字符串长度
- split("/") 返回值String[] 以传入的信息为媒介, 将字符串切割成数组
- substring(a,b) 返回值String 截取字符串, 从a位置开始, b位置结束[a, b)
- replaceAll(a, b) 返回值String 把字符串中所有的a替换成b
- replaceFirst() 返回值boolean 替换第一个, 返回是否替换成功
- valueOf() 返回值String 转换成字符串类型
- toUpperCase() 大写转换 toLowerCase() 小写转换
- StringBuffer(安全)
- 所有方法都有synchronized同步修饰词, 线程安全
- 预先申请一块字符串缓冲区, 存放字符序列, 如果缓冲区满了, 会重新改变缓冲区的大小, 以容纳更多的字符序列
- append() 添加字符
- delete() 按照角标删除
- insert(位置, 数据) 在固定位置插入数据
- charAt() 检索
- reverse() 逆序翻转
- capacity() 容量
- StringBuilder
- 方法和StringBuffer基本相同
- 不是同步的, 线程不安全, 速度较快
- 随机数Random
- nextInt() 返回0到99的随机数
- UUID u = UUID.randomUUID(); 可以打印出一串UUID字符, 理论上不会重复
- System
- 输入输出
- System.in
- System.out
- System.err
- gc() 调用垃圾回收装置 不建议使用
- exit() 强制退出程序
- System.currentTimeMillis() 获取1900年1月1日0:00:00到当前时间的毫秒数
- 枚举Enum
- enum 枚举名{枚举值表}; 内部放置的都是常量, 每一个字段的类型, 默认都是你定义的枚举类型
- 枚举值可以用枚举名.获取
- 枚举可以有构造器和方法,只能是private
- 编译后也会生成一个class文件
- 存在隐藏的直接父类: Enum 抽象类
- 实例有限且值固定时, 可以定义枚举类型
- *每当调用一个枚举值 相当于创建了所有此枚举中包含的枚举值对象, 因此有多少个枚举对象, 此时就会调用多少次构造方法
- Math
- Math.floor(3.8); →3 去掉小数点后边的数
- Math.round(3.8); → 4 先将数字 +0.5再执行Math.floor();方法