内部类
class Outer{
class Inner{
}
}
特点: 编译后生成独立字节码文件(.class文件),内部类咳直接访问外部类的私有成员,不破坏封装,可为外部类提供必要的内部功能组件
成员内部类
1.在类内部定义,与实例变量、实例方法同级的类
2.外部类的一个实例部分,创建内部类对象时必须依赖外部类对象
Outer outer = new Outer();
Inner ineer = outer.new Inner();
3.外部类和内部类重名时,优先使用内部类
4.成员内部类不能包含静态成员,但可以包含静态常量
静态内部类
1.不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员
2.只能直接访问外部类的静态成员(实例成员需实例化外部类对象)
Outer.Inner inner = new Outer.Inner();
Outer.Inner .show();
局部内部类
1.定义在外部类方法中,作用范围和创建对象范围仅限于当前方法
2.局部内部类访问外部类当前方法中的局部变量时,因无法保障变量的生命周期与自身相同,变量必须修饰为final
3.限制类的使用范围
匿名内部类
Usb usb = new Usb(){
public void service(){
System.out.println("连接成功。。。。。。");
}
};
usb.service();
1.没有类名的局部内部类
2.必须继承一个父类或者实现一个接口
3.定义类、实现类、创建对象的语法合并,只能创建一个该类的对象
优点:减少代码量 缺点:可读性差
Object
1.超类、基类,所有类的直接或间接父类,位于继承树的最顶层
2.任何类默认继承Object,除非extends显示其他类
3.Object定义的方法,所有对象都可使用
4.Object可以储存任何对象
·作为参数,接受任何对象
·作为返回值,返回任何对象
getclass()
public final Class<class类型> getClass(){}
返回对象类型
应用:判断两个对象是否同类型
hashCode()
public int hashCode(){}
1.返回该对象的哈希码值
2.哈希值根据对象的自己或字符串或数字使用的hash算法计算出来的int类型值
3.一般情况下,相同对象返回相同哈希码
toString()
public String toString(){}
1.返回该对象的字符串表现
2.可根据程序需求覆盖
equals()
比较两者的地址是否相同
finalize()
类似JVM的垃圾回收器
包装类
基本数据类型 包装类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
类型转换和装箱、拆箱
int age = 30;
//自动装箱 将基本数据类型包装成对应的对象类型
Integer integer4 = age;
//自动拆箱 将对象拆箱成对应的基础数据类型
int age2 = integer4;
基本类型和字符串转换
//字符串转基本类型
String str = "15";
//转int类型
int n2 = Integer.parseInt(str);
//转bool类型
boolean b1 = Boolean.parseBoolean(str);
Integer(整数)缓存区
在-128~127之间
String概述
1.字符串是常量,创建之后不可改变
2.字符串字面值存储在字符串池中,可以共享
String常用方法
//返回长度
public int length()
// 返回下标的字符
public char charAt(int index)
// 判断字符串是否包含string
public boolean Contains(string)
//将字符串转换为数组
public char[] toCharArray()
//查找str首次出现的下标,存在,返回该下标;否则,返回-1
public int indexOf(string str)
//查找str在当前字符串最后一次出现的下标索引
public int lastIndexOf(String str)
//去掉字符串前后空格
public String trim()
//小写转大写
public String toUpperCase()
//判断字符串是否以str结尾
public boolean endWith(String str)
//对字符串以str进行划分
split("str")
StringBuffer和StringBulid
StringBuffer:可变长数组,运行效率慢,线程安全
StringBuild:可变长数组,运行效率快,线程不安全
BigDecimal的使用
double类型存储数据有数据偏差
//加
BigDecimal add(BigDecimal bd)
//减
BigDecimal subtract(BigDecimal bd)
//乘
BigDecimal multiply(BigDecimal bd)
//除
BigDecimal divide(BigDecimal bd)
Date类
Calendar类
SimpleDateFormat
System类