155.常见API -01-Math
总结:
156.常见API-02-练习:两道数学算法题
具体代码:
157.常见API-03-System
1.
2.
3.
额外练习:
总结:
158.常见API-04-Runtime
具体代码:
159.常见API-05-Object
1.toString:
但是:
所以重写toString:
equals方法一样:
结论:
补充:
String中有重写equals方法
160.常用API-06-浅克隆、深克隆和对象工具类Objects
重写clone方法:
先实现接口:
第一种方法:
第二种方法:
调用:
深克隆和浅克隆:
验证object里面的克隆是浅克隆,所以我们要在javabean类中重写clone方法
(
在Java中,深克隆和浅克隆是对象克隆的两种不同方式。
浅克隆是指创建一个新对象,该对象的属性与原始对象相同。然而,如果原始对象的属性是引用类型,则新对象与原始对象将共享相同的引用。这意味着,如果修改新对象的属性,原始对象也会受到影响。浅克隆只复制对象的引用,而不复制引用指向的对象本身。
深克隆是指创建一个新对象,该对象的属性与原始对象相同,但是新对象和原始对象的引用类型属性指向的是不同的对象。深克隆会递归地复制对象的所有引用类型属性,确保新对象与原始对象相互独立,修改一个对象不会影响另一个对象。
浅克隆通常适用于对象中只包含基本数据类型属性的情况,而深克隆适用于对象中包含引用类型属性的情况。通过深克隆,我们可以在需要独立对象副本的情况下确保数据的完整性和安全性。
在Java中,实现深克隆可以通过两种方式:一种是实现Cloneable接口并重写clone()方法,另一种是使用序列化和反序列化来实现深克隆。需要根据具体的应用场景来选择合适的克隆方式。
)
这种方法是实现深克隆的一种工具类:
jar包导入在lib目录下
总结:
在javabean类中重写:
因为我们在使用equals方法之前往往要先判断是否为空,所以直接用objects中的方法更方便
equals:
isNull+nonNull:
总结:
161.常见API-07-常用API-07-BigInteger基本使用和原理解析
一旦创建数据不能改变!!!
具体代码:
小结:
方法:
具体代码:
1.
2.
总结:
162.常见API-08-常用API-08-BigDecima基本使用和原理解析
获取BigDecima对象:
使用:
具体代码:
还有一个除法的:
模式说明:
底层存储方式:
总结:
163.常用API-09-正则表达式初体验和基本规则
用正则表达式可以简写成这样:
小练习:
y164.常用API-10-正则表达式基本练习
165.常用API-11-正则表达式基本练习2
小结:
166.常用API-12-爬虫
第一个练习:
本地爬虫:
网络爬虫:
第二个练习:
167.常用API-13-带条件爬取,贪婪爬取和识别正则的两个方法
带条件爬取:
贪婪爬取与非贪婪爬取:
具体代码:
查api文档:
168.常用API-14-捕获分组和非捕获分组
需求1:
需求2:
需求3:
捕获分组:
练习:
非捕获分组:
总结:
169.常用API-15-JDK7时间-Date
具体代码:
练习:
需求1:
需求2:
总结:
170.常用API-16-JDK7时间-SimpleDateFormat
练习:
总结:
171.常用API-17-JDK7时间-Calendar
总结:
172.常用API-18-JDK8时间类-时区,时间和格式化
173.常用API-19-JDK8时间类-日历和工具类
小结:
174.常用API-20-包装类
具体代码:
总结:
具体代码:
细节:
175.常用API-21-两道综合练习
176.常用API-22-三道综合练习
177.常见算法-01-基本、二分、插值和斐波那契查找
基本查找代码实现:
二分查找/折半查找代码实现:
总结:
178.常见算法-02-分块,分块扩展,哈希查找
具体代码实现:
扩展:
总结:
179.常见算法-03-冒泡排序和选择排序
180.常见算法-04-插入排序和递归算法
插入排序的代码:
(目前学到的排序最后优是选择>插入>冒泡,顺序只有一点乱的话是插入最优)
(不断加载进栈,栈内存溢出)
最后输入.sout快速打印
执行完后一个个出栈
180.常见算法-05-快速排序
第一轮:
处理其他,用递归:
方法调用:
其中修改了一个地方:
补充:
测试速度:
快速排序是最快的
创建一个新数组,存满随机数
(问题就出在这个基准数归位上,如果start先动,那么end最后指向的那个数据是一定比6大的,那边归位的时候必须往右归位,所以要end先动)
(等于的时候要小于基准数才对)
所以要end先动!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(其实也就是取决于基准数在数组中的位置,如果你取得基准数是数组末尾的元素,那么就可以先++)
181.常见算法的API-06-Arrays
源码:
未指定的话底层默认用的是快速排序
182.lambda表达式
把数据进行了排序,用匿名内部类的形式
lambda表达式写法:
以前:
(只用一次的时候就这样写)
(接口中只有一个抽象方法的接口就是函数式接口 @Function注解)
例子原版:
形参必须是个接口,不能是抽象类
有且仅有一个抽象方法,要是函数式接口!!!!!!!!!!
完整格式:
省略写法:可推导可省略
一个形参的话甚至小括号都可以省略不写
最大简化,省略return:
注意(第三点里面三个要同时省略)
184.五道经典算法题
(compareto按照字典顺序进行排序)
ptg to 自动生成javabean:
(double强转int会数据丢失把)
所以这里的temp不能强转,这个方法要记住
打印出来是地址值的,是因为Javabean里面没有重写ToString方法,用插件生成的Javabean是重写了的
匿名内部类书写格式完整代码:
lambda表达式改写:
形参有两个,而且方法体不止一行
第一个解决方案:
第二个解决方法:
反向递归,从第十天开始到第一天
(动态规划经典题目)
img 小部件