Java--常用类

一、StringBuffer

1.1 概述

  • 线程安全的可变字符序列。

  • 一个类似于 String 的字符串缓冲区,但能修改。

  • 但通过某些方法调用可以改变该序列的长度和内容。

1.2 创建对象

​
public class Demo04 {public static void main(String[] args) {/**构造方法摘要 StringBuffer() 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。 StringBuffer(int capacity) 构造一个不带字符,但具有指定初始容量的字符串缓冲区。 StringBuffer(String str) 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。 *///  构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。 StringBuffer buffer01 = new StringBuffer();System.out.println(buffer01.length());System.out.println(buffer01.capacity());// 构造一个不带字符,但具有指定初始容量的字符串缓冲区。 StringBuffer buffer02 = new StringBuffer(1024);System.out.println(buffer02.length());System.out.println(buffer02.capacity());// 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。 StringBuffer buffer03 = new StringBuffer("abcdefg");System.out.println(buffer03.length());System.out.println(buffer03.capacity());}
}

1.3 常用方法

增加数据
​
public class Demo05 {public static void main(String[] args) {/*** 方法摘要 * 增StringBuffer append(Object obj) 追加 Object 参数的字符串表示形式。 StringBuffer insert(int offset, Object obj) 将 Object 参数的字符串表示形式插入此字符序列中。 */// 空的字符串缓冲区,内容为0,容量16StringBuffer buffer = new StringBuffer();buffer.append("Hello");System.out.println(buffer.length());System.out.println(buffer.capacity());buffer.append(true);System.out.println(buffer.length());System.out.println(buffer.capacity());buffer.append(3.14);System.out.println(buffer.length());System.out.println(buffer.capacity());// 在指定位置插入元素buffer.insert(1, 222);System.out.println(buffer);System.out.println(buffer.length());System.out.println(buffer.capacity());/***  扩容:*      ensureCapacityInternal(count + len);    确保容量*          newCapacity(minimumCapacity)        计算容量*          默认扩容:   int newCapacity = (value.length << 1) + 2;*          默认扩容不足:*              如果没有超过MAX_ARRSY_SIZE,扩容到需要的容量*              如果超过MAX_ARRSY_SIZE,没有超过Integer.MAX,扩容需要的容量*              如果超过Integer.MAX,报错OutOfMemoryError*/buffer.append("01234567890123456789");System.out.println(buffer.length());System.out.println(buffer.capacity());}
}
删改查数据
​
public class Demo06 {public static void main(String[] args) {/***       * 删StringBuffer delete(int start, int end) 移除此序列的子字符串中的字符。 StringBuffer deleteCharAt(int index) 移除此序列指定位置的 char。 * 改void ensureCapacity(int minimumCapacity) 确保容量至少等于指定的最小值。 StringBuffer replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。 StringBuffer reverse() 将此字符序列用其反转形式取代。 void setCharAt(int index, char ch) 将给定索引处的字符设置为 ch。 void setLength(int newLength) 设置字符序列的长度。 void trimToSize() 尝试减少用于字符序列的存储空间。 * 查int length() 返回长度(字符数)。 int capacity() 返回当前容量。 char charAt(int index) 返回此序列中指定索引处的 char 值。 int indexOf(String str) 返回第一次出现的指定子字符串在该字符串中的索引。 int indexOf(String str, int fromIndex) 从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。 int lastIndexOf(String str) 返回最右边出现的指定子字符串在此字符串中的索引。 int lastIndexOf(String str, int fromIndex) 返回最后一次出现的指定子字符串在此字符串中的索引。 String substring(int start) 返回一个新的 String,它包含此字符序列当前所包含的字符子序列。 String substring(int start, int end) 返回一个新的 String,它包含此序列当前所包含的字符子序列。 */StringBuffer buffer = new StringBuffer();buffer.append("01234567890123456789");System.out.println(buffer);// 删除区间内容buffer.delete(0, 5);System.out.println(buffer);// 如果预知有大批量的数据会加入,手动调整容量buffer.ensureCapacity(1024);System.out.println(buffer.capacity());// 替换区间内容buffer.replace(0, 3, "伍六");System.out.println(buffer);buffer.reverse();System.out.println(buffer);buffer.reverse();System.out.println(buffer);// 设置字符的数量buffer.setLength(10);System.out.println(buffer);// 调整容量:把容量调整为长度buffer.trimToSize();System.out.println(buffer.length());System.out.println(buffer.capacity());}
}

1.4 StringBuilder

