Java学习笔记(14)

常用API

Java已经写好的各种功能的java类

Math

Final修饰,不能被继承

因为是静态static的,所以使用方法不用创建对象,使用里面的方法直接 math.方法名 就行

常用方法

Abs,ceil,floor,round,max,minm,pow,sqrt,cbrt,random

Abs要注意参数的类型 int有取值范围

超过了不会报错,但显示错误结果

很大的数就用absexact

Sqrt开平方,cbrt开立方

判断一个数是否为质数?看这个数开平方

System

0

Exit

currentTimeMillis

Arraycopy

细节

Runtime

runtime不能创建对象

因为一个电脑只能有一个运行环境,创建多个对象是没有实际意义的

Runtime源码里自己创建了一个对象,表示当前虚拟机的运行环境

通过getruntime获取这个对象

后面都需要用这个对象来调用其他方法

Object,objects

只有无参构造

Tostring equals clone

为啥直接打印stu结果和stu.toString相同?

Println这个方法使用了toString方法

重写toString打印对象的属性值

Equals

通常比较的是对象中的属性值,而不是地址值

所以需要重写equals,idea有模板自己生成

重要题目:

Clone克隆

要使用clone,必须重写

因为它是一个protected修饰的方法,只能被本包中的类和其他包的子类用,肯定不能在本包中(java.lang包)用,所以要用必须重写

注意返回值类型是object

并且这个类要加上cloneable接口,表示这个是一个可克隆的类

Cloneable里面是没有抽象方法的

记得u1.clone()出来的是一个object类型,强转成User

两种克隆方式

浅拷贝

基本数据类型直接拷贝

引用数据类型直接拷贝地址值

Object里面的clone是浅拷贝

深拷贝

基本数据类型直接拷贝

字符串复用

引用数据类型创建新的

实现深克隆,需要改写复写的clone方法,有点麻烦

可以借助第三方工具 gson-2.6.2.jar

Objects

Objectrs. equals源码中会对a做非空判断,a为空直接返回false

BigInteger

表示比long还大的数

字符串中必须是整数,否则会报错

valueOf细节

-16~16已经创建好对象,不会重复创建

对象一旦创建内部的数据不能发生改变

Biginteger方法

Max会返回大的那个对象,不会创建一个新的biginteger

Doublevalue

biginteger底层存储方式

转成二进制的补码

把很长的数字拆成n段放到数组中存储

32位分为1组,各组再转成十进制,放到int[]数组中

存储上限

Bigdecimal

用于小数的紧密计算

构造方法

1用字符串来创建更精确 new bigdecimal(“11”)

2 用静态方法获取 bigdecimal.valueOf(11)

Valueof()里面的数字其实就是把他变成字符串,再new出一个bigdecimal

所以

方法

四舍五入roundingmode.HALF_UP

存的是每个字符在ASCII码表上对应的数字

也有上限,就是数组最多存21亿多个元素,即21亿多位数

正则表达式

一个&表示且符号

忽略大小写(?i)

身份证正则

String regex3 = "[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[1,2]\\d|3[0,1])\\d{3}(\\d|(?i)x)";

爬虫

Pattern

Matcher

网络爬取

带条件爬取

(?=)只获取?前面的部分

(?:)获取所有数据,满足:后面的条件

(?!)不获取数据(不要Java 8,java11,java11,只要java)

贪婪爬取:java默认贪婪爬取  ab+

非贪婪数据 ab+?

正则在字符串中的用法

Matches:返回boolean

Replaceall

Spilt

正则中的分组

一个小括号就是一个分组

捕获分组

\\1 把第一组中对应字符串中的数据再拿过来比较

捕获分组

\\   &

非捕获分组

不占用组号

\\1 变红:说明java不知道哪个是第一组

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/544443.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架

文章目录 关于 | About技术文档 | Document开源项目 | Project 案例 | Demo项目结构 | Structure主程序配置集成 | Settings引入框架依赖 | Framework在配置文件加入配置 | YamlSpringBoot启动类改引导类 | Change 插件配置集成 | Settings引入依赖 | XML定义插件引导类 | Clas…

【计算机网络】https的工作原理以及和http的区别

