news 2026/8/28 5:14:13

Java学习笔记八(API)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java学习笔记八(API)

1 包装类

基本类型 包装类型 byte Byte short Short int Integer long Long double Double float Float boolean Boolean char Character

(1) 自动拆箱(自动变int):int i = Integer.valueOf(11);// new Integer过时了。超过127的话 new Integer会生成新的地址导致 new Integer(128) == new Integer(128) 返回false。

(2) 自动装箱(自动变Integer):Integer i = 1;

2 字符串API

2.1 String

2.2.1 字符串编辑

(1) 定义字符串:String str ="abc";// str(堆区), "abc"(常量池)

(2) 创建字符串:String str =newString("abc");// str(堆区new地址), "abc"(常量池)。String str = new String(byte[]); 默认开发平台字符集(eclipse=GBK, idea=UTF-8)。String str = new String(byte[], "字符集"); 指定字符集。

(3) 转换字符串:String str = String.valueOf(char[] | boolean | char | int | long | float | double)

(4) 拼接字符串:String str = "abc"+"def"; String str = str1.concat(str2);

(5) 截取字符串:String str = str1.subString(开始下标[终止下标]);// 含开始,不含结束

(6) 替换字符串:String str = str.replace(str1, str2)// 将所有str1替换成 str2

(7) 转小写:String str = str.toLowerCase();

(8) 转大写:String str = str.toUpperCase();

2.2.2 判断

(1) 判空:boolean isEmpty = str.isEmpty(); // 是否为空(不包含半角空格)

(2) 判空:boolean isBlank = str.isBlank(); // 是否为空(除了半角空格以外,没有其它字符)

(3) 相等:boolean isSame = str1.equals(str2);

(4) 相等:int res = str1.compareTo(str2); // 返回0 相同

(5) 包含:boolean has = str.contains(str2); // str是否包含str2

(6) 开始判断:boolean isStart = str.startsWith(str2[, startIndex]);

(7) 结束判断:boolean isEnd = str.endsWith(str2);

2.2.3 获取数据

(1) 取长:int len = str.length();

(2) 取字符:char c = str.charAt(int);

(3) 取二进制:byte[] b = str.getBytes([String | Charset]);

(4) 取下标:int index= str.indexOf(String[,startIndex])

(5) 取下标:int index = str.lastIndexOf(String[,startIndex]);

2.2.4 正则

(1) 拆分:String[] strs = str.split("正则字符")

(2) 正则替换:String str = str.replaceAll("正则字符", str2);

(3) 正则匹配:boolean has = str.matches("正则字符");// 返回是否满足正则表达式

注释:正则作用(判断字符串是否符合规则,校验数据合法性,电话,邮箱),\d需要做转移处理"\\d"

单字符匹配:[abc]匹配,[^abc]排除,[a-cA-Z]连续范围匹配,[a-c[n-y]]间断范围匹配,[a-z&&[^m-y]]连续范围排除。

多字符匹配:"abc"

取正则数据:

String regex = "正则"; // 定义正则字符 Pattern p = Pattern.compile(regex); // 生成正则类 Matcher m = p.matcher(字符串); // 绑定指定字符串 while(m.find()) { // 查找是否有满足正则条件的字符串 m.group(); // 获取到满足正则条件的字符串 ]

2.2 StringBuilder

(1) 创建:StringBuilder sb = new StringBuilder([str]);

(2) 添加:sb.append(str);

(3) 转成字符串:sb.toString()

2.3 StringBuffer

注释:线程安全

(1) 创建:StringBuffer sb = new StringBuffer([str]);

(2) 添加:sb.append(str);

(3) 转成字符串:sb.toString()

3 数值API

3.1 BigDecimal

注释:不推荐double类型构造器参数,传参之前double失去京都,推荐String类型

(1) 加:BigDecimal num = num1.add(num2);

(2) 减:BigDecimal num = num1.subtract(num2);

(3) 乘:BigDecimal num = num1.multiply(num2);

(4) 除:BigDecimal num = num1.devde(num2, 保留的小数位数, RoundingMode.HALF_UP);// 四舍五入

3.2 数值格式化

(1)DecimalFormat: #不满为不显示,0不满位显示0

DecimalFormat format = new DecimalFormat("#,###.00"); String str = format.format(1234.567);

(2)String.format

String s1 = String.format("%02d", int); // [0]:左补0,[2d]:补满2位整数 String s2 = String.format("%,.2f", ); // [,]:逗号分隔数值,[.2f]:保留2位小数 String s3 = String.format("%.0f", String); // [.0f]:不保留小数

4 日期API

4.1 Date

注释:Date修改值会使源对象变更,线程不安全,只精确到毫秒,不推荐使用

(1) 创建:Date date = new Date();//获取系统日期时间

(2) 格式化:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //线程不安全,每个用户需单独创建 String dateStr = fromat.format(date); // 格式化日期 // yyyy年, MM月, dd日, HH 24小时, hh 12小时, mm 分钟, ss 秒, sss毫米

(3) 反格式化: Date date = format.parse(dateStr);// 需要处理异常

4.2 LocalDate

注释:对象不可变更,变更时间需要重新定义对象,精确到毫秒后1000微秒,1000纳秒

年月日(星期):LocalDate,时分秒(纳秒):LocalTime,年月日时分秒:LocalDateTime

(1) 创建:

LocalDate.now(); // 年月日 LocalTime.now(); // 时分秒 LocalDateTime.now(); // 年月日时分秒 LocalDate local = LocalDate.of(年, 月, 日); // 指定时间创建

(2) 获取:

localDate.getYear(); // 年 localDate.getMonthValue(); // 月 localDate.getDayOfMonth(); // 日

