当前位置: 首页 > news >正文

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

在bu这里插入图片描述

捕获分组的练习

在这里插入图片描述

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
谢谢观看!

相关文章:

  • AtCoder AT_abc406_c [ABC406C] ~
  • 蓝牙耳机什么牌子好?倍思值得冲不?
  • Typecho博客为文章添加AI摘要功能(Handsome主题优化版)
  • AGI大模型(20):混合检索之rank_bm25库来实现词法搜索
  • Redis配置与优化:提升NoSQL数据库性能的关键策略
  • 【AI算法工程师面试指北】ResNet为什么用avgpool结构?
  • 超长文本能取代RAG吗
  • 图像超分-CVPR2022-Multi-scale Attention Network for Single Image Super-Resolution
  • 黑马k8s(十)
  • 打造文本差异对比工具 TextDiffX:从想法到实现的完整过程
  • 企业级电商数据对接:1688 商品详情 API 接口开发与优化实践
  • 信道编码技术介绍
  • 数值分析知识重构
  • 我与 CodeBuddy 携手打造 FontFlow 字体预览工坊
  • OpenHarmony平台驱动使用 (二),Camera
  • java.lang.ArithmeticException
  • nt!MiRemovePageByColor函数分析之脱链和刷新颜色表
  • Linux面试题集合(2)
  • 定扭矩微压痕工具试验台
  • Python绘制克利夫兰点图:从入门到实战
  • 海外市场,押注中国无人驾驶龙头
  • 新疆多地市民拍到不明飞行物:几秒内加速消失,气象部门回应
  • 101岁陕西省军区原司令员冀廷璧逝世,曾参加百团大战
  • 3月中国减持189亿美元美债、持仓规模降至第三,英国升至第二
  • 受贿1.29亿余元,黑龙江省原副省长王一新被判无期
  • 银行积分大幅贬值遭质疑,涉及工行、中行、农行等