  • 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。

  • 作用、构造方法、常用方法和StringBuffer相同

  • 线程不安全,效率较高,单线程推荐使用

二、包装类

2.1 概述

  • 每一种基本类型都有其对应的引用类型

  • 这些引用类型中有属性和方法,更方便我们操作数据

  • 这些引用类型称为包装类

2.2 包装类大全

基本类型包装类
byte
short
intInteger
long
float
double
boolean
charCharacter

2.3 常用方法

  • 整数--》字符串

  • 字符串--整数

​
public class Demo01 {public static void main(String[] args) {// 基本类型intint i = 10;System.out.println(i);// 引用类型Integer,存储基本类型的数据 && 提供属性和方法Integer ii = new Integer(20);System.out.println(ii);int iii = Integer.parseInt("100");System.out.println(iii);// 前端 == 后端System.out.println(Integer.MAX_VALUE);/**static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析。 static String toBinaryString(int i) 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。 static String toOctalString(int i) 以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。 static String toString(int i) 返回一个表示指定整数的 String 对象。 static String toHexString(int i) 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。 */// 十进制数字转换成其他进制字符串System.out.println(Integer.toBinaryString(66));System.out.println(Integer.toString(66));System.out.println(Integer.toOctalString(66));System.out.println(Integer.toHexString(66));}
}

三、System

3.1 概述

  • System 类包含一些有用的类字段和方法。它不能被实例化。

  • System 类提供的设施中,有标准输入、标准输出和错误输出流;

  • 对外部定义的属性和环境变量的访问;

  • 加载文件和库的方法;

