内部类&API&Lambda

内部类与API

1.内部类

1、内部类&成员内部类

  • 1、格式:

    • 外部类.内部类 变量类 =new 外部类().new内部类();

  • 2、内部类变量和外部类变量重名时的访问格式:

    • 外部类名.this.成员变量;

2、静态内部类

  • 1、静态内部类格式

  • 2、静态内部类如何创建对象

    • 外部类.内部类 变量名 = new 外部类.内部类();

  • 3、调用静态内部类中的静态方法

    • 外部类.内部类.方法名();

3、局部内部类

  • 1、局部内部类的位置

    • 局部位置

  • 2、局部内部类的局限性

    • 只能在方法中使用

4、匿名内部类

  • 1、匿名内部类的格式

    • 父类 对象名 = new 父类(){ 重写方法; };

  • 2、匿名内部类的作用:

    • 当发现一个方法的形式参数是父类或者接口类型,就可以直接传入匿名内部类对象

  • 3、匿名内部类的应用(方法形参是接口):

    • 1、将自定义接口作为方法形参

    • 2、调用方法时传递匿名内部类对象

  • 4、匿名内部类的应用(ArrayList的forEach方法)

    • 1、list的forEach方法传递匿名内部类对象

2、Object类

1、Object类(equals方法)

  • 1、概述

    • Java中所有类的父类

  • 2、equals作用

    • 用来判断两个对象是否相等,默认判断相等的规则,可以利用IDEA自动生成(根据对象的数据值判断)

  • 3、equals和==的区别

    • 如果重写,idea的方案,equals方法比较的是数据值的

3、StringBuilder类

1、String Builder的概述&构造器

  • 1、String Builder是什么:

    • 一个可变字符串

  • 2、StringBuilder构造器

    • 1、StringBuilder是可变的,字符串的操作效率高

    • 2、String是不可变的,字符串操作效率低

2、StringBuilder的常用方法

  • 1、append方法

    • 拼接

    • 可以拼接任意类型数据

    • 返回的还是对象自己,所以可以链式编程

  • 2、reverse方法

    • 反转

    • 返回的也是对象自己

  • 3、toString方法:

    • 把StringBuilder转成String

4、基本类型包装类

1、基本类型包装概述:

  • 基本类型对应的引用类型

  • 2、包装类如何创建子类对象

    • 推荐使用valueOf方法

    • 推荐使用自动装箱,底层还是valueOf方法

2、包装类的数据转换

  • 1、基本类型转换字符串

    • String类的valuaOf方法

  • 2、字符串转基本类型

    • 包装类的paese.....开头的方法

3、自动装箱和拆箱

  • 1、自动装箱含义,本质调用什么方法

    • 可以直接把基本数据类型的值赋值给包装类类型的变量

    • valueOf

  • 2、自动拆箱含义,本质调用了什么方法

    • 可以直接把包装类对象赋值给基本数据类型的变量

5、BigDecimal类

1、BigDecimal四则运算

  • 1、BigDecimal类的作用

    • BigDecimal可以用类对数据进行精确运算,并且保留小数位

  • 2、BigDecimal获取对象

    • valueOf方法

  • 3、BigDecimal常用方法

    • add:加法

    • subs tract:减法

    • multiply:减法

    • divide:除法

2、BigDecimal除法保留指定小数位

  • 1、保留小数位的舍入模式:

    • 1、RoundingMode.HALF_UP :四舍五入

    • 2、RoundingMode.DOWN :去尾法

    • 3、RoundingMode.up:如果保留两位小数,则第三位小数不管是满5都要进一

常用API和Lambda

1、日期类

1、作用:

  • 用于对日期进行格式化或解析

2、构造器

  • SimpleDateFormat sdf =new SimpleDateFormat(日期格式)

  • 日期格式:yyyy年MM月dd日 HH时mm分ss秒

3、常见方法

  • format(Date date)

    • 日期格式化:将Date对象转换为日期字符串

  • parse(String str)

    • 日期解析:将日期字符串转换成Date对象

2、Arrays工具类

Arrays工具类

  • 1、作用:用于操作数组的工具类

  • 2、构造器:构造器被私有

  • 3、常用方法

    • toString方法

      • 把数组中的元素拼接成字符串,方便打印

    • binarySearch方法

      • 使用二分查找法查找数组的元素

      • 数组必须是排序过的

    • sort方法默认排序

      • 对数组中的元素排序,默认升序

3、常见算法

1、冒泡排序原理

  • 每一轮从0号索引开始,相邻两个数据比较,大的往后放

  • 确定轮数:数组长度减一次

  • 确定比较的范围:0~数组长度-1-i

2、折半查找原理:

  • 要确定最小和最大范围,查找中间索引位置:mid=(start+end)/2

  • 如果中间位置的数据大,end需要减少,中间位置变成end-1

  • 如果中间位置数据小了,start需要增加,中间位置变成start=mid+1

  • 如果刚好相等,则为找到

  • 如果start大于end仍没找到,那就是数组没有这个数

4、Lambda表达式

1、Arrays自定义排序

  • 1、sort方法的作用:升序

  • 2、Comparator的两个参数的含义

    • 当前存入的数据和里面已经有的数据

  • 3、Comparator返回值含义

    • 如果是正数,当前左边值大于右边,否则右边

2、Lambda基本格式应用:

  • 1、函数式接口

    • 只有一个抽象方法的接口

  • 2、函数式接口的匿名内部类对象

  • 3、Lambda表达式对匿名内部类对象

    • 参数类型可以省略

    • 只有一个参数的话,小括号也可以省略

    • 如果方法体只有一个,并且是return语句,return必须省略

3、Lambda表达式简化格式应用:

  • 1、省略参数类型:

    • 任何时候都可以省略参数类型

  • 2、省略小括号

    • 参数只有一个的时候可以省略小括号

  • 3、省略{ }

    • 方法语句体只有一一个时,可以省略大括号,return以及最后的分号

5、方法引用

1、静态方法引用:

  • 1、场景:

    • 如果Lambda表达式中调用了一个静态方法,而且左右两边的参数相同,则可以使用静态方法引用

  • 2、格式:

    • 类名::方法名

2、实例方法引用:

  • 1、场景:

    • 如果Lambda表达式中调用了一个实例方法,而且左右两边的参数相同,则可以使用实例方法引用

  • 2、格式:

    • 对象名::方法名

3、特殊用法:

  • 1、场景:

    • 如果Lambda表达式中调用了实例方法,而且Lambda表达式的一个参数作为方法的主调,其他参数作为被调用的方法的参数,此时也可以用类名引用

  • 2、格式:

    • 类名::方法名

4、构造器引用:

  • 1、场景:

    • 如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致,就可以使用构造器引用

  • 2、格式:

    • 类名::new

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值