目录 前言 1. HTTP协议存在的问题 2. 什么是HTTPS协议? 3. HTTP和HTTPS有哪些区别? 4. HTTPS的工作原理 加密方式 前言 在日常的Web项目练习中,我们会发现老师会让我们在打开服务器之后使用 http://localhost/...进行项目效果测试和预览…

Tuxera NTFS 2023安装使用教程 Tuxera NTFS破解版 Tuxera NTFS for Mac优惠

对于必须在Windows电脑和Mac电脑之间来回切换的Mac朋友来说,跨平台不兼容一直是一个巨大的障碍,尤其是当我们需要使用NTFS格式的硬盘在Windows和macOS之间共享文件时。因为Mac默认不支持写入NTFS磁盘。 为了解决这一问题,很多朋友会选择很便捷…

QML 布局管理器之ColumnLayout

一.ColumnLayout讲解 QML中的ColumnLayout是一种布局元素,用于在垂直列中排列其子元素。它的主要使用下列附加属性: Layout.minimumWidth Layout.minimumHeight Layout.preferredWidth Layout.preferredHeight Layout.maximumWidth Layout.maximumHeight Layout.fil…

MIT线性代数-方程组的几何解释

文章目录 1. 二维空间1.1 行方向1.2 列方向 2. 三维空间2.1 行方向2.2 列方向 假设有一个方程组 A X B AXB AXB表示如下 2 x − y 0 (1) 2x-y0\tag{1} 2x−y0(1) − x 2 y 3 (2) -x2y3\tag{2} −x2y3(2) 矩阵表示如下: [ 2 − 1 − 1 2 ] [ x y ] [ 0 3 ] (3)…

Mr-Robot1靶场练习靶场推荐小白入门练习靶场渗透靶场bp爆破wordpress

下载链接: Mr-Robot: 1 ~ VulnHub 安装: 打开vxbox,菜单栏----管理----导入虚拟电脑 选择下载完的ova文件,并修改想要保存的位置(也可以保持默认位置) 导入完成后可以根据自己的情况去配置网络链接方式 完成…

HttpServer整合模块设计与实现(http模块五)

目录 类功能 类定义 类实现 编译测试 源码路标 类功能 类定义 // HttpServer模块功能设计 class HttpServer { private:using Handler std::function<void(const HttpRequest &, HttpResponse &)>;std::unordered_map<std::string, Handler> _get_r…

微信小程序开发学习笔记——3.11完成form评论案例的实现逻辑

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a;https://www.bilibili.com/video/BV19G4y1K74d?p25&vd_source9b149469177ab5fdc47515e14cf3cf74 一、javascript参考手册——splice https://www.…

2024年新算法:基于鹦鹉优化器PO的城市三维无人机路径规划(复杂地形三维航迹路径规划)

摘要&#xff1a;本文提出了一种利用鹦鹉优化器&#xff08;Parrot optimizer&#xff0c;PO&#xff09;来解决城市环境下无人机三维路径规划问题的方法。这种方法将复杂的无人机航迹规划任务转化为一个优化问题&#xff0c;然后运用鹦鹉优化器PO来解决这个优化问题。鹦鹉优化…

HCIP—BGP邻居关系建立实验

BGP的邻居称为&#xff1a;IBGP对等体 EBGP对等体 1.EBGP对等体关系&#xff1a; 位于 不同自治系统 的BGP路由器之间的BGP对等体关系 EBGP对等体一般使用 直连建立 对等体关系&#xff0c;EBGP邻居之间的报文 TTL中值设置为1 两台路由器之间建立EBGP对等体关系&#xff0…

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

Golang实现Redis分布式锁&#xff08;Lua脚本可重入自动续期&#xff09; 1 概念 应用场景 Golang自带的Lock锁单机版OK&#xff08;存储在程序的内存中&#xff09;&#xff0c;分布式不行 分布式锁&#xff1a; 简单版&#xff1a;redis setnx》加锁设置过期时间需要保证原…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Stack)

堆叠容器&#xff0c;子组件按照顺序依次入栈&#xff0c;后一个子组件覆盖前一个子组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 接口 Stack(value?: { ali…