  • 还有快速复制数组的一部分的实用方法。

3.2 常用方法

当前时间毫秒值
​
public class Demo01 {public static void main(String[] args) {/***  方法摘要 static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 static long currentTimeMillis() 返回以毫秒为单位的当前时间。 static void exit(int status) 终止当前正在运行的 Java 虚拟机。 static void gc() 运行垃圾回收器。 static Map<String,String> getenv() 返回一个不能修改的当前系统环境的字符串映射视图。 static String getenv(String name) 获取指定的环境变量值。 static Properties getProperties() 确定当前的系统属性。 static String getProperty(String key) 获取指定键指示的系统属性。 static String getProperty(String key, String def) 获取用指定键描述的系统属性。 */long startTime = System.currentTimeMillis();for (long i = 0; i < 10000000000L; i++) {//System.out.println(i);}long endTime = System.currentTimeMillis();System.out.println(endTime - startTime);}
}
退出JVM
​
public class Demo02 {public static void main(String[] args) {System.out.println("main方法开始...");show();System.out.println("main方法结束...");}public static void show(){System.out.println("show方法开始...");for (int i = 0; i < 100; i++) {System.out.println(i);if (i == 6) {// break;   // 终止循环// return;  // 结束方法System.exit(0); // 结束虚拟机,0是状态码}}System.out.println("show方法结束...");}
}
gc
​
public class Demo03 {public static void main(String[] args) {for (int i = 0; i < 10; i++) {new Student("宋江" + i);}// 手动触发垃圾回收System.gc();System.out.println("OVER");}
}
环境和属性
​
import java.util.Map;
import java.util.Properties;
​
public class Demo04 {public static void main(String[] args) {// 获取所有的系统设置信息Map<String, String> map = System.getenv();System.out.println(map);String env = System.getenv("JAVA_HOME");System.out.println(env);Properties properties = System.getProperties();System.out.println(properties);}
}

四、Math

​
public class Demo01 {public static void main(String[] args) {/*** 方法摘要 static double abs(double a) 返回 double 值的绝对值。 static long round(double a) 返回最接近参数的 long。 static double ceil(double a) 返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。static double floor(double a) 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。 static double pow(double a, double b) 返回第一个参数的第二个参数次幂的值。 static double sqrt(double a) 返回正确舍入的 double 值的正平方根。 static double cbrt(double a) 返回 double 值的立方根。 static double max(double a, double b) 返回两个 double 值中较大的一个。 static double min(double a, double b) 返回两个 double 值中较小的一个。 static double random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。 */System.out.println(Math.abs(3.3));System.out.println(Math.abs(-3.3));System.out.println(Math.round(3.3));System.out.println(Math.round(3.6));System.out.println(Math.ceil(5.5));System.out.println(Math.floor(5.5));// a的b次方for (int i = 2; i <= 10; i++) {System.out.println(Math.pow(2, i));}// 平方根for (int i = 2; i <= 20; i++) {System.out.println(Math.sqrt(i));}// 立方根for (int i = 2; i <= 20; i++) {System.out.println(Math.cbrt(i));}}
}
​
public class Demo02 {public static void main(String[] args) {// 生成0~1之间的随机数for (int i = 0; i < 1000; i++) {System.out.println(Math.random());}}
}

五、Random

package com.shine.math;
​
import java.util.Random;
​
public class Demo03 {public static void main(String[] args) {// 创建随机对象Random r = new Random();// 生成布尔值for (int i = 0; i < 10; i++) {System.out.println(r.nextBoolean());}// 生成指定范围的随机数字for (int i = 0; i < 10; i++) {System.out.println(r.nextInt(100));}// 生成55~99之间的随机数字// 生成一注双色球【考试题】}
}

六、BigDecimal

import java.math.BigDecimal;
​
public class Demo01 {public static void main(String[] args) {// 数学运算小数不准确System.out.println(1.0 - 0.9);System.out.println(10.0 / 3);BigDecimal bd01 = new BigDecimal("1.0");BigDecimal bd02 = new BigDecimal("0.9");System.out.println(bd01.add(bd02));System.out.println(bd01.subtract(bd02));System.out.println(bd01.multiply(bd02));System.out.println(bd01.divide(bd02, 3, BigDecimal.ROUND_HALF_UP));}
}

七、日期相关

7.1 Date

  • Date 表示特定的瞬间,精确到毫秒。

import java.util.Date;
​
public class Demo01 {public static void main(String[] args) {/*** 构造方法摘要 Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 Date(int year, int month, int date) 已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date) 或 GregorianCalendar(year + 1900, month, date) 取代。 Date(int year, int month, int date, int hrs, int min) 已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date, hrs, min) 或 GregorianCalendar(year + 1900, month, date, hrs, min) 取代。 */Date date01 = new Date();System.out.println(date01);Date date02 = new Date(96, 10, 11);System.out.println(date02);System.out.println(date01.getYear());System.out.println(date01.getMonth());System.out.println(date01.getDate());}
}

7.2 Calendar

package com.shine.time;
​
import java.util.Calendar;
​
public class Demo02 {public static void main(String[] args) {// 创建日历对象Calendar rightNow = Calendar.getInstance();System.out.println(rightNow);System.out.println(rightNow.get(Calendar.YEAR));System.out.println(rightNow.get(Calendar.MONTH));System.out.println(rightNow.get(Calendar.DAY_OF_MONTH));System.out.println(rightNow.get(Calendar.HOUR));System.out.println(rightNow.get(Calendar.MINUTE));System.out.println(rightNow.get(Calendar.SECOND));}
}

7.3 日期格式化SimpleDateFormat

  • SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。

  • 它允许进行

    • 格式化(日期 -> 文本)