(3) 变更:

LocalDate d2 = d1.withYear(2024); // 年:获取年变更后的对象 LocalDate d2 = d1.withMonth(12); // 月:获取月变更后的对象 LocalDate d2 = d1.withDayOfMonth(31); // 日:获取日变更后的对象 加算 LocalDate d3 = d2.plusYears(2); // 加2年 LocalDate d3 = d2.plusMonths(2); // 加2月 LocalDate d3 = d2.plusDays(2); // 加2日 减算 LocalDate d4 = d3.minusYears(2); // 减2年 LocalDate d4 = d3.minusMonths(2); // 减2月 LocalDate d4 = d3.minusDays(2); // 减2日

(4) 比较:

boolean isSame = d1.equals(d2); // 等于 boolean isAfter = d1.isAfter(d2); // d1 大于 d2 boolean isBefore = d1.isBefore(d2); // d1 小于 d2

(5) 格式化:

格式化1 DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 定义格式 String dateStr = format.format(LocalDateTime.now()); // 返回格式化后字符串 格式化2 String str = LocalDateTime.now().format(format); String str = LocalDate.now().format(format); String str = LocalTime.now().format(format); 反格式化 LocalDateTime dateTime = LocalDateTime.parse("2024-12-22", format);

(6) 获取间隔:

日期间隔 Period p = Period.between(localDate1, localDate2); // 定义两个日期 p.getYears(); // 获取间隔年数 p.getMonths(); // 获取间隔月数 p.getDays(); // 获取间隔天数 时间间隔 Duration d Duration.between(localTime1, localTime2); // 定义两个时间,也可指定localDateTime 获取时分秒

5 数组

5.1 Arrays

(1) 转字符串:String str =Arrays.toString(byte[] ... short | int | long | double | float | boolean | char | Objet数组);

(2) 转集合:List list =Arrays.asList(T...);

(3) 数值排序:Arrays.sort(数值数组);// 改变参数数组,值升序

(4) 对象排序:Arrays.sort(对象数组);// 改变参数数组,对象实现Comparable接口

public class User implements Comparable<User> { public int compareTo(User o) { return this.age - o.age; // 正数顺序不变,0相等,负数改变顺序 } }

(5) 对象排序(匿名内部类):

Arrays.sort(User[], new Comparator() { @Override public int compare(o1, o2) { return o1 - o2; // 正数顺序不变,0相同,负数改变顺序 } }

6 对象

6.1 Objects

(1) 克隆(浅克隆):实现Cloneable接口,实现clone方法。// User user2 = user1.clone();

public class User implements Cloneable { private int age; private String name; @Override publi User clone() { return super.clone(); } }

(2) 比较:Objects.equals(s1, s2);// 可避免空指针

(3) 判null:Objects.isNull(对象);Objects.isnonNull(对象);// 判断是否为null,或是否不为null

7 其它

7.1 运行时

(1) 运行时调用其它程序:Runtime

Runtime run = Runtime.getRuntime(); Process p = r.exec("磁盘路径.exe"); // 执行其它程序 p.destroy(); // 关闭启动的程序

7.2 控制台输入

(1) 控制台输入:Scanner

Scanner sc = new Scanner(System.in); int i = sc.nextInt(); // 代码执行到这里,等待控制台输入
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 5:12:07

数据驱动的二手车估价:从数据清洗到可视化分析的全流程实战

1. 项目概述&#xff1a;从一道赛题看数据驱动的二手车估价去年带学生打MathorCup&#xff0c;A题“二手车估价”给我留下了挺深的印象。这题目乍一看平平无奇&#xff0c;不就是给一堆二手车数据让你估个价嘛。但真上手做&#xff0c;你会发现它完美地诠释了什么叫“数据科学的…

作者头像 李华
网站建设 2026/8/28 5:12:04

YOLO煤矿皮带异物检测实战数据集与工业落地指南

简介&#xff1a;YOLO目标检测是工业视觉中异物识别的核心技术&#xff0c;其原理依赖于锚框匹配、特征金字塔与置信度回归&#xff0c;在复杂场景下需适配真实物理约束。煤矿皮带机环境具有粉尘干扰、低照度、金属反光、动态煤流等典型挑战&#xff0c;导致通用模型&#xff0…

作者头像 李华
网站建设 2026/8/28 5:11:42

10个浏览器原生API实战:构建零上传的在线工具站

在这里插入代码片## 为什么需要"零上传"工具 传统在线工具站的核心问题&#xff1a;你的文件离开了自己的设备。 合同PDF被上传到陌生服务器 身份证照片留存在某处机房服务器存储成本转嫁为使用限制 我开发的 Vaultool&#xff08;vaultool.com&#xff09;采用了完全…

作者头像 李华
网站建设 2026/8/28 5:11:32

多元回归分析:从核心原理到实战建模的完整指南

1. 从“猜”到“算”&#xff1a;为什么多元回归是建模的基石如果你刚开始接触数学建模&#xff0c;尤其是面对那些涉及多个影响因素的问题时&#xff0c;可能会感到无从下手。比如&#xff0c;你想预测一个城市的房价&#xff0c;影响它的因素太多了&#xff1a;地段、面积、房…

作者头像 李华
网站建设 2026/8/28 5:10:59

关于 毕业之家

关于 毕业之家 品牌&#xff1a;毕业之家产品资料 毕业之家官方网站&#xff1a;www.biye.com。毕业之家Ai一键双降&#xff0c;一键降低论文重复率和AIGC率&#xff0c;使用融合DeepSeek R1满血模型毕业之家学术语言模型&#xff0c;在降低重复率和AIGC率的同时&#xff0c;保…

作者头像 李华