自己随手写出来了,不在意排版和文章思维的以下都是想到哪里写到哪里. 甚至可能还有错别字.
内部类
定义在类里面的类称之为内部类,但是根据在位置不同分为【成员内部类】【局部内部类】【匿名内部类】
成员内部类
位置:定义在类的成员位置
匿名内部类
使用匿名内部类的的前提
1.必须要一个类或者接口
2.格式:
new 类/接口(){
//复写所有的抽象方法
}
3.本质:匿名内部类的本质,其实是类或者接口的【子类对象】
Lambda表达式
Lambda表达式JDK8提供的新特性,Lambda表达式可以简化匿名内部类的书写。
Lambda的使用前提
1. 必须要有一个函数式接口 要求:接口中只允许有一个抽象方法 2. 需要有一个方法,把函数式接口作为方法的参数使用
Lambda表达式的基本使用
第一步:定义一个函数式接口 HandlerShow接口
@FunctionalInterface
public interface HandlerShow{
public void show();
}
第二步:在测试类中,写一个方法把HandlerShow
接口作为参数
public Demo3{
//写一个方法把HandlerShow接口作为参数
public static void method(HandlerShow handler){
handler.show();
}
}
第三步:调用method方法,传递Lambda表达式
作为 HandlerShow
接口的实现方式。
public Demo3{
//写一个方法把HandlerShow接口作为参数
public static void method(HandlerShow handler){
handler.show();
}
public static void main(String[] args){
method(() -> { System.out.println("你好世界"); });
}
}
Lambda的格式
1.标准格式:
(参数类型 参数名, 参数类型 参数名)->{ 方法体; return 结果; }
2.省略数据类型格式:
(参数名,参数名)->{ 方法体; return 结果; }
3.方法体只要一条语句,可以省略{}
(参数名,参数名)-> 方法体
4.参数只有一个的情况下,可以省略()
参数名-> 方法体
Lambda表达式 式JDK8才有的一个函数编程方式,他就是简写了匿名内部类,它可以做的事情匿名内部类都可以做,匿名内部类可以做的事它只能做一部分,Lambda表达式就只是简化了程序员的代码书写. 使用的前提必须明确 这个抽象类里只能有一个抽象法才可以使用
匿名内部类和Lambda的区别
1.使用前提不一样 匿名内部类: 类和接口都行 Lambda表达式: 只能在在接口的情况下使用. 2.限制不一样 匿名内部类: 接口中运行有多个抽象方法 Lambda表达式: 只能有一个抽象方法. 3.字节码不同 匿名内部类:有生成字节码 Lambda表达式: 没有字节码
接下来就开始漫漫的方法区. 所有人的方式都是查API, 我会把常用的API 拿出来用于自己查询,这样一些常用的方法可以直接进行查询,
拿出几个非常非常非常重要的方法出来
基本数据类型包装类
每一个基本数据类型都有一个对应的包装类,并且提供了一些方法给开发人员使用。
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
获取Integer对象
Integer num1=Integer.valueOf(100);
Integer num2=Integer.valueOf("100");面试题:传递的整数值 -128~127范围内,不会从新开辟空间; 超过范围会重新开辟空间
//获取Integer对象
Integer num1 = Integer.valueOf(100);
Integer num2 = Integer.valueOf(100);
System.out.println(num1 == num2); //trueInteger num3 = Integer.valueOf(128);
Integer num4 = Integer.valueOf(128);
System.out.println(num3 == num4); //false
自动装箱和自动拆箱
为了方便基本数据类型和包装类能够直接运算,所有Java提供了自动装箱和自动拆箱的机制。
//自动装箱: 基本类型(int) 自动转换为 包装类(Integer)
Integer num=100;
//自动拆箱: 包装类(Integer) 自动转换为 基本类型(int)
int num2= num +10;
包装类的数据转换
如果一个字符串是纯数字的字符串(如: "12345"
),不能做数值的数学运算,必须把字符串转换为数值,才能做数学运算。 这样的转换方法在包装类中已经提供了.
类型转换为字符串
直接和""做拼接,因为任何一个数据和字符串做拼接结果都是字符串
可以使用String类的valueOf方法