核心API
- 1.Lang包
- 2.枚举
- 2.1 概述:
- 2.2 语法:
- 2.3 实现:
- 2.4 枚举的好处:
- 包装类
- 3.1 概念
- 3.2 包装类的自动拆装箱
- 3.3 包装类的常用方法
- 3.4Character是常用方法
- 3.5 常量池
- 面试题
12课和13课的内容放到一起了
1.Lang包
1.1 定义: java.lang包是Java内置的一个基础包,其中包含了一系列程序中经常要的类; 在默认情况下,每个Java程序都会自动导入该包,因此无需在程序中显式地声明引入。
2.枚举
2.1 概述:
枚举类型可以取代以往的常量的定义方式,即常量封装在类或者接口中,此外枚举提供了安全检查功能。枚举本质上还是以类的形式存在。枚举类型增强了程序代码的健壮性。
例如: 属性值固定枚举,如,季节、节气、性别等。
2.2 语法:
- 关键字:enum;
- 定义语法: public enum 类名{ 成员值1,成员值2,… ,成员值 N}
2.3 实现:
将枚举作为变量的数据类型,那么这个变量的值就必须是枚举类中的常量值。
2.4 枚举的好处:
类型安全,易于输入,代码清晰
包装类
3.1 概念
Java有两大数据类型 : 基本数据类型和引用数据类型。基本数据类在某一些场合使用不了,比如集合(集合只能放引用数据类型)。
Java提供一系列包装类,将原始数据变成引用数据类型。
原始数据类型 | 包装类 |
boolean(布尔值) | Boolean |
byte(字节型) | Byte |
char(字符型) | Character |
short(短整型) | Short |
int(整数型) | Integer |
long(长整型) | Long |
float(浮点型) | Float |
double(双精度浮点型) | Double |
为什么要提供包装类
- 和面向对象的思想一致,因为普通类型没有方法属性。
- 和其它类型进行转换,没有包装类比较麻烦
3.2 包装类的自动拆装箱
JDK1.5后以后提供了自动拆装箱的操作
- 自动装箱: 自动将基本数据转成引用数据
- 自动拆箱: 自动将包装类转成基本数据类
int a = 5;
//自动装箱 将简单数据赋值给了包装类
Integer i = a;
//自动拆箱 将包装类转成简单数据类
int num = i;
// JDK1.5之后才有自动拆装箱
3.3 包装类的常用方法
- 字符串和简单类(包装类)之间如何转换
personInt
Valueof - 自动拆装箱原理
public static void main(String[]args){
Integer integer=Integer.valueOf(1);
int i=integer.intValue();
}
3.4Character是常用方法
- isDigit 判断是否是数字 返回boolean
- isLetter 判断是否是字母 返回boolean
- isUpperCase 判断是否是大写字母 返回Boolean
- isLowerCase 判断是否是小写字母 返回Boolean
- 注意:
包装类并不是取代基本类型
3.5 常量池
包装类常量池的值范围: -128到127
- java 中基本类型心包装类的大部分都实现了常量池技术,这些类是Byte,Short,Integer,Long,Character,Boolean
- 另外两种浮点数的包装类则没有实现
- 当这些有常量池的包装类对应的值在-128到127的范围内,用==判断的时候是相等,因为指向一个地址。
面试题
- Integer和 Int区别
- Integer 是int的包装类,int是基类型;
- Integer 必须实例化后才能用int不用;
- Integer 是对象的引用,new一个Integer时,实际上引用指像的是对象,int是直接存数值;
- Integer默认是null,int默认是0;
- 解释自动拆装箱
- 自动拆装箱在JDK1.5后时被引入,自动装箱就是把 int转成Integer ,反之就是拆箱。
- 装箱过程是通过调用包装器的valueOf方法实现的,而拆箱就是调用xxxValue方法;