常用API

本文详细介绍了Java中常见的API用法,包括Math库的数学运算,System类的使用,深浅克隆的区别与实现,BigInteger和BigDecima的大数操作,正则表达式的匹配规则和应用,网络爬虫的基本实现,以及日期时间API的使用。还探讨了排序算法如快速排序和插入排序,并介绍了Lambda表达式的简洁写法。
摘要由CSDN通过智能技术生成

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 小部件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值