为什么要学习包装类?

包装类:基本数据类型对应的引用类型

包装类

获取Integer对象的方式(JDK5以前)

这两种方式获取对象的区别(掌握):

在实际开发中,-128~127之间的数据用的比较多,如果每次使用都是new对象,那么太浪费内存了,所以,提前把这个范围内的每一个数据都创建好了对象,如果用到了不会创建新的,而是返回已经创建好了的对象

对象之间是不能直接计算的

步骤:1、把对象进行拆箱,变成基本数据类型;2、相加;3、把得到的结果再次进行装箱(JDK5以前)

Integer成员方法

因为是static,所以用类名.方法名,直接调用

强类型语言:每种数据在java中都有各自的数据类型,在计算的时候,如果不是同一种数据类型,是无法直接计算的

注意:1)在类型转换的时候,括号中的参数只能是数字不能是其他,否则代码会报错;

2)8种包装类种,除了Character都有对应的parseXxxx的方法进行类型转换

统一使用nextline,然后再使用parseXxxx进行类型转换

常见算法(查找算法):基本查找、二分查找/折半查找、分块查找、插值查找、斐波那契查找、数表查找、哈希查找

基本查找:从0索引挨个往后查找

二分查找/折半查找

前提条件:数组中的数据必须是有序的

核心逻辑:每次排除一半的范围

1、min和max表示当前要查找的范围

2、mid是在min和max的中间

3、如果要查找的元素在mid的左边,缩小范围时,min不变,max等于mid减1

4、如果要查找的元素在mid的右边,缩小范围时,max不变,min等于mid加1

调用方法:

二分查找总结

二分查找改进----插值查找(适用于数值分布比较均匀时)

二分查找改进---斐波那契查找

分块查找

 冒泡排序:

外循环:表示要执行多少轮,如果有n个数据,那么执行n-1轮

选择排序

插入排序


递归算法:方法中调用方法本身的现象

递归一定要有出口,否则就会出现内存溢出

作用:

递归求和:1-100

递归求阶乘:5!

方法内部再次调用方法的时候,参数必须更加靠近出口

快速排序

利用递归重复上述内容:

递归的出口:

注意:不能先移动start再移动end

排序方法总结

常见算法的API:Arrays


val填充覆盖原来的数值

sort

Lambda表达式

简化匿名内部类的书写:

面向对象:先找对象,再让对象去做事情

函数式编程:是一种思想特点,忽略面向对象的复杂语法,强调做什么,而不是谁去做,Lambda表达式就是函数式编程的思想

lambda表达式的标准格式

总结

Lambda表达式的省略写法

练习

更多推荐