JAVA的常见API文档(上)
游戏打包
注意API文档中的方法不需要记忆!!
了解之后如果需要可以查询API文档
对Math的方法总结:
运用刚学的Math方法加快代码的运行效率
可以减少循环次数
找规律:
发现因子有规律:
必定一个大于平方根,一个大于平方根
package kl002;public class Mathdemo {public static void main(String[] args) {System.out.println(isPrime(17));}public static boolean isPrime(int num){int cnt = 0;for (int i = 2; i < Math.sqrt(num); i++) {cnt++;if(num % i == 0){return false;}}System.out.println(cnt);return true;}
}
要求:
package kl002;public class Mathdemo1 {public static void main(String[] args) {System.out.println("-----------------------------------");System.out.println("水仙花数:");int cnt1 = 0;for (int i = 100; i < 1000; i++) {int ge = i % 10;int shi = i / 10 % 10;int bai = i / 100 % 10;double sum = Math.pow(ge, 3) + Math.pow(shi, 3) + Math.pow(bai, 3);if (sum == i) {System.out.println(i);cnt1++;}}System.out.println(cnt1);System.out.println("-----------------------------------");System.out.println("-----------------------------------");System.out.println("四叶玫瑰数:");int cnt2 = 0;for (int i = 1000; i < 10000; i++) {int ge = i % 10;int shi = i / 10 % 10;int bai = i / 100 % 10;int qian = i / 1000 % 10;double sum2 = Math.pow(ge, 4) + Math.pow(shi, 4) + Math.pow(bai, 4) + Math.pow(qian, 4);if (sum2 == i){System.out.println(i);cnt2++;}}System.out.println(cnt2);System.out.println("-----------------------------------");System.out.println("-----------------------------------");System.out.println("五叶玫瑰数:");int cnt3 = 0;for (int i = 10000; i < 100000; i++) {int ge = i % 10;int shi = i / 10 % 10;int bai = i / 100 % 10;int qian = i / 1000 % 10;int wan = i / 10000 % 10;double sum3 = Math.pow(ge, 5) + Math.pow(shi, 5) + Math.pow(bai, 5) + Math.pow(qian, 5) + Math.pow(wan, 5);if (sum3 == i){System.out.println(i);cnt3++;}}System.out.println(cnt3);System.out.println("-----------------------------------");System.out.println("-----------------------------------");System.out.println("验证两位数没有自幂数:");int cnt4 = 0;for (int i = 10; i < 100; i++) {int ge = i % 10;int shi = i / 10 % 10;double sum4 = Math.pow(ge, 2) + Math.pow(shi, 2);if (sum4 == i){System.out.println(i);cnt4++;}}System.out.println(cnt4);System.out.println("-----------------------------------");}
}
运行结果:
水仙花数:
153
370
371
407
4
四叶玫瑰数:
1634
8208
9474
3
五叶玫瑰数:
54748
92727
93084
3
验证两位数没有自幂数:
0
System
拷贝的数据类型必须一样,否则会报错
对System工具的总结:
Runtime
Runtime只有一个运行环境!
用此方法可以获得你CPU的线程:
package kl002;public class Mathdemo2 {public static void main(String[] args) {System.out.println(Runtime.getRuntime().availableProcessors());}
}
练习:
克隆:
使用第三方工具:(以后的对象克隆)
使用Goson代码
Object总结
Objects
Objects的成员方法
正怎表达式的总结
练习(爬虫)
爬取网络信息
创建URL信息
连接上这个网址
细节:保证网络时通畅的
创建一个对象去读取网络的中的信息
1.获取正怎表达式的对象
2.获取文本匹配的对象
3.利用m去读取s,会按照找里面的小串
带条件的数据爬取
package kl002;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexDemo1 {public static void main(String[] args) {String s = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台";//1.定义正怎表达式//?理解为前面的数据Java//=理解为后面的数据8|11|17//但是在获取数据的时候只获取前半部分//需求1;只要获取Java,不需要版本号String regex1 = "(?i)Java(?=8|11|17)";//需求2;获取Java8、Java11、Java17String regex2 = "(?i)Java(?:8|11|17)";String regex3 = "(?i)Java(?=8|11|17)";//需求3:获取除了8、11、17的Java文本String regex4 = "(?i)Java(?!=8|11|17)";//忽略大小写的另一种写法表达式//String regex = "(?i)Java(?=8|11|17)";//(?i)此种写法是一种忽略大小写的写法后面的写法与上面的写法是一样的//(?!)此种写法是一种忽略大小写的写法,并且除了要求中的爬取数据以外的同类数据,后面的写法与上面的写法是一样的//2.编译正怎表达式Pattern p = Pattern.compile(regex2);Matcher m = p.matcher(s);while(m.find()){System.out.println(m.group());}}
}
结果1:
Java8
Java11
Java17
Java17
贪婪爬取与非贪婪爬取
贪婪爬取:爬取数据的时候尽可能的多获取数据
非贪婪爬取:爬取数据的时候尽可能的少获取数据
Java中默认的是贪婪爬取
+后面加上?可以转变为非贪婪爬取
package kl002;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexDemo2 {public static void main(String[] args) {String s = "Java自从95年问世以来,abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" + "经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两个是长期支持版本," + "下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台";//定义正怎表达式//默认为贪婪爬取String regex = "ab+";//+后面加上?为非贪婪爬取//编译正怎表达式Pattern p = Pattern.compile(regex);Matcher m = p.matcher(s);while(m.find()){System.out.println(m.group());}}
}
先定义一个字符串
String result = s.replaceAll("[\\w&&[^]+",vs);
sout(result);
细节:方法在底层之前也会创建文本解析器的对象
然后从头开始去读取字符串中的内容,只要有满足的,那么就用第二个参数去替换
s.split
捕获分组的练习
package kl002;public class RegexDemo3 {public static void main(String[] args) {//需求1:判断一个字符串开始字符和结束字符是否相同?只考虑一个字符//举例:a123a b456b 17981 &abc& a123b(false)String regex2 = "(.).*\\1";System.out.println("a123a".matches(regex2));System.out.println("b456b".matches(regex2));System.out.println("17981".matches(regex2));System.out.println("&abc&".matches(regex2));System.out.println("a123b".matches(regex2));System.out.println("-------------------------");//需求2:判断一个字符串开始字符和结束字符是否相同?可以有多个字符//举例:abc123abc b456b 123798123 &|@abc&|@ abc123abd(false)String regex3 = "(.+).*\\1";System.out.println("abc123abc".matches(regex3));System.out.println("b456b".matches(regex3));System.out.println("123798123".matches(regex3));System.out.println("&|@abc&|@".matches(regex3));System.out.println("abc123abd".matches(regex3));System.out.println("-------------------------");//需求3:判断一个字符串开始字符和结束字符是否相同?开始部分内部每个字符也要一致//举例:aaa123aaa bbb456bbb 111798111 &&abc&& a123b(false)//(.)把首字母看作一组// \\1:把首字母拿出来再次使用// *作用于\\2,表示后面重复的内容出现0次或多次String regex4 = "((.)\\2*).*\\1";System.out.println("aaa123aaa".matches(regex4));System.out.println("bbb456bbb".matches(regex4));System.out.println("111798111".matches(regex4));System.out.println("&&abc&&".matches(regex4));System.out.println("a123b".matches(regex4));System.out.println("-------------------------");}
}
运行结果:
true
true
true
true
false
true
true
true
true
false
true
true
true
true
false
捕获数据
练习.口吃变换
package kl002;public class RegexDemo4 {public static void main(String[] args) {//需求将字符串中的多余的字替换String str = "我要学学编编编编编编编程程程程程程程程";String regex = "(.)\\1+";String result = str.replaceAll(regex,"$1");System.out.println(result);}
}
捕获分组和非捕获分组
总结
package kl002;import java.util.Date;public class Date1 {public static void main(String[] args) {//1.创建对象表示一个时间Date d1 = new Date();System.out.println(d1);//2.创建对象表示指定的时间Date d2 = new Date(0L);d2.setTime(1000L);System.out.println(d2);//3.获取时间long time = d1.getTime();System.out.println(time);}
}
运行结果:
Sat May 17 21:49:10 CST 2025
Thu Jan 01 08:00:01 CST 1970
1747489750977
时间的比较:
可以通过long两个数据类型来接受getTime
然后通过if条件判断语句来判断
package kl002;import java.util.Date;
import java.util.Random;public class Date2 {public static void main(String[] args) {Random r = new Random();Date d1 = new Date(Math.abs(r.nextInt()));Date d2 = new Date(Math.abs(r.nextInt()));long time1 = d1.getTime();long time2 = d2.getTime();if (time1 > time2) {System.out.println("d1>d2");}else if (time1 < time2) {System.out.println("d1<d2");}else {System.out.println("d1=d2");}extracted();}private static void extracted() {Date d1 = new Date(0L);long time = d1.getTime();time = time + 1000L * 60 * 60 * 24 * 365 * 100;d1.setTime(time);System.out.println(d1);}
}
运行结果:
Sat May 17 21:49:10 CST 2025
Thu Jan 01 08:00:01 CST 1970
1747489750977
谢谢观看!
相关文章:

JAVA的常见API文档(上)
游戏打包 注意API文档中的方法不需要记忆!! 了解之后如果需要可以查询API文档 对Math的方法总结: 运用刚学的Math方法加快代码的运行效率 可以减少循环次数 找规律: 发现因子有规律: 必定一个大于平方根,…...
JavaScript 中的 for...in 和 for...of 循环详解
在 JavaScript 中,for...in 和 for...of 是两种常用的循环结构,但它们有着不同的用途和行为。很多初学者容易混淆这两者,本文将详细解析它们的区别、适用场景以及注意事项。 目录 for…in 循环 基本用法遍历对象属性注意事项 for…of 循环 …...
AtCoder AT_abc406_c [ABC406C] ~
前言 除了 A 题,唯一一道一遍过的题。 题目大意 我们定义满足以下所有条件的一个长度为 N N N 的序列 A ( A 1 , A 2 , … , A N ) A(A_1,A_2,\dots,A_N) A(A1,A2,…,AN) 为波浪序列: N ≥ 4 N\ge4 N≥4(其实满足后面就必须满足这…...

Spark,连接MySQL数据库,添加数据,读取数据
连接数据库 可以看到shell中我们读取出的数据 在IDEA中打代码如果能输出跟shell中一样的结果即证明连接成功 【出错反思】 像我前面出错的原因就是在打代码时将密码输入错误 添加数据 读取数据就是在上面代码中一起展示了,这里我就不单独说了...
Linux容器技术详解
容器技术基础 什么是容器 容器是一种轻量级的虚拟化技术,它将应用程序及其依赖(库、二进制文件、配置文件等)打包在一个独立的单元中,可以在任何支持容器运行时的环境中一致地运行。 Docker官网:https://www.docker…...

【EDA软件】【联合Modelsim仿真使用方法】
背景 业界EDA工具仿真功能是必备的,例如Vivado自带仿真工具,且无需联合外部仿真工具,例如MoodelSim。 FUXI工具仿真功能需要联合Modelsim,才能实现仿真功能。 方法一:FUXI联合ModelSim 1 添加testbench文件 新建to…...
STM32 __main
STM32开发中__main与用户main()函数的本质区别及工作机制 在STM32开发中,__main和用户定义的main()函数是启动过程中的两个关键节点,分别承担运行时初始化和用户程序入口的职责。以下是它们的核心差异及协作机制: 一、定义与层级差异 __ma…...

【离散化 线段树】P3740 [HAOI2014] 贴海报|普及+
本文涉及知识点 C线段树 [HAOI2014] 贴海报 题目描述 Bytetown 城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论。为了统一管理,城市委员会为选民准备了一个张贴海报的 electoral 墙。 张贴规则如下: electoral…...
Python训练营打卡Day28
浙大疏锦行 DAY 28 类的定义和方法 知识点回顾: 1.类的定义 2.pass占位语句 3.类的初始化方法 4.类的普通方法 5.类的继承:属性的继承、方法的继承 作业 题目1:定义圆(Circle)类 要求: 1.包含属性&#x…...
MODBUS RTU通信协议详解与调试指南
一、MODBUS RTU简介 MODBUS RTU(Remote Terminal Unit)是一种基于串行通信(RS-485/RS-232)的工业标准协议,采用二进制数据格式,具有高效、可靠的特点,广泛应用于PLC、传感器、变频器等工业设备…...

CSP 2024 提高级第一轮(CSP-S 2024)单选题解析
单选题解析 第 1 题 在 Linux 系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?(A) A. pwd B. cd C. ls D. echo 解析:Linux 系统中,pwd命令可以显示当前工作目录的路径。pwd&#x…...

六、绘制图片
文章目录 1.创建一个红色图片2.加载bmp图片3.加载png、jpg图片 前面的几个示例,我们已经展示过如果在Linux系统下使用xlib接口向窗口中绘制文本、线、矩形;并设置文本、线条的颜色。并利用xlib提供的接口结合事件处理机制完成了一个自绘按钮控件功能。有…...

Java 面向对象详解和JVM底层内存分析
先关注、点赞再看、人生灿烂!!!(谢谢) 神速熟悉面向对象 表格结构和类结构 我们在现实生活中,思考问题、发现问题、处理问题,往往都会用“表格”作为工具。实际上,“表格思维”就是…...

深度学习---知识蒸馏(Knowledge Distillation, KD)
一、知识蒸馏的本质与起源 定义: 知识蒸馏是一种模型压缩与迁移技术,通过将复杂高性能的教师模型(Teacher Model)所学的“知识”迁移到轻量级的学生模型(Student Model),使学生模型在参数量和计…...

基于CNN卷积神经网络的带频偏QPSK调制信号检测识别算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2024b 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)…...

【DAY21】 常见的降维算法
内容来自浙大疏锦行python打卡训练营 浙大疏锦行 目录 PCA主成分分析 t-sne降维 线性判别分析 (Linear Discriminant Analysis, LDA) 作业: 什么时候用到降维 降维的主要应用场景 知识点回顾: PCA主成分分析t-sne降维LDA线性判别 通常情况下,…...
PostGIS实现栅格数据入库-raster2pgsql
raster2pgsql使用与最佳实践 一、工具概述 raster2pgsql是PostGIS提供的命令行工具,用于将GDAL支持的栅格格式(如GeoTIFF、JPEG、PNG等)导入PostgreSQL数据库,支持批量加载、分块切片、创建空间索引及金字塔概览,是栅格数据入库的核心工具。 二、核心功能与典型用法 1…...

校园社区小程序源码解析
基于ThinkPHP、FastAdmin和UniApp开发的校园社区小程序源码,旨在为校园内的学生和教职员工提供一个便捷的在线交流和服务平台。 该小程序前端采用UniApp进行开发,具有良好的跨平台兼容性,可以轻松发布到iOS和Android平台。同时,后…...

第6章:文件权限
一、文件权限概述 Linux为了保证系统中每个文件的安全,引入了文件权限机制。针对于系统中的每一个文件Linux都可以提供精确的权限控制。它可以做到不同的用户对同一个文件具有不同的操作权利。而通常这个权利包括以下3个: 读的权利(Read&…...
使用 Python 连接 Oracle 23ai 数据库完整指南
方法一:使用 oracledb 官方驱动(推荐) Oracle 官方维护的 oracledb 驱动(原 cx_Oracle)是最新推荐方案,支持 Thin/Thick 两种模式。 1. 环境准备 pip install oracledb2. 完整示例代码 import oracledb import getpass from typing import Unionclass Oracle23aiConn…...

C语言| 指针变量的定义
C语言| 指针的优点-CSDN博客 * 表示“指向”,为了说明指针变量和它所指向的变量之间的联系。 int * i;//表示指针变量i里面存放的地址,所指向的存储单元里的【数据】。 【指针变量的定义】 C语言规定所有变量,在使用前必须先定…...
HTML 中的 input 标签详解
HTML 中的 input 标签详解 一、基础概念 1. 定义与作用 HTML 中的 <input> 标签是表单元素的核心组件,用于创建各种用户输入字段。作为一个空标签(没有闭合标签),它通过 type 属性来决定呈现何种输入控件,是实…...
Python 在自动驾驶数据标签中的应用:如何让 AI 读懂道路?
Python 在自动驾驶数据标签中的应用:如何让 AI 读懂道路? 在自动驾驶系统中,数据就是生命线。不管是摄像头、激光雷达还是雷达传感器,这些设备每天都能产生 海量数据,但如果这些数据没有被正确标注,它们对 AI 来说毫无意义。那么,如何让自动驾驶系统准确理解道路环境呢…...
微信小程序之按钮短时间内被多次点击问题
做项目的时候碰到这个问题,按钮的功能做好了,但是总会出现按的太快,出现不可预料的问题。 解决方法之一:借助函数节流来实现 1、创建一个工具包(throttle.js),通过封装一个高阶函数,对函数的执…...
动态规划(3)学习方法论:构建思维模型
引言 动态规划是算法领域中一个强大而优雅的解题方法,但对于许多学习者来说,它也是最难以掌握的算法范式之一。与贪心算法或分治法等直观的算法相比,动态规划往往需要更抽象的思维和更系统的学习方法。在前两篇文章中,我们介绍了动态规划的基础概念、原理以及问题建模与状…...
两个电机由同一个控制器控制,其中一个电机发生堵转时,另一个电机的电流会变大,是发生了倒灌现象吗?电流倒灌产生的机理是什么?
当两个电机由同一个控制器驱动,且其中一个电机发生堵转时,另一个电机的电流确实可能异常增大,但这不一定是典型的“倒灌现象”,而更可能是由于共母线电压波动或能量回馈导致的。以下是具体分析: 1. 现象是否属于“电流…...
Java 方法向 Redis 里操作字符串有什么需要注意的?
在 Java 开发中,Redis 作为高性能的键值存储数据库,常被用于缓存数据、处理高并发场景等。当我们使用 Java 方法向 Redis 中操作字符串类型数据时,有许多关键要点需要格外注意。这些要点不仅关系到代码的正确性和性能,还影响着整个…...
ECMAScript 2018(ES2018):异步编程与正则表达式的深度进化
1.版本背景与发布 发布时间:2018年6月,由ECMA International正式发布,标准编号为ECMA-262 9th Edition。历史意义:作为ES6之后的第三次年度更新,ES2018聚焦于异步编程、正则表达式和对象操作的标准化,推动…...

IntelliJ IDEA给Controller、Service、Mapper不同文件设置不同的文件头注释模板、Velocity模板引擎
通过在 IntelliJ IDEA 中的 “Includes” 部分添加多个文件头模板,并在 “Files” 模板中利用这些包含来实现不同类型文件的注释。以下是为 Controller、Service、Mapper 文件设置不同文件头的完整示例: 1. 设置 Includes 文件头模板 File > Settin…...
从零开始认识 Node.js:异步非阻塞的魅力
Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,用于在服务器端运行 JavaScript 代码。它的设计目标是让开发者能够用 JavaScript 构建高性能、可扩展的网络应用。以下是关于 Node.js 的详细介绍: 1. 核心特点 事件驱动与非阻塞 I/O&…...