欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > Java--常用类

Java--常用类

2024/10/25 5:27:19 来源:https://blog.csdn.net/2301_77012210/article/details/140045939  浏览:    关键词: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);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com