常用类使用范例

System类

系统类,主要用于获取系统的属性和方法,没有构造方法,都是静态属性,方法都是静态方法。

获取当前系统时间

currentTimeMillis()

返回的是毫秒值,返回当前时间与协调世界时1970年1月1日午夜之间的毫秒差。
使用方法

long a=currentTimeMillis();
System.out.println(a);

Date类

时间和日期的支持

//引入库
import java.util.Date;

//创建一个当前时间的Date对象
Date d1=new Date();//获取当前系统时间
Date d2=new Date(2021-1900,9-1,1);//指定时间2021年9月1日0时0分0秒
实例化d1对象后,d1.有各类有关时间的调用方法
System.out.println(d1);

DateFormat类

时间格式化显示

//引入
import java.text.DateFormat;

//方法1
Date date=new Date();//获取当前系统时间
DateFormat df1=DateFormat.getDateInstance();//获取DateFormat工具的对象
String a=df1.format(date);//将时间显示格式化,format格式化方法
System.out.println(a);//显示日期

//方法2
Date date=new Date();
DateFormat df1=DateFormat.getDateTimeInstance();
String a=df1.format(date);
System.out.println(a);//显示日期和时间

SimpleDateFormat类

字符串转Date,Date转字符串

import java.text.SimpleDateFormat;//引入

字符串转时间
String day="2020/04/4 22:33:44";//需要转换的字符串
SimpleDateFormat df=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//设置字符串时间的格式
Date a=df.parse(day);//将字符串转换为日期
System.out.println(a);

时间转字符串
Date d1=new Date();//创建当前时间对象
SimpleDateFormat df=new SimpleDateFormat("yyy/MM/dd HH:mm:ss");//设置显示时间格式
String a=df.format(d1);//时间转字符串
System.out.println(a);

Math类 Random类

Math类

Math类提供了一套数学操作方法

绝对值:Math.abs(a);
求平方根:Math.sqrt(a);
求最大值:Math.max(a,b);
求最小值:Math.min(a,b);
四舍五入:Math.round(15.6);
获取0到1之间随机数:Math.random();
以上需要一个数据类型接收

  • 控制显示小数位数

double a=Math.random();//创建一个随机数
DecimalFormat df = new DecimalFormat("0.00");//设置显示两位小数格式
String b =df.format(a);//转换
System.out.println(b);

Random类

Random类提供随机数的支持

Random rand=new Random();//创建小数对象
int a=rand.nextInt(100);//数据类型为整数的100以内随机数
System.out.println(a);

超大型数据

BigInteger超大型整数

加法:.add
减法:.subtract
乘法:.multiply
除法:.divide
模运算:.remainder

BigInteger b1=new BigInteger("222222345345222");//定义一个超大整数
BigInteger b2=new BigInteger("6666665435345666");
System.out.println(b1.multiply(b2));//两个超大整数相乘

超大型小数

BigDecimal b1=new BigDecimal("10.0");//定义一个超大整数
BigDecimal b2=new BigDecimal("3.0");
System.out.println(b1.divide(b2,10,BigDecimal.ROUND_HALF_UP));//除不尽保留10位小数加四舍五入

克隆

//创建一个stu类,构造一个克隆方法
public class Stu implements Cloneable{
	String name;
	