    • 解析(文本 -> 日期)和规范化。

package com.shine.time;
​
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
​
public class Demo04 {public static void main(String[] args) throws ParseException {// 2023年3月31日 16:18:22SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");// 日期-->文字String time = sdf.format(new Date());System.out.println(time);// 文字-->日期String strTime = "2023年03月31日 16:23:10";Date date = sdf.parse(strTime);System.out.println(date);}
}

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

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

相关文章

【机器学习】在【PyCharm中的学习】:从【基础到进阶的全面指南】

目录 第一步&#xff1a;基础准备 1.1 Python基础 1.1.1 学习Python的基本语法 变量和数据类型&#xff1a; 1.1.2 控制流 条件语句&#xff1a; 循环语句&#xff1a; 1.1.3 函数和模块 函数&#xff1a; 模块&#xff1a; 1.2 安装PyCharm 1.2.1 下载并安装 第二…

Effective C++ 改善程序与设计的55个具体做法笔记与心得 9

九. 杂项讨论 53. 不用轻忽编译器的警告 请记住&#xff1a; 严肃对待编译器发出的警告信息。努力在你的编译器的最高&#xff08;最严苛&#xff09;警告级别下争取“无任何警告”的荣誉。不要过度倚赖编译器的报警能力&#xff0c;因为不同的编译器对待事情的态度并不相同…

为什么接口返回的是二进制流的文件时,前端请求时responseType要设置成‘blob‘

当接口返回的是二进制流的文件时&#xff0c;前端在发起axios请求时需要设置responseType为blob&#xff0c;原因有以下几点 1、数据类型匹配&#xff1a; blob类型能够正确处理二进制数据。如果前端请求不设置responseType&#xff0c;默认情况下&#xff0c;浏览器会尝试解析…

在创意设计领域“刷屏”的人工智能生成内容(AIGC)是什么?

在创意设计领域“刷屏”的人工智能生成内容&#xff08;AIGC&#xff09;是什么&#xff1f;这是一个值得深入探讨的话题&#xff0c;它关乎技术的革新、创意的边界以及未来设计行业的走向。随着人工智能技术的飞速发展&#xff0c;AIGC&#xff08;Artificial Intelligence Ge…

k8s_docker和container的关系和区别

Docker 和 containerd 是容器生态系统中的两个重要组件&#xff0c;它们各自有不同的角色和职责。以下是对它们之间关系和区别的详细解释。 Docker 和 containerd 的关系 Docker&#xff1a; Docker 是一个完整的容器平台&#xff0c;提供了一系列工具来构建、分发和运行容器化…

聚鼎贸易:装饰画行业还有没有前景

在数字化的浪潮中&#xff0c;装饰画行业似乎被边缘化&#xff0c;成为传统与现代较量中的一片瓦砾。然而&#xff0c;透过表面的凋零&#xff0c;我们能够窥见其潜藏的蓬勃生机与无限前景。 随着社会的快速发展&#xff0c;人们对生活品质的追求日益提高。家&#xff0c;作为个…

Spring Cloud OpenFeign基础入门与使用实践总结

官网地址&#xff1a;https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/#spring-cloud-feign GitHub地址&#xff1a;https://github.com/spring-cloud/spring-cloud-openfeign 本文SpringCloud版本为&#xff1a; <spring.boot.version>3…

火锅食材配送小程序的作用有什么

火锅店、麻辣烫店、餐厅等对火锅丸子食材的需求量很高&#xff0c;还有普通消费者零售等&#xff0c;市场中或城市里总是有着较为知名的食材店或厂商&#xff0c;通过产品质量、口碑、宣传、老客复购等获得更多生意营收。 线下生意放缓&#xff0c;需要商家拓宽渠道。运用雨科…

2、网上图书订购

完整DDLDML SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for administarators -- ---------------------------- DROP TABLE IF EXISTS administarators; CREATE TABLE administarators (admin_id int(11) NOT NULL AU…

搜维尔科技:SenseGlove Nova2国内首款支持手掌心力回馈手套开售

《SenseGlove Nova 2》现正全球发行中! 搜维尔科技独家代理最新上市的 SenseGlove Nova 2 是世上首款&#xff0c;也是目前市面上唯一一款提供手掌力回馈的无缐VR力回馈手套&#xff0c;它结合了三种最先进的反馈技术&#xff0c;包括主动反馈、强力反馈及震动反馈&#xff0c…

基于横纵向的混合联邦学习原理分析

近期陆续接触到关于混合联邦学习的概念&#xff0c;但基于横纵向的混合联邦实际的应用案例却几乎没有看到&#xff0c;普遍是一些实验性的课题&#xff0c;因此这一领域知识没有被很好普及。本篇文章的目的&#xff0c;主要是分析讨论关于横纵向混合联邦学习的业务场景、应用架…

nginx: [warn] 20240 worker_connections exceed open file resource limit: 1024

nginx: [warn] 20240 worker_connections exceed open file resource limit: 1024 报错翻译过来就是&#xff1a; nginx&#xff1a;[警告] 20240 worker_connections超出打开文件资源限制&#xff1a;1024 解决方法&#xff1a; 1.查看当前文件打开数量的限制 ulimit -S…

2024软博会

2024年&#xff0c;金秋的十月&#xff0c;青岛国际会展中心迎来了一年一度的科技盛宴——青岛国际软件融合创新博览会&#xff08;简称“青岛软博会”&#xff09;。这场为期三天的展会&#xff0c;不仅吸引了全球软件产业的目光&#xff0c;更成为了展示中国软件产业发展成果…

OpenHarmony南向驱动开发实战-Input

简介 该仓下主要包含Input模块HDI&#xff08;Hardware Driver Interface&#xff09;接口定义及其实现&#xff0c;对上层输入服务提供操作input设备的驱动能力接口&#xff0c;HDI接口主要包括如下三大类&#xff1a; InputManager&#xff1a;管理输入设备&#xff0c;包括…

数据库系统概论(超详解!!!) 第十四节 数据库恢复技术

1.事务的基本概念 1.事务 事务(Transaction)是用户定义的一个数据库操作序列&#xff0c;这些操作要么全做&#xff0c;要么全不做&#xff0c;是一个不可分割的工作单位。 事务和程序是两个概念&#xff0c; 在关系数据库中&#xff0c;一个事务可以是一条SQL语句&#xff…

rockey linux rpm安装mysql 8.4.0

背景介绍&#xff1a; 系统 rockey linux 9.4 mysql 8.4.0 我一开始想在系统上安装5.7的着&#xff0c;因为我有这个包&#xff0c;但是通过rpm安装的时候&#xff0c;到最后一步提示我没有/usbin/chkconfig 这个目录&#xff0c;怀疑是系统的问题&#xff0c;然后想安装chk…

未来先行!MWC 2024 世界移动通信大会盛大开幕!!!

2024MWC上海世界移动通信大会&#xff0c;在上海新国际博览中心&#xff08;SNIEC&#xff09;盛大开幕。 今年&#xff0c;MWC的主办方GSMA&#xff08;全球移动通信系统协会&#xff09;为这届MWC定下了一个主题——“Future First&#xff08;未来先行&#xff09;”。各大…

内网穿透技术

内网穿透&#xff08;NAT traversal&#xff09;是一种技术&#xff0c;用于实现公网与内网之间的通信连接。当内网中的设备无法直接从公网访问时&#xff0c;内网穿透技术可以通过一些手段&#xff0c;让公网上的设备能够穿透到内网中的设备&#xff0c;建立起通信连接。 说白…

盘点7款适合团队使用的知识库工具

作为一名技术爱好者和企业管理者&#xff0c;我深知知识库工具在日常工作中的重要性。 无论是个人笔记管理还是企业知识共享&#xff0c;知识库工具都能极大地提升我们的工作效率和信息管理水平。 根据麦肯锡全球研究院报告显示&#xff0c;使用知识库工具可以帮助个人或者企…

记录一次java web接口压测调优过程

3台8核服务器&#xff0c;目标400tps 1、server采用的线程数200&#xff0c;队列100&#xff0c;借鉴tomcat Tomcat作为一款流行的Java Web服务器&#xff0c;其默认配置覆盖了从端口设置、应用部署、日志记录到性能调整等多个方面。以下是一些关键的默认配置概览&#xff1a…