	public Stu(String name) {
		super();
		this.name=name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Stu clone() throws CloneNotSupportedException {//构造克隆方法
		Stu s=(Stu)super.clone();
		return s;
	}
}

main方法
Stu a1=new Stu("张三");//实例化a1,赋值三张
Stu a2=a1.clone();//将a1克隆给a2
a2.setName("李四");//给a2重新赋值
System.out.println(a2.getName());

Timer定时器

用来定时执行某些操作,或者间隔多久后执行

public static void main(String[] args) throws Exception {
	Timer ti =new Timer();//实例化一个定时任务的执行方式
	TimerTask task = new TimerTask() {//定义具体定时任务执行的内容
		public void run() {
			System.out.println("定时任务执行");
		}
	};
	ti.schedule(task, 3000);//3秒后执行
	ti.schedule(task, new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2021/09/16 21:58:30"));//指定时间执行
	ti.schedule(task, 2000,1000);//两秒后执行一次后,每隔一秒执行一次

枚举类

类似设定不可更改初始值的属性

//构造枚举类
public enum Color {
	RED(101,"红色"),GREEN(102,"绿色"),BLUE(103,"蓝色");//枚举类有三个属性
	private int id;
	private String name;
	private Color(int id, String name) {//构造方法
		this.id = id;
		this.name = name;
	}
	public int getId() {//只有get构造方法
		return id;
	}
	public String getName() {
		return name;
	}
}

//main方法
System.out.println(Color.GREEN.getName());

单列模式

一个类中只允许产生唯一一个对象
有两种方法实现

懒汉模式

懒汉模式,懒汉模式无法保证绝对单例

//Master类
public class Master {
	private String name;
	private Master(String name){
		this.name = name;
	}
	
	//懒汉模式
	private static Master master; //静态化类 Master类名master对象名
	
	public static Master getMaster() {
		if(master ==null) {
			master = new Master("张三");
		}
		return master;
	}
}

Main方法
public class main {
	public static void main(String[] args) {
		Master m1 = Master.getMaster();
	}
}

饿汉模式

饿汉模式会浪费内存

Master类
public class Master {
	private String name;
	private Master(String name){
		this.name = name;
	}
	
	//饿汉模式
	private static Master master = new Master("张三");
	
	public static Master getMaster() {
		return master;
	}
	
}

字符串

包装类

装箱和拆箱

Integer a = aaa;//装箱
int b = a;//拆箱

字符串和基本类型转换

  • 字符串转数据类型

String a="22";
int b1 = Integer.parseInt(a);//方法1
int b2 = Integer.valueOf(a);//方法2
  • 数据类型转字符串

int a=222;
String s1=a+"";//方法1
String s2=String.valueOf(a);//方法2
String s3=Integer.toString(a);//方法3

字符串操作

String a= "---HELLO---";
String b= "---hello---";
System.out.println(a.equalsIgnoreCase(b));//忽略大小写
System.out.println(a.contains("H"));//检索是否包含H
System.out.println(a.indexOf("E"));//检索E在第几位,不存在则-1
System.out.println(a.startsWith("-"));//检索-是否在开头
System.out.println(a.endsWith("-"));//检索-是否在结尾
System.out.println(a.replace("H", "O"));//替换字符串
System.out.println(a.split("H")[0]);//字符串以H拆分
System.out.println(a.length());//显示字符串长度
System.out.println(a.isEmpty());//判断是否为空字符串

正则表达式

\w 匹配任意字母\数字\下划线
\d 匹配数字
\s 匹配空白字符
\W 反转任意字母\数字\下划线
\D 匹配除了10进制数以外
[0-9] 匹配一个0-9之间的数字
[a-z] 匹配小写英文字母
[A-Z] 匹配大写英文字母
[\u4e00-\u9fa5] 匹配中文字符
. 匹配任意字符
{5} 至少匹配5次
{5,10} 表示匹配5到10次

方法1:
String a= "18566667889";
String pat="1\\d{10}";//正则表达式规则,表示1开头再加10位数字
Pattern r=Pattern.compile(pat);//创建Pattern对象,将正则表达式传进去
Matcher m=r.matcher(a);//创建Matcher,传入要匹配的字符串
System.out.println(m.matches());//匹配结果

方法2:
String a= "姓名:XXX电话:18569547889爱好:XXX13325647788打16233258897";
String pat="1\\d{10}";//表示1开头再加10位数字
Pattern r=Pattern.compile(pat);//创建Pattern对象,将正则表达式传进去
Matcher m=r.matcher(a);//创建Matcher,传入要匹配的字符串
System.out.println(m.find());//匹配结果
System.out.println(m.group());//捕获分组内容
		
while(m.find()) {//判断表达式是否为真,一直到匹配不到时跳出循环
	System.out.println(m.group());//打印所有匹配到的字符串
}

StringBuffer和StringBuilder 字符串拼接

String a= "hello";
StringBuffer stringBuffer=new StringBuffer(a);//创建StringBuffer对象
stringBuffer.append("world!").append("你好!");//拼接
String b=stringBuffer.toString();//转换成字符串
System.out.println(b);
文章作者: pymdv
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 屠龙少年
Java手记
喜欢就支持一下吧